Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Recherche par mots clefs en VBA

  • Initiateur de la discussion Enfazz
  • Date de début
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.
 
@

@+Thierry

Guest
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
 
C

corto-maltese

Guest
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!
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…