Formulaire de recherche VBA-Excel
Rougv86
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'essaye actuellement de réaliser ma première macro avec VBA (très peu de connaissances en code donc)
Je cherche àune base de données d'articles d'un magazine. J'ai donc créé un formulaire de saisie.
Pour chaque article, je renseigne : le titre, des mots-clés, le pays dont l'article parle, la date, le n° du journal, la page..
Après ca, je voudrais créer un formulaire de recherche. C'est à dire, on rentre soit : un ou plusieurs mots-clés, soit un pays, soit une date ... et il trouve les articles correspondants (rangés dans une feuille excel "Index" )
Et pour ca, j'y arrive plus ! Je ne sais pas du tout quel code il faut mettre. Pourriez-vous m'aider ? (petite précision, peut être inutile : j'ai Excel 2000)
Merci d'avance
J'essaye actuellement de réaliser ma première macro avec VBA (très peu de connaissances en code donc)
Je cherche àune base de données d'articles d'un magazine. J'ai donc créé un formulaire de saisie.
Pour chaque article, je renseigne : le titre, des mots-clés, le pays dont l'article parle, la date, le n° du journal, la page..
Après ca, je voudrais créer un formulaire de recherche. C'est à dire, on rentre soit : un ou plusieurs mots-clés, soit un pays, soit une date ... et il trouve les articles correspondants (rangés dans une feuille excel "Index" )
Et pour ca, j'y arrive plus ! Je ne sais pas du tout quel code il faut mettre. Pourriez-vous m'aider ? (petite précision, peut être inutile : j'ai Excel 2000)
Merci d'avance
Configuration: Windows XP Internet Explorer 7.0
1 réponse
-
Bonjour,
Voici un exemple que j'avais codé pour un membre CCM.
Postulat :
Les critères de recherche sont sur la feuille 1
Les données index sont sur la feuille 2
Option Explicit ' Type Resultats Ligne As Long Adresse As String Formule As String Valeur As Variant End Type ' Public Sub Recherche() Dim varCellule As Range, VarChaine As String Dim VarBoite As Resultats VarBoite.Ligne = 0: VarBoite.Adresse = "": VarBoite.Valeur = "" Set varCellule = Application.InputBox("Cellule source : ", Type:=8) Sheets(2).Select Range("A1").Select ChercheDateSousRoutine VarBoite, varCellule VarChaine = "" VarChaine = vbLf & " { - - - Paramètres trouvés en fonction de la recherche - - - } " & vbLf & vbLf VarChaine = VarChaine & vbLf & "[ Ligne : " & VarBoite.Ligne & " ] " & vbLf VarChaine = VarChaine & vbLf & "[ Adresse : " & VarBoite.Adresse & " ] " & vbLf VarChaine = VarChaine & vbLf & "[ Formule : " & VarBoite.Formule & " ] " & vbLf VarChaine = VarChaine & vbLf & "[ Valeur : " & VarBoite.Valeur & " ] " & vbLf VarChaine = VarChaine & vbLf & vbLf MsgBox VarChaine, vbOKOnly, "Recherche personnalisé" Set varCellule = Nothing End Sub ' Private Sub ChercheDateSousRoutine(ByRef VarBte As Resultats, ByVal Cellule As Range) Dim PlageDeRecherche As String, CelluleTrouve As Range PlageDeRecherche = "A1:A" & Range("A7").End(xlDown).Row With Range(PlageDeRecherche) Set CelluleTrouve = .Find(What:=Cellule.Value, LookIn:=xlValues) End With If Not (CelluleTrouve Is Nothing) Then VarBte.Ligne = CelluleTrouve.Row VarBte.Adresse = CelluleTrouve.Address VarBte.Formule = CelluleTrouve.Formula VarBte.Valeur = CelluleTrouve.Value Else VarBte.Ligne = 0 End If Set CelluleTrouve = Nothing End Sub '
Lupin