• Initiateur de la discussion Initiateur de la discussion jean michel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jean michel

Guest
Bonjour à tous

COMMENT DANS UNE BASE DE DONNEE EXCEL FAIRE POUR RECHECHER UN NOM dans un colonne et afficher la ligne corespondante avec toutes les infos (nom adresse telephone ...) sachant que 2 noms peuvent etre identiques quite à afficher tous les noms identiques

Sinceres salutations
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
17
Affichages
527
Réponses
3
Affichages
415
Réponses
6
Affichages
191
Retour