Je suis entrain de bosser sur un fichier excel en utilisant du VBA.
J'ai dans mon fichier excel deux feuilles (une principale et un tableau avec les infos concernant des produits)
Sur mon formulaire principal j'ai une textbox que j'utilise pour rechercher dans les colonnes E à G de mon tableau
Private Sub TextBox1_Change()
Dim Rng As Range
If Len(TextBox1.Text) > 2 Then
With Sheets("database").Range("E:G")
Set Rng = .Find(What:=TextBox1.Text, After:=.Cells(.Cells.count), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not Rng Is Nothing Then
[J1] = "trouvé"
Else
[J1] = "pas trouvé"
End If
End With
Else
[J1] = "trop court"
End If
End Sub
Dans la suite de ce code je souhaiterai apporter deux améliorations où je bloque et je ne trouve aucunes infos...
La recherche actuelle fonctionne qu'il faut que ma cellule corresponde exactement à ma textbox. J'aimerai par exemple mettre dans ma textbox les premiers caractères et que ça me retourne les différents numéros de ligne où ce trouve ce qu'il y a dans ma textbox.
Exemple : Ma textbox contient 123
Ligne 1 : 23456 Ligne 2 : 12345 Ligne 3 : 45678 Ligne 4 : 12366 Ligne 5 : 12397
J1 devra alors indiquer : 2,4,5.
Quelqu'un qui pourrait m'aiguiller sur les solutions possible?
Regarde la partie "Remarques" qui donne un exemple de ce que tu pourrais faire avec la boucle et le mot-clé "Like", à l'exception que tu devrais regarder les valeurs des cellules (pas leur police). Bon du coup ça n'utilise plus Find et ça risque de prendre un temps fou s'il y a beaucoup de lignes.
Une autre solution pourrait être d'utiliser un filtre et récupérer le numéro des lignes affichées (si c'est possible, je ne sais pas exactement comment c'est géré en VBA le filtre).
VBA - Recherche
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.