Bonjour à tous, Jean Michel,
Voici un bout de code que j'ai fait pour rechercher dans la liste de nos clients de mon entreprise.
Pour t'expliquer j'ai une useform avec 3 options boutons : Nom client, Marché, N° de MArché.
Un case texte pour entrer le texte à recehrcher, 3 bouton : Chercher, Imprimer et quitter.
Et enfin une ListBox pour afficher les resultats.
En faites c'est le même code répété 3 fois en fonction de l'option choisie !! C'était une de mes premières MAcro et je m'apercois que j'aurais pu faire mieux !!!
------------ CODE DU BOUTON RECHERCHER --------------
Private Sub BtnRecherche_Click() 'MODE RECHERCHE STRING
Dim Cell As Range
Dim TAB1(0 To 50, 0 To 2) As String
Dim I As Byte
Dim L As Byte
' facon de rechercher en fonction du bouton activé, client, Marché ou N° de marché
If btnNom.Value = False And BtnMarche.Value = False And BtnNmr = False Then
MsgBox "Vous devez choisir un type de recherche !!", vbCritical + vbOKOnly, "Attention ..."
Exit Sub
End If
If btnNom.Value = True Then '<- Bouton Nom client
If TxtQuoi.Value <> "" Then
L = Len(TxtQuoi)
For Each Cell In Sheets("BdeD").Range("A2", "A" & Range("A65536").End(xlUp).Row)
If UCase(Left(Cell.Text, L)) = UCase(TxtQuoi.Text) Then
TAB1(I, 0) = Cell.Text
TAB1(I, 1) = Cell.Offset(0, 1).Text
TAB1(I, 2) = Cell.Offset(0, 2).Text
I = I + 1
End If
Next Cell
Else
MsgBox "Veuillez entrer un critère de recherche", vbInformation + vbOKOnly, "Erreur de recherche"
Exit Sub
End If
LstResultat.Visible = True
LstResultat.ColumnCount = 3
LstResultat.ColumnWidths = "6cm" & ";" & "6cm" & ";" & "3cm"
LstResultat.List = TAB1()
ElseIf BtnMarche.Value = True Then '<- Bouton Marché
If TxtQuoi.Value <> "" Then
L = Len(TxtQuoi)
For Each Cell In Sheets("BdeD").Range("B2", "B" & Range("A65536").End(xlUp).Row)
If UCase(Left(Cell.Text, L)) = UCase(TxtQuoi.Text) Then
TAB1(I, 0) = Cell.Text
TAB1(I, 1) = Cell.Offset(0, -1).Text
TAB1(I, 2) = Cell.Offset(0, 1).Text
I = I + 1
End If
Next Cell
Else
MsgBox "Veuillez entrer un critère de recherche", vbInformation + vbOKOnly, "Erreur de recherche"
Exit Sub
End If
LstResultat.Visible = True
LstResultat.ColumnCount = 3
LstResultat.ColumnWidths = "6cm" & ";" & "6cm" & ";" & "3cm"
LstResultat.List = TAB1()
ElseIf BtnNmr.Value = True Then '<- Bouton N° de Marché
If TxtQuoi.Value <> "" Then
L = Len(TxtQuoi)
For Each Cell In Sheets("BdeD").Range("C2", "C" & Range("A65536").End(xlUp).Row)
If UCase(Left(Cell.Text, L)) = UCase(TxtQuoi.Text) Then
TAB1(I, 0) = Cell.Text
TAB1(I, 1) = Cell.Offset(0, -2).Text
TAB1(I, 2) = Cell.Offset(0, -1).Text
I = I + 1
End If
Next Cell
Else
MsgBox "Veuillez entrer un critère de recherche", vbInformation + vbOKOnly, "Erreur de recherche"
Exit Sub
End If
LstResultat.Visible = True
LstResultat.ColumnCount = 3
LstResultat.ColumnWidths = "3cm" & ";" & "6cm" & ";" & "6cm"
LstResultat.List = TAB1()
End If
End Sub
-----------------------
++
Creepy