bonjour,
dans un formulaire de saisie lorsque dans le textbox recherche ( ou champ recherche ) j'écris "a" j'ai un message d'un message box " le nom n'existe pas " pourtant dans la liste il si trouve, je me sert de la colonne a dans la feuille "Base" pour la recherche si a la place du "a" je marque "aa" dans la cellule a2 de la feuille "Base" et que dans le champ recherche je marque "a" il affiche "aa" l'erreur ce trouve dans ce code
mais je n'arrive pas a cerner le probléme, je vous remercie d'avance pour vos réponses
Cordialement
dans un formulaire de saisie lorsque dans le textbox recherche ( ou champ recherche ) j'écris "a" j'ai un message d'un message box " le nom n'existe pas " pourtant dans la liste il si trouve, je me sert de la colonne a dans la feuille "Base" pour la recherche si a la place du "a" je marque "aa" dans la cellule a2 de la feuille "Base" et que dans le champ recherche je marque "a" il affiche "aa" l'erreur ce trouve dans ce code
VB:
Private Sub recherche_Change()
'**********************************
'EMPECHE LE DÉFFILEMENT INTEMPESTIF
'**********************************
Application.ScreenUpdating = False
'DECLARATIONS DES VARIABLES
Dim Plage As Range, Cel As Range
'PERMET DE SAVOIR SI LA LETTRE DU CHAMP RECHERCHE EXISTE
If Not IsError(Application.Match(recherche.Value, Sheets("Base").Range("A2:A600"), 0)) Then
MsgBox "Le nom n'existe pas", vbExclamation, "Avertissement"
'PERMET DE REINITIALISER LA LISTVIEW APRÉS AVOIR APPUYER SUR OK
Call UserForm_Initialize
'EFFACE TEXBOB RECHERCHE
Me.recherche.Text = ""
'MET FOCUS TEXBOB NOM
Me.nom.SetFocus
'PUIS MET FOCUS TEXBOB RECHERCHE
Me.recherche.SetFocus
'SORT DE LA PROCEDURE
Exit Sub
End If
If recherche <> "" Then
Set Plage = Worksheets("Base").Range("A2:A" & Worksheets("Base").Range("A" & Rows.Count).End(xlUp).Row)
ligne = 1
With ListView1
.ListItems.Clear
For Each Cel In Plage
If UCase(Cel) Like UCase(recherche & "*") Then
.ListItems.Add , , Cel
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 1)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 2)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 3)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 4)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 5)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 6)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 7)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 8)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 9)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 10)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 11)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 12)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 13)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 14)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 15)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 16)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 17)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 18)
.ListItems(ligne).ListSubItems.Add , , Cel.Offset(, 19) 'RAJOUTER POUR TEST
ligne = ligne + 1
End If
Next
End With
End If
End Sub
mais je n'arrive pas a cerner le probléme, je vous remercie d'avance pour vos réponses
Cordialement