Excel VBA - Find inbriqué dans un Find

shadweak

XLDnaute Nouveau
Bonjour,

J'ai beau essayé de comprendre je n'y parvient pas ... Je viens donc demander votre aide :

Le but de la fonction est de :
En fonction de l'ID d'un client
Obtenir les ID lignes associés à l'ID client choisi
Pour enfin Obtenir Les ID communications attribuées rattachés aux ID lignes.

a savoir qu'il peut y avoir plusieurs lignes possibles pour un ID client
et plusieurs id communication possible pour un id ligne

J'ai donc une premiere boucle qui me recherche tout les ID Ligne rattachés à l'ID clt désiré qui fonctionne sans soucie

Mais au moment d'imbriquer une autre boucle permettant de recueillir tout les ID communication rattachés au ID Lignes trouvé

La boucle tourne une première fois intégralement sans soucie puis au moment de se relancer pour trouver une nouvelle ligne blocage :

j'ai une erreur d execution 91 : "variable objet ou variable de bloc whith no definie"

ci dessous le code :




' Recherche des lignes à traiter avec pour L la valeur de la ligne
id_clt_ligne = L - 2

If id_clt_ligne = "" Then
Exit Sub
End If

'recherche de doublons dans la plage
With Worksheets("BDD_Ligne").Range("B:B")

'je recherche la valeur la première fois
Set g = .Find(id_clt_ligne, LookIn:=xlValues)

'si la valeur existe pour la première fois
If g Is Nothing Then
MsgBox ("Pas de ligne répertoriée pour ce client !")
Exit Sub
End If

If Not g Is Nothing Then
'je stocke l'adresse de la valeur trouvée dans une variable
firstAddress = g.Address

Dim I As Integer
Dim dr As String
Dim Arg As String
Dim grow As Integer

'je répète
Do

'je cherche le suivant
Set g = .FindNext(g)

grow = g.Row - 1
' je recherche les id communication associe a l id ligne trouve
With Worksheets("bdd_communication").Range("b:b")
Dim seconde As String
'je recherche la valeur la première fois
Set idcom = .Find(grow, LookIn:=xlValues)

If idcom Is Nothing Then
MsgBox ("ouille")
Exit Sub
End If

'si la valeur existe pour la première fois
If Not idcom Is Nothing Then
'je stocke l'adresse de la valeur trouvée dans une variable
seconde = idcom.Address
'je répète
Do
'je cherche le suivant
Set idcom = .FindNext(idcom)
MsgBox (idcom.Address)
'je recommence tant que la valeur est la même et que l'adresse est différente de la première
Loop While Not idcom Is Nothing And idcom.Address <> seconde
End If
End With


Arg = _
Sheets("BDD_ligne").Cells(g.Row, Sheets("aide saisie").Range("numero_l")).Value _
& " - Ligne de type : " & Sheets("BDD_ligne").Cells(g.Row, Sheets("aide saisie").Range("Type_l")).Value _
& " - Hébergée chez : " & Sheets("BDD_ligne").Cells(g.Row, Sheets("aide saisie").Range("operateur_l")).Value _

If dr = "" Then
dr = Arg
Else
dr = dr & Chr(10) & " " & Arg
End If

I = I + 1

If I > 1 Then
Prono = "des lignes"
Else
Prono = "de la ligne"
End If

MsgBox ("dr : " & dr)



'je recommence tant que la valeur est la même et que l'adresse est différente de la première
Loop While Not g Is Nothing And g.Address <> firstAddress
End If
End With


En esperant avoir reussi a etre claire

Merci d'avance
 

Statistiques des forums

Discussions
312 107
Messages
2 085 356
Membres
102 874
dernier inscrit
Petro2611