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

RÉSOLU: Macro pour recherche; MsgBox?

  • Initiateur de la discussion Initiateur de la discussion Gen Rose
  • 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 !

Gen Rose

XLDnaute Impliqué
Supporter XLD
Bonjour et bon vendredi à tous ! 😀

Question au forum; Est-ce possible de créer une macro de recherche identique à la classique recherche par Ctrl F avec un ajout de condition?

J'aimerais que si elle ne trouve pas le résultat exact qu'elle recherche selon les 3 premières lettre entrées.

Je vous met l'exemple en p.j.

À noter que je cherche depuis une semaine sur le forum et ailleurs; j'ai considéré le MsgBox comme solution mais je suis si débutante que je n'arrive pas à penser 'en dehors' de la boîte (non, ce n'est pas un mauvais jeu de mots 😉 ) J'ai réussi à en créer mais aucun modèle ne répond à mon besoin. J'ai aussi trouvé comment faire apparaître une boîte de "Recherche" avec une macro mais je n'arrive pas à voir comment je peux utiliser ou modifier ce code (voir ci-dessous). Je me suis downloadé biens des tutoriaux, je lis dans la fonction aide du VBA et je me sers de la fameuse boîte "Variables Locales"... c'est encore du chinois! Mais j'aime quand même beaucoup ça; je suis juste un peu frustrée du temps que ça me prend à saisir ce langage.

Voici un début de tentative

Code:
Sub Recherche_Click()
Cells(1, 1).Select
Application.SendKeys ("^f")
End Sub

Merci beaucoup beaucoup beaucoup.
 

Pièces jointes

Dernière modification par un modérateur:
Re : Macro pour recherche; MsgBox?

Bonjour Geneviève,
Voici 2 solutions sur ce fichier
Soit par formule avec RechechV. . . . ou alors rentrer le code dans le textbox de A1
Reste à voir ce que tu veux faire avec le responsable ?? avec la macro on peut aller plus loin!
Bruno
 

Pièces jointes

Re : Macro pour recherche; MsgBox?

Bonjour Youky et merci beaucoup pour ton aide!

J'ai vérifié l'exemple et il a le même problème que la recherche F conventionnelle; Si le code entier n'est pas entré, il ne trouve rien.

Ce que je veux, c'est que si le code entré n'est pas là, qu'il recherche ensuite les 3 premières lettre du code seulement pour tomber sur la ligne par défaut.

Je m'explique: Dans l'exemple, si nous cherchons le code G0A 4Z0 (il ne trouvera rien car il n'y est plus), il faut que la macro trouve l'information de G0A seulement (colonne A, ligne 8) et qu'elle affiche le résultat en D de cette ligne. Donc en gros, la macro pense comme cela: "si je ne trouve pas le résultat exact, je recherche que les 3 première lettres du code demandé",

Je te retourne le fichier, avec un début d'idée même si je sais que je suis dans le champ car la macro est brisée quand je la test...mais je suis bloquée car je manque définitemement de langage.

Au fait, j'aime beaucoup la recherche en A1 🙂 et en passant, qu'est-ce qu'un Jocker?

Mille mercis 😱
 

Pièces jointes

Dernière modification par un modérateur:
Re : Macro pour recherche; MsgBox?

Bonjour Youky, je crois qu'il faut établir une fonction si je veux incrémeter ma condition dans une procédure Sub...enfin, je ne suis pas certaine mais je lis beaucoup (sans tout comprendre) mais il me semble qu'une procédure fonction est nécessaire?😕
 
Re : Macro pour recherche; MsgBox?

Bonjour genevieve, Bonjour youky,

Dans la mesure où tu efface les espaces qui trainent en A8 après le code G0A, la formule là devrait le faire

Code:
=SI(ESTERREUR(RECHERCHEV(G6;A2:D10000;4;FAUX));RECHERCHEV(GAUCHE(G6;3);A2:D10000;4;FAUX);RECHERCHEV(G6;A2:D10000;4;FAUX))
 
Re : Macro pour recherche; MsgBox?

Oh wow tototiti 🙂

Je vois que ça peut-être simple avec une simple formule et vraiment efficace; cela marche à merveille!!!

Simple curiosité; est-ce possible de créer une macro qui fait exactement cela?

Si oui, est-ce possible dans une procédure Sub? J'aimerais beaucoup la transformer en macro et aussi, faire en sorte qu'on arrive sur la ligne, tel la macro déjà créée en A1...ou est-ce que ça s'appelle un Jocker(?)

Merci beaucoup pour cette formule! C'est certain que je l'utilise à l'instant 😀
Une très belle journée à toi, au forum xox
 
Re : Macro pour recherche; MsgBox?

Bonjour Geneviève, bonjour Tototiti,
Pour continuer avec macro, ici j'ai mis le textbox dans un userform il suffit de selectionner A1 pour l'afficher.
Il selectionne selon ta demande, il faut 7 lettres pour que la macro rentre en action.
Bruno
 

Pièces jointes

Re : Macro pour recherche; MsgBox?

C'est parfait Youki(Bruno) comme macro; j'ai hâte d'être en mesure de créer aussi facilement, ce qui va venir avec une tonne de pratique! 😀

Je n'avais jamais vu de userform avec une macro encore et ça vient de me donner tout un coup de main à comprendre comment créer une boîte avec une macro 🙂

J'aimerais que ce userform s'ouvre en même temps que le classeur; je n'arrive pas à insérer la commande Worbook Open()...j'ai essayé mais je me demande si je ne dois pas créer un sub qui appelle celui déjà présent. Il semble que simplement ajouter "Private Sub Workbook Open()" soit nettement insuffisant.

Aussi, en regardant la formule, je n'arrive pas à comprendre comment elle peut prendre en considération toutes mes conditions; je tente de faire F8 mais ça ne me dit rien...j'aimerais décortiquer le tout mais je ne vois pas où, comment... et j'aimerais tellement comprendre.

Voici ce que je vois:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
UserForm1.Top = 100
UserForm1.Left = 100
UserForm1.Show
End If
End Sub

Comment un tel code peut dire "cherche les 7 lettres du code, si tu ne les trouves pas, prends seulement les 3 première et, à chaque fois, emporte-moi sur la ligne". J'ai passé tout droit quelque part...

Merci beaucoup pour ton temps et ton aide, c'est très apprécié 😱
 
Dernière modification par un modérateur:
Re : Macro pour recherche; MsgBox?

>>>>J'ai passé tout droit quelque part...
Exact ! ! !
Va voir en VBA la fenêtre explorateur de projet (celle de gauche)
click sur le + de Feuille et double click sur Userform1
Ensuite pour accéder facilement au code double click dans le textbox.
Faire un click droit sur le textbox pour afficher les propiétés, tu peux modifier les couleurs, le texte ou autres
Il y a plein de trucs à voir
Dans le code du textbox j'utilise l'événement change (dans le combobox de droite tu verras tous les événements disponibe)
voici le code
Code:
Private Sub TextBox1_Change()
TextBox1 = UCase(TextBox1)
If Len(TextBox1.Text) = 7 Then
On Error Resume Next
lig = Feuil1.[A2:A1000].Find(TextBox1, LookIn:=xlValues, LookAt:=xlWhole).Row
Cells(lig, 4).Select
If Err > 0 Then
lig = Feuil1.[A2:A1000].Find(Left(TextBox1, 3), LookIn:=xlValues, LookAt:=xlWhole).Row
Cells(lig, 4).Select
End If
End If
End Sub

Pour le workbook_open
en explorateur projet double click sur ThisWorkbook , à gauche choisit Workbook et à droite Open
Entre les 2 lignes tu écris . . . UserForm1.show
Ou plus exactement tu copies ceci
UserForm1.Top = 100
UserForm1.Left = 100
UserForm1.Show

et tu peux effacer la sub Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Si tu veux empecher la fermeture de l'user par la croix, en dessous du code du textbox colle ce code
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = False
End Sub


Bon voila de quoi t'occuper un moment et il y a du monde sur ce forum pour te guider
Bruno
 
- 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

Discussions similaires

Réponses
4
Affichages
439
  • Question Question
Microsoft 365 Problème Code VBA
Réponses
9
Affichages
474
Réponses
3
Affichages
673
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…