Sub Macro1()
Dim maplage As Range 'déclare la variable maplage
Dim maVar As String 'décalre la variable maVar
Dim c As Range 'déclare la variable c
Set maplage = Range('A2:B10') 'définit la variable maplage
maVar = 'Toto' & ' ' & 'Tutu' 'définit la variable maVar
With maplage
Set c = .Find(maVar, , xlValues) 'définit la variable c (recherche maVar dans les valeurs de la plage)
If Not c Is Nothing Then 'si il existe au moins une occurence
c.Select 'sélectionne la cellule (place ici ton code)
End If
End With
End Sub
With Worksheets ('Feuil1')
Set maplage = .Range ('A2:A10') 'définit la variable maplage
maVar = 'Toto' '& Tutu 'définit la variable maVar
maVar2 = 'Tutu''définit la variable maVar2
End With
With maplage
Set c = .Find (maVar, , xlValues) 'définit la variable c (recherche maVar dans les valeurs de la plage)
If Not c Is Nothing And c.Offset (0, 1) = maVar2 Then 'si il existe au moins une occurrence
FirstAddress = c.Address
Do
MsgBox maVar & ' ' & maVar2 & ' Ligne' & c.Row 'Affichage
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> FirstAddress
End If
End With
Sub Macro1()
Dim maplage As Range 'déclare la variable maplage
Dim maVar1 As String 'décalre la variable maVar1
Dim maVar2 As String 'déclare la variable maVar2
Dim c1 As Range 'déclare la variable c1
Dim c2 As Range 'déclare la variable c2
Set maplage = Range('A2:B10') 'définit la variable maplage
maVar1 = 'Toto'
With maplage
Set c1 = .Find(maVar1, , xlValues) 'définit la variable c (recherche maVar1 dans les valeurs de la plage)
If Not c1 Is Nothing Then 'si il existe au moins une occurence
maVar2 = maVar1 & ' ' & c1.Offset(0, 1).Value
Set c2 = .Find(maVar2, , xlValues) 'définit la variable c2 (recherche maVar2 dans les valeurs de la plage)
If Not c2 Is Nothing Then
c2.Select
End If
End If
End With
End Sub
Cela dit, j'ai essayé aussi d'une autre façon qui, après test sur 50000 lignes (en supprimant le msgbox bloquant pour les 2), est 20 fois plus rapide car travaillant directement sur un tableau variant (et non sur les ranges de la feuille) :Sub Traitement()
Dim maplage As Range, C As Range
Dim maVar As String, maVar2 As String, FirstAddress As String
With Worksheets('Feuil1')
Set maplage = .Range('A2:A50000') 'définit la variable maplage
maVar = 'toto'
maVar2 = 'tutu'
End With
With maplage
Set C = .Find(maVar, , xlValues) 'définit la variable c (recherche maVar dans la plage)
If Not C Is Nothing Then 'si il existe au moins une occurrence
FirstAddress = C.Address
Do
If C.Offset(0, 1) = maVar2 Then
MsgBox maVar & ' ' & maVar2 & ' Ligne' & C.Row 'Affichage
End If
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> FirstAddress
End If
End With
End Sub
En espérant que cela puisse t'aider...Sub Traitement2()
Dim TabTemp As Variant
Dim L As Long
Dim maVar As String, maVar2 As String
With Worksheets('Feuil1')
maVar = 'toto'
maVar2 = 'tutu'
L = .Range('A65536').End(xlUp).Row
TabTemp = .Range(.Cells(1, 1), .Cells(L, 2)).Value
For L = 1 To UBound(TabTemp, 1)
If TabTemp(L, 1) & ' ' & TabTemp(L, 2) = maVar & ' ' & maVar2 Then
MsgBox maVar & ' ' & maVar2 & ' Ligne' & L 'Affichage
End If
Next L
End With
End Sub