Macros xls: coordonées de cellule après find?
Champi
-
pilas31 Messages postés 1878 Statut Contributeur -
pilas31 Messages postés 1878 Statut Contributeur -
Bonjour, mon soucis est le suivant : j'ai ecrit une fontion "find" mais j'aurais besoin de pouvoir enregistrer les coordonées de la cellule trouvée (enfin plus exactement au moins de sa ligne).
_______________________________________________________________
Sub
a = 2
Do Until a = 65536
With Worksheets("feuile1").Range("a2:a65536")
Set c = .Find(Worksheets("feuille2").Cells(a, 1).Value, LookIn:=xlValues)
If Not c Is Nothing Then
[ ... ]
_______________________________________________________________
Voilà ou j'en suis actuellement la suite de mon programe serais dans le style suivant :
_______________________________________________________________
[ ... ]
If Worksheets("feuille1").Cells(a, 5) <> Worksheets("feuille2").Cells( ??? , 5) Then
Worksheets("feuille1").Cells(a, 5).Interior.Color = vbRed
End If
End If
End With
a = a + 1
Loop
End Sub
_____________________________________________________________________
avec les ??? correspondant au numéro de ligne de la cellule trouvée.
Merci d'avance pour vos réponses.
_______________________________________________________________
Sub
a = 2
Do Until a = 65536
With Worksheets("feuile1").Range("a2:a65536")
Set c = .Find(Worksheets("feuille2").Cells(a, 1).Value, LookIn:=xlValues)
If Not c Is Nothing Then
[ ... ]
_______________________________________________________________
Voilà ou j'en suis actuellement la suite de mon programe serais dans le style suivant :
_______________________________________________________________
[ ... ]
If Worksheets("feuille1").Cells(a, 5) <> Worksheets("feuille2").Cells( ??? , 5) Then
Worksheets("feuille1").Cells(a, 5).Interior.Color = vbRed
End If
End If
End With
a = a + 1
Loop
End Sub
_____________________________________________________________________
avec les ??? correspondant au numéro de ligne de la cellule trouvée.
Merci d'avance pour vos réponses.
Configuration: Windows Vista / Firefox 3.5.8
1 réponse
-
Bonjour,
La syntaxe est c.Row pour trouver la ligne concernée. Voici ce que cela donne avec quelques adaptations :a = 2 Do Until a = 65536 With Worksheets("feuille1").Range("a2:a65536") If Worksheets("feuille2").Cells(a, 1).Value <> "" Then Set c = .Find(Worksheets("feuille2").Cells(a, 1).Value, LookIn:=xlValues) If Not c Is Nothing Then '[ ... ] '_______________________________________________________________ ilig = c.Row 'Voilà ou j'en suis actuellement la suite de mon programe serais dans le style suivant : '_______________________________________________________________ '[ ... ] If Worksheets("feuille2").Cells(a, 5) <> Worksheets("feuille1").Cells(ilig, 5) Then Worksheets("feuille1").Cells(ilig, 5).Interior.Color = vbRed End If End If End If End With a = a + 1 Loop
J'ai corrigé car il me semble qu'il y avait inversion entre feuille1 et 2 par endroit. J'ai ajouté un test pour éviter de chercher quand les cellules sont vides.
A+