Bonjour à tous,

Je viens vers vous pour deux petites interrogations...
J'ai un code vba simple qui cherche, par exemple, le mot "garage" dans les Colonnes A, B et C, et si il trouve me renvoie, sur la même ligne, "Garage" en colonne D. Rien de bien compliqué...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub Test_Garage()
 
Dim FL1 As Worksheet
Dim c As Range, Donnee1 As String
 
 
   Set FL1 = Worksheets("Données") 
 
 
    For Nolig = 2 To FL1.Range("A65535").End(xlUp).Row
        Donnee1 = "Garage" 
        With FL1.Range("a1:c" & FL1.Range("A65535").End(xlUp).Row) 
           Set c = .Find(Donnee1, LookIn:=xlValues)
 
        If Not c Is Nothing Then
          FirstAddress = c.Address
            Do
                FL1.Cells(c.Row, 4) = "Garage"
                 Set c = .FindNext(c)
           Loop While Not c Is Nothing And c.Address <> FirstAddress
 
            Else
              ' FL1.Cells(Nolig, 4).Value = 0
            End If
 
            'Set c = Nothing
        End With
    Next
 
End Sub
Mon premier problème est devant mon nez, mais ne trouve pas de solutions.
Quand je fais des tests, avec des données sur les 30 premières lignes et les colonnes A,B et C: tout marche .
Mais quand je lance cette macro sur 8 000 lignes, j'ai l'impression qu'elle boucle à l'infini
J'ai repris les aides sur Loop mais ne comprends pas l'erreur?
Si cela marche pour 10, cela marche pour 100000 non?
Est-ce du fait qu'il cherche sur plusieurs colonnes, et que celles-ci sont mal définis?


Ma seconde question est: comment faire pour qu'il cherche "garage" et "essence" (par ex.) et renvoie dans les deux cas "Garage".
J'ai cherché du côté de Array, And et par les Tableaux mais ne trouve pas.
Auriez-vous une piste?


En vous remerciant par avance