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.
Configuration: Windows Vista / Firefox 3.5.8

1 réponse

  1. pilas31 Messages postés 1878 Statut Contributeur 648
     
    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