Vb recherche par box avec 2 conditions
Résolu/Fermé
julsof
Messages postés
13
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
23 septembre 2008
-
7 août 2008 à 12:32
julsof Messages postés 13 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 23 septembre 2008 - 7 août 2008 à 17:28
julsof Messages postés 13 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 23 septembre 2008 - 7 août 2008 à 17:28
A voir également:
- Vb recherche par box avec 2 conditions
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Vb cable - Télécharger - Audio & Musique
- Recherche par image - Guide
- Whatsapp avec 2 cartes sim - Guide
- Adresse ip box - Guide
3 réponses
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
7 août 2008 à 15:28
7 août 2008 à 15:28
Bonjour julsof,
le plus simple serait sans doute de créer un formulaire avec 2 listes déroulantes, la seconde se mettant à jour en fonction de la première.
Mais puisque tu as commencé avec une InputBox et une méthode Find, continuons dans ce sens.
Repartant de ton code, j'ai simplement ajouté quelques sécurités (dans le cas où on annule l'InputBox ou si la recherche ne donne rien) ; puis, si la recherche du nom renvoie plusieurs lignes, une deuxième boîte demande de préciser le prénom, en rappelant dans l'intitulé la liste des prénoms trouvés.
Attention : le code ci-dessous marche si tes noms sont en colonne A et les prénoms en colonne B. Sinon, il faut apporter des petites modifications à la macro. De plus, ce n'est pas très adapté si tu as des dizaines de noms identiques.
N'hésite pas à consulter l'aide VBA ; c'est là que j'ai trouvé tout ce qu'il fallait pour ta macro.
I.
le plus simple serait sans doute de créer un formulaire avec 2 listes déroulantes, la seconde se mettant à jour en fonction de la première.
Mais puisque tu as commencé avec une InputBox et une méthode Find, continuons dans ce sens.
Repartant de ton code, j'ai simplement ajouté quelques sécurités (dans le cas où on annule l'InputBox ou si la recherche ne donne rien) ; puis, si la recherche du nom renvoie plusieurs lignes, une deuxième boîte demande de préciser le prénom, en rappelant dans l'intitulé la liste des prénoms trouvés.
Attention : le code ci-dessous marche si tes noms sont en colonne A et les prénoms en colonne B. Sinon, il faut apporter des petites modifications à la macro. De plus, ce n'est pas très adapté si tu as des dizaines de noms identiques.
Sub recherche_client() Dim recherche_client As String Dim Cellule As Range, ListeCellules As Range Dim ListeNoms As String, Adresse1 As String Sheets("Clients").Select SAISIE_NOM: recherche_client = InputBox("Entrez le nom du client: ", "recherche client") If recherche_client = Empty Then Exit Sub Set Cellule = Columns("A").Find _ (What:=recherche_client, LookIn:=xlValues, LookAt:=xlPart) If Cellule Is Nothing Then MsgBox "Aucune réponse pour " & recherche_client GoTo SAISIE_NOM End If Adresse1 = Cellule.Address Set ListeCellules = Cellule.Offset(0, 1) Do ListeNoms = ListeNoms & Chr(10) & _ Cellule.Value & ", " & Cellule.Offset(0, 1).Value Set Cellule = Columns("A").FindNext(Cellule) Set ListeCellules = Union(ListeCellules, Cellule.Offset(0, 1)) Loop Until Cellule Is Nothing Or Cellule.Address = Adresse1 SAISIE_PRENOM: If ListeCellules.Count > 1 Then recherche_client = InputBox("Précisez le prénom : " & Chr(10) & ListeNoms) If recherche_client = Empty Then Exit Sub Set Cellule = ListeCellules.Find _ (What:=recherche_client, LookIn:=xlValues, LookAt:=xlPart) If Cellule Is Nothing Then MsgBox "Aucune réponse pour " & recherche_client GoTo SAISIE_PRENOM End If End If Cellule.EntireRow.Select End Sub
N'hésite pas à consulter l'aide VBA ; c'est là que j'ai trouvé tout ce qu'il fallait pour ta macro.
I.
julsof
Messages postés
13
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
23 septembre 2008
1
7 août 2008 à 17:19
7 août 2008 à 17:19
Merci beaucoup de ta réponse.
Je vais me pencher sur le sujet dès maintenant.
Désolé pour la question qui va suivre mais ou se trouve l'aide VBA (comme je le disais je suis vraiment novice dans le VBA et dans les forums, en fait c'est ma première inscription.
En tous cas merci beaucoup pour ton aide.
Je vais me pencher sur le sujet dès maintenant.
Désolé pour la question qui va suivre mais ou se trouve l'aide VBA (comme je le disais je suis vraiment novice dans le VBA et dans les forums, en fait c'est ma première inscription.
En tous cas merci beaucoup pour ton aide.
julsof
Messages postés
13
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
23 septembre 2008
1
7 août 2008 à 17:28
7 août 2008 à 17:28
Re bonjour Ivan-hoe,
j'ai essayé d'intégrer le code et tout est exactement comme je le souhaitais.
Je te remercie encore pour ton aide précieuse
j'ai essayé d'intégrer le code et tout est exactement comme je le souhaitais.
Je te remercie encore pour ton aide précieuse