Formulaire de recherche VBA-Excel

Fermé
Rougv86 - 24 mars 2008 à 11:57
 Utilisateur anonyme - 24 mars 2008 à 13:11
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
A voir également:

1 réponse

Utilisateur anonyme
24 mars 2008 à 13:11
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
0