Erreur 91 méthode Find

Bonjour,

J'ai une erreur sur un "Find" mais je n'arrive absolument pas à comprendre pourquoi alors que la même méthode fonctionne deux lignes plus haut, voici mon code :

Sub test()
dim rng1, rng2 as range
dim i as integer

For i = 6 To 500    
    If Sheets(1).Cells(i, 10).Value Like "Takt *" Then

        rng1 = Sheets(2).Range("D6:O6").Find(Sheets(1).Cells(i, 10).Value, LookIn:=xlValues).Address

        If Not Sheets(2).Range("C7:C10").Find(Sheets(1).Cells(i, 3).Value, LookIn:=xlValues) Is Nothing Then
            rng2 = Sheets(2).Range("C7:C10").Find(Sheets(1).Cells(i, 3).Value, LookIn:=xlValues).Address 'L'erreur se trouve ici, ce qui me montre que le find n'est pas vide et donc devrait pouvoir renvoyer une adresse
        Else
            rng2 = Sheets(2).Range("C7:C10").Find(Sheets(1).Cells(i - 1, 3).Value, LookIn:=xlValues).Address
        End If

        MsgBox (rng1 & "    " & rng2) 'j'ai mis un msgbox pour vérifier que mes valeurs sont bonnes
    End If
Next i
End Sub

Pour rng2 j'ai fait un if car il vérifie les valeurs dans des cellules fusionnées deux par deux (exemple cellule C6 fusionnée avec cellule C7, C8 avec C9 etc...)

Merci de votre aide !!


Le pire c'est que ce code fonctionne très bien et me renvoie les bonnes adresses... :

Sub test()
dim rng1, rng2 as range
dim i as integer

For i = 6 To 500    
    If Sheets(1).Cells(i, 10).Value Like "Takt *" Then

        rng1 = Sheets(2).Range("D6:O6").Find(Sheets(1).Cells(i, 10).Value, LookIn:=xlValues).Address

        If Not Sheets(2).Range("C7:C10").Find(Sheets(1).Cells(i, 3).Value, LookIn:=xlValues) Is Nothing Then
            'rng2 = Sheets(2).Range("C7:C10").Find(Sheets(1).Cells(i, 3).Value, LookIn:=xlValues).Address 
            MsgBox (Sheets(2).Range("C7:C10").Find(Sheets(1).Cells(i, 3).Value, LookIn:=xlValues).Address)

        Else
           'rng2 = Sheets(2).Range("C7:C10").Find(Sheets(1).Cells(i - 1, 3).Value, LookIn:=xlValues).Address
            MsgBox (Sheets(2).range("C7:C10").Find(Sheets(1).Cells(i-1, 3).Value, LookIn:=xlValues).Address)

        End If
    End If
Next i
End Sub

Bonjour,

sans rentrer dans le code :

cette écriture est à revoir :

dim rng1, rng2 as range

lors de la déclaration de variable il faut préciser le type pour chacune des variables même si l'on met cela sur une même ligne , dans le cas contraire le type de variable utilisé est variant:

dim rng1 as range, rng2 as range

pour affecter un objet ( range par exemple) il faut utiliser l'instruction Set , l'égale seul n'agit que sur la valeur :

 set  rng2 = Sheets(2).Range("C7:C10").Find(Sheets(1).Cells(i, 3).Value, LookIn:=xlValues)

Super, merci beaucoup c'était exactement ca !

Mes range n'étaient pas bien définis, je ne savais pas que cela fonctionnait comme ca, j'avais déjà essayé le set mais vu que je n'avais pas bien défini rng1 et rng2 cela ne fonctionnait pas.

Encore merci, bonne journée !

Rechercher des sujets similaires à "erreur methode find"