Résolu VBA Résultat suivant dans une boucle for each

  • Auteur de la discussion Mickoik
  • Date de début

Mickoik

Habitué
Bonjour à tous !
je vous explique mon problème :
j'ai créé un "moteur de recherche" sur une feuille qui me permet de trouver un client par son nom ou son numéro de tel ou autre chose en utilisant une boucle for each.
Le soucis, c'est que parfois, il y a plusieurs résultat à ma recherche et la boucle continue et ne m'affiche donc que le dernier résultat trouvé.
J'aimerai créer un bouton "suivant" qui me permettrait de voir les résultats un par un en cliquant dessus à chaque fois.
J'ai essayé de placer un if CommandButton2_Click then next mais bien évidement ça ne marche pas.

Si quelqu'un à une idée ...

je vous met mon code ici : (j'ai retiré le début trop long)
Merci à tous !


Code:
Sheets("Rechercher Client").Range("D35:N46").Clear

For Each macellule3 In table_tel
If macellule3.Value Like "*" & tel.Value & "*" Then
j = j + 1
client = Sheets("Tableau Général").Cells(macellule3.Row, 1)
nom = Sheets("Tableau Général").Cells(macellule3.Row, 5)
signature = Sheets("Tableau Général").Cells(macellule3.Row, 6)
raison = Sheets("Tableau Général").Cells(macellule3.Row, 2)
adresse = Sheets("Tableau Général").Cells(macellule3.Row, 7)
cp = Sheets("Tableau Général").Cells(macellule3.Row, 8)
ville = Sheets("Tableau Général").Cells(macellule3.Row, 9)
fixe = Sheets("Tableau Général").Cells(macellule3.Row, 10)
portable = Sheets("Tableau Général").Cells(macellule3.Row, 11)
mensu = Sheets("Tableau Général").Cells(macellule3.Row, 14)
rac = Sheets("Tableau Général").Cells(macellule3.Row, 15)
vendeur = Sheets("Tableau Général").Cells(macellule3.Row, 20)
leaser = Sheets("Tableau Général").Cells(macellule3.Row, 21)
instal = Sheets("Tableau Général").Cells(macellule3.Row, 22)
statut = Sheets("Tableau Général").Cells(macellule3.Row, 24)
Else
End If
Next macellule3



For Each macellule In table_client
If macellule.Value = client.Value Then
cam = Sheets("Gestion des installations").Cells(macellule.Row, 15)
ancien = Sheets("Gestion des installations").Cells(macellule.Row, 14)
ecran = Sheets("Gestion des installations").Cells(macellule.Row, 16)
dvr = Sheets("Gestion des installations").Cells(macellule.Row, 17)
dd = Sheets("Gestion des installations").Cells(macellule.Row, 18)
ba = Sheets("Gestion des installations").Cells(macellule.Row, 19)
Exit For
End If
Next

For Each macellule In table_client
If macellule.Value = client.Value Then
i = i + 1
End If
Next

If i > 1 Then
nb_cam = i
Else
nb_cam = " "
End If

For Each macellule2 In table_client_sav
If macellule2.Value = client.Value Then
Sheets("SAV").Cells(macellule2.Row, 1).Copy Destination:=Sheets("Rechercher Client").Range("D" & Rows.Count).End(xlUp).Offset(1, 0)
Sheets("SAV").Cells(macellule2.Row, 2).Copy Destination:=Sheets("Rechercher Client").Range("E" & Rows.Count).End(xlUp).Offset(1, 0)
Sheets("SAV").Cells(macellule2.Row, 8).Copy Destination:=Sheets("Rechercher Client").Range("G" & Rows.Count).End(xlUp).Offset(1, 0)
Sheets("SAV").Cells(macellule2.Row, 9).Copy Destination:=Sheets("Rechercher Client").Range("H" & Rows.Count).End(xlUp).Offset(1, 0)
Sheets("SAV").Cells(macellule2.Row, 7).Copy Destination:=Sheets("Rechercher Client").Range("L" & Rows.Count).End(xlUp).Offset(1, 0)
Sheets("SAV").Cells(macellule2.Row, 10).Copy Destination:=Sheets("Rechercher Client").Range("N" & Rows.Count).End(xlUp).Offset(1, 0)
End If
Next

MsgBox j & " Résulats"

End Sub


 

magellan

Modérâleur
Staff
Meilleure réponse
D'après ce que je vois c'est ici que tu veux traiter
C++:
For Each macellule2 In table_client_sav
If macellule2.Value = client.Value Then
... // j'ai viré les affectations
//I faut que tu traites ton exception ici et afficher une fenêtre modale 

If MsgBox("continuer la recherche?", vbYesNo, "Demande de confirmation") = vbNo Then
//on sort!
exit for
End If
End If
Next
 

Mickoik

Habitué
Je l'ai un peu modifié mais ça marche !!!!
merci

Code:
If MsgBox("Est-ce que c'est " & client.Value & " ?", vbYesNo, "Avons-nous trouvé le client ?") = vbYes Then
Exit For
End If
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 001
Membres
1 586 388
Dernier membre
mery2005
Partager cette page
Haut