Recherche dans base de données (Fonction VBA)

Vorens

XLDnaute Occasionnel
Bonjours à tous,

Je souhaite pouvoir faire une recherche par mots clefs dans un base de données de plusieurs feuilles.

J'ai trouvé sur le forum un bout de code qui fonctionne très bien mais je ne parvient pas à ajouter des feuilles dans la recherche. J'entend par la que si je cré une nouvelle feuille, les informations qui si trouve ne serons pas trouvées.

J'ai quelques notions en VBA ce qui me permet de pouvoir modifiers la macro pour mon utilisation SAUF la partie qui gére l'ajout de feuille que je ne parvient pas à identifier.

Je vous met le code:

Code:
Option Explicit

'userform1
Public dimcol As Variant
Public nbfeuille As Integer
Public nomfeuille As String
Public dl1 As Long
Public message As String
Public ws As Worksheet
Public nomfeuille4 As Variant
Public nomfeuille2 As String
Public i As Long
Public j As Integer
Public ligne1 As Long
Public ligne2 As Long
Public action As Byte
Public flag As Boolean
Public data1 As String
Public premcol As Long
Public dercol As Long
Public nbmaxcol As Integer
Public nulititre As Integer
Public pseleccombo As Variant
' pour usf recherche
Public donnee As Variant
'
Sub recherche2()
Dim nomfeuille1 As String
Dim col1 As String
Dim lidep1 As Long

nomfeuille1 = "Categorie"
col1 = "a"
lidep1 = 2 ' ligne de départ
' pour des raisons de compatibilité il faut garder la même position des variables
'donnee = Array(nom de la feuille,colonne pour combobox ou "", ligne de départ ou "", True, texte pour titre de l'userform, _
'"textdox" ou "combo" , "valeur par défaut")
donnee = Array(nomfeuille1, "", "", True, " Veuillez indiquer le nom", "textbox", "veuillez tapez votre recherche")
selecvaleur2.Show
If CStr(donnee(LBound(donnee))) = "" Then Exit Sub
data1 = CStr(donnee(LBound(donnee)))

'paramétrage listview
nbmaxcol = 4 ' nombre de colonne à afficher
dimcol = Array(80, 80, 50, 50) ' dimension des colonnes le nombre de valeur doit

' être égal à la valeur affectée à nbmaxcol
nomfeuille4 = Array("Feui1")
nulititre = 1 ' ligne avec les entêtes de colonne

On Error Resume Next
ListView1.Show
On Error GoTo 0
If action = 0 Then Exit Sub
' retour
'nomfeuille contient le nom de la feuille
'ligne1 contient le numéro de la ligne sélectionnée

Call MsgBox("Vous avez sélectionnée la feuille : " & nomfeuille _
            & vbCrLf & "" _
            & vbCrLf & "Ligne N° : " & ligne1 _
            & vbCrLf & "" _
            , vbInformation, Application.Name)

End Sub

La recherche est lancée via une text box.


Merci de votre aide


Cordialement


Vorens
 

Papou-net

XLDnaute Barbatruc
Re : Recherche dans base de données (Fonction VBA)

Bonsoir Vorens,

Après essais chez moi, pas de problème : si j'ajoute une feuille (en copiant une autre feuille par exemple), la ListView affiche toutes les feuilles qui contiennent l'élément sélectionné. Et ce, aussi bien avec textBox qu'avec ComboBox.

Désolé de ne pouvoir t'en dire davantage.

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
311 740
Messages
2 082 047
Membres
101 880
dernier inscrit
Anton_2024