Macro Excel recherche (Ctrl+F) dans combobox formulaire

Zentin

XLDnaute Nouveau
Bonjour le forum,
J’ai créé un petit formulaire de recherche client qui fonctionne très sur base de différents critères (nom de société, contact ou adresse mail). Ma base de données réelle contient +/- 5000 adresses avec des blancs pour certains renseignements.

Maintenant, je souhaiterais améliorer ce formulaire afin que les personnes qui font la recherche d’un client sur base d’un des 3 critères puissent faire celle-ci même s’ils n’ont qu’une partir du nom de société, du nom de contact ou de l’adresse mail soit une recherche de style : afficher soc.elec.cau en encodant uniquement *cau dans la Combobox de recherche.

En annexe un exemple de la base et du système de recherche.
Merci à tous pour l’attention que vous apporterez à ma demande et excellente fin de journée

Zentin
 

Pièces jointes

  • Offres.zip
    62 KB · Affichages: 131
  • Offres.zip
    62 KB · Affichages: 124
  • Offres.zip
    62 KB · Affichages: 124

john

XLDnaute Impliqué
Re : Macro Excel recherche (Ctrl+F) dans combobox formulaire

Bonjour,

Voici une version qui fait +/- ce que vous recherchez.

Bonne fin de journée.

John
 

Pièces jointes

  • Offres.xls
    292 KB · Affichages: 245

Gorfael

XLDnaute Barbatruc
Re : Macro Excel recherche (Ctrl+F) dans combobox formulaire

Salut Zentin et le forum
Je n'ai fait le code que pour la première combobox.
N'utilisant pas la liste de la combo, je ne peux utiliser AfterUpDate, comme évènement, ni Change, qui se lance à chaque modification d'un caractère. La seule solution qui me reste, c'est Exit. Ce qui donne :
Code:
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Cel As Range
With Sheets("Clients")
    Set Cel = .Columns(2).Find(Me.ComboBox1.Text, LookAt:=xlPart)
    If Cel Is Nothing Then Exit Sub
    Me.ComboBox2 = Clear
    Me.ComboBox3 = Clear
    Me.TextBox1 = .Cells(Cel.Row, "B")
    Me.TextBox2 = .Cells(Cel.Row, "C")
    Me.TextBox3 = .Cells(Cel.Row, "D")
    Me.TextBox4 = .Cells(Cel.Row, "E")
    Me.TextBox5 = .Cells(Cel.Row, "F")
    Me.TextBox6 = .Cells(Cel.Row, "G")
    Me.TextBox7 = .Cells(Cel.Row, "H")
    Me.TextBox8 = .Cells(Cel.Row, "I")
    Me.TextBox9 = .Cells(Cel.Row, "A")
End With
End Sub
Remarques sur le code :
- Sur ton essai, il n'y a qu'un onglet, mais s'il y en a plusieurs, ça fonctionne quand même.
- On est dans la même configuration qu'une recherche normale : on ne trouvera que la première occurrence. Comme on utilise pas de Select, il faudrait mémoriser Cel, mais on peut le faire en déclarant Cel en tête de module pour la transformer en variable globale, et en incluant un test d'entrée de la macro pour que cel ne soit pas nulle et un paramètre after à l'instruction Find
- Si tu continues dans le VBA, tu ferais bien de t'acheter une perruque ;).
9 TextBox, c'est pas la mer à boire. Mais si on te demande de faire une modif le jour tu es fatigué, après avoir oublié l'USF pendant 6 mois...
Dès que tu crées un contrôle, renommes-le de manière explicite !
Se rappeler que TextBox5 correspond à la colonne F est plus dur que si tu avais TxB_Pays, non ?
A+
 

Zentin

XLDnaute Nouveau
Re : Macro Excel recherche (Ctrl+F) dans combobox formulaire

Bonjour John & Gorfael,

Merci pour vos propositions.
Je fais quelques essais et reviendrai probablement vers vous courant de la semaine prochaine.

@Gorfael,
En effet je pense que je vais devoir revoir mon formulaire, je me dirige vers un autre système de recherche via 3 Textbox au lieu de 3 combobox et affichage dans une listbox pour sélection de mon choix dans cette liste.

Excellente journée et @+
Zentin
 

Zentin

XLDnaute Nouveau
Re : Macro Excel recherche (Ctrl+F) dans combobox formulaire

Re-bonjour John,

Votre proposition n'est pas mal du tout, mais présente quelques bugs.
Lorsque j'encode un nom mal orthographié, jai une erreur d'exécution 91.
La recherche par adresse mail ne fonctionne pas comme pour les 2 autres combobox, cela viendrait-il du signe "@"
Exemple : dans la combobox recherche par adresse mail, si je recherche Dupond je n'ai aucun résultat par contre si je cherche Marie l'adresse mail s'affiche.
Auriez-vous un petit mot d'explication svp?
Merci d'avance et @+
Zentin
 

john

XLDnaute Impliqué
Re : Macro Excel recherche (Ctrl+F) dans combobox formulaire

Re,

Pour la recherche par mail ==> ça ne fonctionne pas car j'ai fait une erreur dans le code ComboBox3_Change().
A la ligne 5 "If Len(Me.ComboBox2.Text) > 1 Then" j'ai écrit Me.ComboBox2.Text à la place de Me.ComboBox3.Text, une fois corrigé ça fonctionne.
Pour l'erreur, je regarde et je vous tiens au courant.
Bonne journée.
John
 

john

XLDnaute Impliqué
Re : Macro Excel recherche (Ctrl+F) dans combobox formulaire

Re,

Voilà le fichier modifié et fonctionnant sans erreur :eek:)

Bonne journée.

John
 

Pièces jointes

  • Offres.zip
    45 KB · Affichages: 143
  • Offres.zip
    45 KB · Affichages: 139
  • Offres.zip
    45 KB · Affichages: 141

Zentin

XLDnaute Nouveau
Re : Macro Excel recherche (Ctrl+F) dans combobox formulaire

Merci John,

Mais je n'arrive pas à enregistrer ou ouvrir le fichier corrigé.
Serait-il possible d'éditer les lignes corrigées svp.

Ps : je viens de faire des essais avec ma base de données réelle qui contient énorméments de doublons voulus ex. 5 noms de société identique mais un nom de contact différent ou un nom de contact identique pour plusieurs société.
C'est un peu bizarre mais je dois malheureusement faire avec ses doublons.
Ton système de recherche est génial sauf que la sélection du mot cherché s'arrêter sur le premier rencontré alors qu'il est parfois nécessaire que je sélectionne par ex. un autre nom de contact pour une société comportant 5 contacts différents.
Y-a t'il une solution par rapport à mon formulaire ou devrais-je revoir la conception de celui-ci?

En grand merci,

Zentin
 

Zentin

XLDnaute Nouveau
Re : Macro Excel recherche (Ctrl+F) dans combobox formulaire

Gorfael,

Je viens de faire quelques essais avec votre proposition, mais je rencontre quelques problèmes.
1) l'utilisateur est obligé d'encoder le nom excat de la société aussi-non pas de résultat
2) lorsqu'il y à plusieurs sociétés avec le même nom (très fréquent) seule la première correspondance trouvée est affichée et il n'est plus possible de choisir le contact ad hoc dans la société choisie.

Comme demander plus haut à John, serait-il plus judicieux de revoir ton le formulaire de recherce?

Merci d'avance
Zentin
 

john

XLDnaute Impliqué
Re : Macro Excel recherche (Ctrl+F) dans combobox formulaire

Voici une version qui te permet de rechercher les occurences suivante...

John
 

Pièces jointes

  • Offres.zip
    65.6 KB · Affichages: 176
  • Offres.zip
    65.6 KB · Affichages: 188
  • Offres.zip
    65.6 KB · Affichages: 187

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin