Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

fonction recherche

  • Initiateur de la discussion jean michel
  • Date de début
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
 
C

Creepy

Guest
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
 

Discussions similaires

Réponses
6
Affichages
408
Réponses
24
Affichages
1 K
Réponses
7
Affichages
458
Réponses
23
Affichages
792
Réponses
5
Affichages
431
Réponses
16
Affichages
843
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…