Recherche Find avec retour multiple : Retour partiel des valeurs recherchées

ExcelNoob00

XLDnaute Nouveau
Bonjour à tous,

Je suis tout nouveau, aussi bien sur ce forum qu'en VBA :rolleyes:

J'essaye de créer un système recherchant une valeur entrée dans une textbox.
Lorsque un ou plusieurs correspondances sont trouvées, les valeurs des cases de la même ligne sont alors récupérées pour être implantées dans une autre textbox (pour consultation).

Avant de venir vous demander votre aide, j'ai visité pendant plusieurs jours de très nombreux sites pour essayer de réussir seul, mais je n'arrive pas à obtenir le résultat attendu en suivant ce qu'ils disent.

Cela fait la 6 eme fois que je récris le code en entier car je n'arrive pas à faire en sorte que la recherche continue après le 1er résultat trouvé.
Le dernier essai, j'ai réussi à récupérer les 2 valeurs du haut et du bas du tableau, mais pas celle au milieu.

Ps : il y a deux boutons valider, car j'ai essayé 2 sub en même temps.

Je vous joint le fichier excel ( les données sont bidons ) pour illustrer mon propos.

En vous remerciant par avance de toute aide apportée.
 

Pièces jointes

  • Gestion dynamique de stockage2.xlsm
    50.6 KB · Affichages: 39
Dernière édition:

CHALET53

XLDnaute Barbatruc
Re : Recherche Find avec retour multiple : Retour partiel des valeurs recherchées

Bonjour,

Une essai

Après saisie dans la zone de saisie : faire Entrée

a+
 

Pièces jointes

  • EXCELNooB00 Gestion dynamique de stockage2.xlsm
    40.6 KB · Affichages: 58

ExcelNoob00

XLDnaute Nouveau
Re : Recherche Find avec retour multiple : Retour partiel des valeurs recherchées

Bonjour,

Une essai

Après saisie dans la zone de saisie : faire Entrée

a+


Merci beaucoup Chalet53 !
Ton code est beaucoup plus condensé que moi et il y a des parties que je n'ai jamais rencontré dans mes recherches sur le web !

Puis-je te demander humblement des explications pour chaque ligne, afin que je puisse apprendre de toi et de ton code ?

Edit : Je viens de comprendre pour la partie n+1 , merci :)
 

CHALET53

XLDnaute Barbatruc
Re : Recherche Find avec retour multiple : Retour partiel des valeurs recherchées

Private Sub textbox_1_afterupdate()
'Stop
recherche = TextBox_1.Value
n1 = 30: n2 = 40: n3 = 50: n4 = 60 ' Valeurs initiales pour les premiers textbox

Set Plage = Range("B2", Cells(Rows.Count, "B").End(xlUp)) 'Définit une plage de B2 à la dernière de la colonne
With Plage
Set c = .Find(recherche)
If Not c Is Nothing Then
adresse = c.Address ' si trouvé : adresse de la cellule
'a = Range(adresse).Row
'Stop

Do
If n1 > 33 Then MsgBox ("Tous les emplacements sont complétés"): Exit Sub ' Sortir si plus de 4 éléments
If UCase(recherche) = UCase(Left(c, Len(recherche))) Then
Me.Controls("Textbox_" & n1) = c.Offset(0, -1) ' Fonction permettant de mettre en variable les textbox
Me.Controls("Textbox_" & n2) = c.Offset(0, 2)
Me.Controls("Textbox_" & n3) = c.Offset(0, 3)
Me.Controls("Textbox_" & n4) = c.Offset(0, 4)


n1 = n1 + 1: n2 = n2 + 1: n3 = n3 + 1: n4 = n4 + 1 ' incrément de 1 pour les recherches suivantes
End If
' Stop
Set c = .FindNext(c) ' Recherche de l'élément suivant
Loop While Not c Is Nothing And c.Address <> adresse ' On reboucle tant que l'adresse du dernier trouvé est différente du 1er
End If: End With: Beep
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 247
Messages
2 086 584
Membres
103 247
dernier inscrit
bottxok