Sub Macro1()
Dim T As Worksheet 'déclare la variable T (onglet Terrain)
Dim MC As String 'déclare la variable MC
Dim R As Range 'déclare la variable R (Recherche)
Dim PA As String 'déclare la variable PA (Première Adresse)
Dim DC As Byte 'déclare la variable DC (Dernière Colonne)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim MSG As String 'déclare la variable MSG (MeSsaGe)
Set T = Sheets("Terrain") 'définit l'onglet T
MC = "toto" 'définit le mot cherché MC (à adapter)
'définit la recherche R (recherche le mot MC entier dans les valeurs de la colonne D de l'onglet T)
Set R = T.Range("D:D").Find(MC, , xlValues, xlWhole)
If Not R Is Nothing Then 'condition : si au moins une occurrence existe
PA = R.Address 'définit l'adresse PA de la première occurrence trouvée
Do 'exécute
MSG = "" 'initialise la variable MSG
'définit la dernière colonne éditée DC de la ligne de l'occurrence trouvée R
DC = T.Cells(R.Row, Application.Columns.Count).End(xlToLeft).Column
'boucle sur certaines cellules éditées de la ligne de l'occurrence trouvée
For Each CEL In Application.Union(T.Cells(R.Row, 1), T.Cells(R.Row, 3), T.Cells(R.Row, 4), T.Cells(R.Row, 5), T.Cells(R.Row, 7), T.Cells(R.Row, 8))
'définit le message MSG (renvoie à la ligne entre chaque cellule)
MSG = IIf(MSG = "", CEL.Value, MSG & Chr(13) & CEL.Value)
Next CEL 'prochaine cellule de la boucle
MsgBox MSG 'affiche le message MSG
Set R = T.Range("D:D").FindNext(R) 'redéfinit la recherche R (occurrence suivante)
'boucle tant qu'il existe de nouvelles occurrences ailleurs qu'en PA
Loop While Not R Is Nothing And R.Address <> PA
Else 'sinon (Condition)
MsgBox "Aucune occurrence de " & Chr(34) & MC & Chr(34) & " n'est présente !" 'message
End If 'fin de la condition
End Sub