Macros xls: coordonées de cellule après find?

Champi -  
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.
A voir également:

1 réponse

pilas31 Messages postés 1878 Statut Contributeur 647
 
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+
0