Problème de formulaire de recherche

Bonjour,

je voulais créer un formulaire pour établir des recherches de documents par mots clés!

  • un tableau qui s'est dessiné tout seul que je sais pas vraiment d'où vient ( au niveau de la colonne C et D )
  • quand j'effectue une recherche, je tape la 1er lettre et les résultats apparaissent dans " affichage du filtre " mais quand j'ajoute la 2eme lettre , les résultats s'effacent directement !!
  • quand je fais une recherche et la case souhaité se met en couleur , je sais pas quand ça s’enlève , car même si j'effectue une autre recherche , l'ancienne reste coloré .
J’espère que vous m'avez compris et que vous puissiez m'aider

PS: je voulais rejoindre le fichier mais ils disent qu'il est volumineux , comment je fais pour réduire sa taille?

Private Sub CommandButton1_Click()
Unload Me

End Sub

Private Sub CommandButton2_Click()

Dim ctl As Control
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Or TypeName(ctl) = "Listbox" Then
ctl.Value = ""
End If
Next ctl

End Sub

Private Sub Listdoc_Click()
Me.TextBox3.Value = Me.Listdoc.Value
End Sub

Private Sub TextBox1_Change()

    Dim i As Integer
    Dim NbLigne As Integer
    Dim NomDocRecherche As String

    'On ilitialise à 0 la liste de résultat
    Me.Listdoc.Clear
      Worksheets("Doc techniques").Range("C10:C100000").Interior.ColorIndex = 0

    'On met une couleur de fond blanche sur la plage
    Range("C10:C100000").Interior.ColorIndex = 0
    Range("C10:C100000").Font.ColorIndex = 0
    Range("C10:C100000").Font.Bold = False

    'On définit une var pour comptabiliser le nbre de ligne dans la liste
    NbLigne = Worksheets("Doc techniques").Range("C100000").End(xlUp).Row

    NomDocRecherche = Me.TextBox1.Value

    'On teste que la zone de saisie ne soit pas vide
    If Me.TextBox1 <> "" Then

    'parcourir la liste
    For i = 10 To NbLigne
        If Worksheets("Doc techniques").Cells(i, 3) Like "*" & UCase(Me.TextBox1.Value) & "*" Then

        'Si une val est trouvé , on applique une couleur au fond
        Cells(i, 3).Interior.Color = RGB(255, 255, 0)
        Cells(i, 3).Font.Color = RGB(0, 0, 0)
        Cells(i, 3).Font.Bold = True

        'Compléte la listbox
        Me.Listdoc.AddItem Worksheets("Doc techniques").Cells(i, 3)

        End If
        Next i
        End If

End Sub

Private Sub TextBox2_Change()

    Dim j As Integer
    Dim NbMax As Integer
    Dim redacteurCherchee As String

    'On réinitialise la listbox
    Me.Listdoc.Clear

    Worksheets("Doc techniques").Range("D10:D100000").Interior.ColorIndex = 0

    'Déclarer la fin de la liste
    NbMax = Worksheets("Doc techniques").Range("D100000").End(xlUp).Row

    'Récupérer les données dans le textbox
    redacteurCherchee = Me.TextBox2.Value

    'Test textbox qu'il n'est pas vide avant de faire mlla recherche
    If Me.TextBox2 <> "" Then

    'Parcourir toute la liste de recherche
    For j = 10 To NbMax

    'Test du contenu de la cellule
    'Grace au caractére de remplacement *
    If Worksheets("Doc techniques").Cells(j, 4) Like "*" & UCase(Me.TextBox2) & "*" Then

        Cells(j, 4).Interior.Color = RGB(255, 255, 0)
        'On compléte la listbox des valeurs
        Me.Listdoc.AddItem Worksheets("Doc techniques").Cells(j, 4)

    End If

        Next j

    End If

End Sub

Merci énormément

Bonjour,

d'après ce que j'ai pu voir de l'ancien fichier :

Pour le User formde "recherche" :

- les évènements se déclanchent avec des Textbox. _ change. ( donc après saisie de la première lettre

l'évènement se déclanche alors qu'il peut y avoir plusieurs lettres à saisir. )

- un "After update" serait un peut mieux mais pas forcément la meilleur solution.

Pour l'évenement déclencheur de la recherche j'ajouterai un bouton " Lancer la recherche" dans le userform

et je déplacerai tous les codes recherche dans l'évènement de ce bouton.

Pour la couleur qui reste je n'ai pas vu d'évènement pour réinitialiser les couleurs d'origine.

Code à créer mais lors de quel évenement ?

  • ouverture du userform recherche ?
  • Nouveau bouton sur la page ?
  • Bouton "lancer recherche" cité précédemment ?
Rechercher des sujets similaires à "probleme formulaire recherche"