Recherche par mots clefs en VBA

  • Initiateur de la discussion Initiateur de la discussion Enfazz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Enfazz

Guest
Bonjour à tout le forum !!

Bon voilà, j'aimerais faire en VBA, une "simulation" de la requete select * from machin where truc like l% de SQL.... en fait j'aimerais rechercher un ensemble de mots clefs dans une chaine de caractères.

supposons que j'ai une table avec des enregistrements dedans. Par exemple un dictionnaire de recette.

Recette:
---------
Gateau 3 choco
Gateau choco noir
Gateau choco lait
Gateau fromage blanc
Tarte sucre
Tarte pomme
..
..

comment faire pour que si j'entre par exemple en mot clefs Gateau;choco dans un textbox il m'affiche dans une feuille excel les 3 premiers enregistrements.

En esperant etre assez clair.
Merci.
 
Bonsoir Enfazz, le Forum

Rapidos avant d'être enfermé au bureau !!! En admettant que tu saisisses bien dans l'InputBox avec le Semi-Colon ";" comme séparateur et en admettant que toutes tes données se trouvent bien en colonne "A" de la feuille (de "A2 à Ax") voici un code qui devrait marcher... et te reporter tes occurences en colonne "C" de la même feuille.

Sub TestRechercheDelAmiral()
Dim Tablo
Dim ItemSearch
Dim Searched As String
Dim i As Integer, ii As Integer, x As Integer, z As Integer

z = 1

Tablo = Range("A2:A" & Range("A65536").End(xlUp).Row)


Searched = InputBox("Saisissez les mots clefs séparée par ;", "Recherche par Mots Clefs")

ItemSearch = Split(Searched, ";")

For i = 1 To UBound(Tablo)
x = 0
For ii = 0 To UBound(ItemSearch)
If InStr(UCase(Tablo(i, 1)), UCase(ItemSearch(ii))) > 0 Then
x = x + 1
End If
Next ii
If x = ii Then
Cells(z, 3) = Tablo(i, 1)
z = z + 1
End If
Next i

End Sub

Sur une inspiration toute récente dans ce Forum et mise en application, c'est comme Daucy aussitôt dit aussitot fait !!

Bon allez Zou Bye Bye
@+Thierry
 
Bonjour,

Que faut-il modifier pour que la macro retourne les lignes entières, et pas seulement les cellules ?

Par exemple, si j'ai :

Gateau 3 choco | 19
Gateau choco noir | 15
Gateau choco lait | 25
Gateau fromage blanc | 30
Tarte sucre | 10
Tarte pomme | 12
..

Et que je tape gateau;choco, comment puis-je obtenir les lignes :
Gateau 3 choco | 19
Gateau choco noir | 15
Gateau choco lait | 25

Merci d'avance!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour