Formulaire de recherche VBA-Excel

Rougv86 -  
 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
Configuration: Windows XP
Internet Explorer 7.0

1 réponse

  1. Utilisateur anonyme
     
    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