Find et ClearContents d'une plage de cellules voisines

Bonjour à tous,

J'ai récemment décidé de me lancer dans le vba pour gérer des listes de patients (inscrits à des ateliers) pour simplifier la vie de mes collègues. Seulement, je bloque à un endroit.

Intérêt de mon excel : inscrire les patients aux ateliers qu'ils souhaitent, selon les places dispos, avec une liste d'attente si atelier complet.

ET Supprimer un patient de tous ses ateliers lorsqu'il quitte l'hôpital. Et c'est là mon problème.

Fichier dispo pour visualiser sa présentation

Pour cela j'ai crée un userform où on rentre nom + prénom et avec la fonction find je lui demande de trouver le rang avec ces 2 textboxs qui concordent. Okay pour supprimer la ligne entière sur ma première feuille (inscription). Sauf que pour mes autres feuilles, mes feuilles ateliers, je ne peux pas supprimer la ligne entière car il y a d'autres données sur le reste de la ligne. Il faudrait SUPPRIMER LE CONTENU DES 5 CELLULES VOISINES DE CE QUE TROUVE FIND. Mais je n'arrive pas à écrire cette partie avec clearcontents ou autre

Voilà, si quelqu'un a une idée...

Merci !

Ici mon code qui marche avec DELETE

Private Sub CommandButton1_Click()

'Nommer mes valeurs

Dim adresse_nom As Range
Dim adresse_prenom As Range

nom = TextBox1.Value
prenom = TextBox2.Value
derniereLigne = Cells(Rows.Count, 1).End(xlUp).Row

'Supprimer la ligne sur feuille Inscription

Sheets("Inscription").Activate

Set adresse_nom = Range("A1:A1000").Find(nom, lookat:=xlWhole)
Set adresse_prenom = Range("B1:B1000").Find(prenom, lookat:=xlWhole)

If adresse_nom Is Nothing Or adresse_prenom Is Nothing Then
MsgBox ("Êtes vous sur de l'orthographe du nom ou du prénom?")
Else

    If adresse_nom.Row <> adresse_prenom.Row Then
    MsgBox ("Êtes vous sur de l'orthographe du nom ou du prénom ?")
    End If
    If adresse_nom.Row = adresse_prenom.Row Then
    Rows(adresse_nom.Row).Delete
'ICI OK DE SUPP LA LIGNE ENTIERE
    MsgBox "Patient supprimé"
    End If
End If

'Est-ce que ce patient était en collage ?

Sheets("Collage").Activate

Set adresse_nom = Range("A1:A1000").Find(nom, lookat:=xlWhole)
Set adresse_prenom = Range("B1:B1000").Find(prenom, lookat:=xlWhole)

    If adresse_nom.Row = adresse_prenom.Row Then
    Rows(adresse_nom.Row).Delete
'ICI JE NE VEUX PAS DELETE MA LIGNE MAIS SEULEMENT 5 CELLULES (colonnes A à E)
    MsgBox "Patient retiré de l'atelier collage"
    Sheets("Modelage").Activate
    End If

'Est-ce que ce patient était en liste d'attente de collage ?

If adresse_nom Is Nothing Or adresse_prenom Is Nothing Then
Set adresse_nom = Range("G1:G1000").Find(nom, lookat:=xlWhole)
Set adresse_prenom = Range("H1:H1000").Find(prenom, lookat:=xlWhole)

 If adresse_nom.Row = adresse_prenom.Row Then
    Rows(adresse_nom.Row).Delete
'ICI JE NE VEUX PAS DELETE MA LIGNE MAIS SEULEMENT 5 CELLULES (colonnes G à K)
    MsgBox "Patient retiré de l'atelier collage"
    Sheets("Modelage").Activate
    End If

End If

End Sub
14v2-copie.xlsm (63.32 Ko)

Bonjour Séraphine et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum

Ainsi que sur les fonctionnalités (Nouveau Forum au bas de page notamment)

Pour ce que vous souhaitez, vous pouvez redimensionner la plage trouvée

 If adresse_nom.Row = adresse_prenom.Row Then
    adresse_nom.Resize(1, 5).ClearContents
    MsgBox "Patient retiré de l'atelier collage"
    Sheets("Modelage").Activate
  End If

Merci de votre participation

Cordialement

Bonjour Bruno !

Merci beaucoup pour votre réponse qui semble en effet bien régler mon problème !

Je vous souhaite une très belle journée.

Rechercher des sujets similaires à "find clearcontents plage voisines"