MsgBox si une ou 2 conditions remplies

Fermé
Driou - 24 août 2009 à 12:28
 Driou - 25 août 2009 à 19:29
Bonjour,

Je débute en VBA et j'arrive déjà pas à exécuter une macro qui parait simple...

Voila le truc : j'ai dans une cellule un menue déroulant associé à une cellule. Quand je sélectionne un mot, il va mettre un chiffre dans la cellule (mettons 9). Je souhaiterai que quand il y a d'écrit 9 dans la cellule (mettons A1), une fenètre de dialogue m'avertisse.

Je ne sais pas écrire cette macro, ni où la mettre (feuille 1, module... ????) alors si quelqu'un a une idée, il va falloir être patient parce que je vais faire un très beau boulet !

Merci d'avance.
A voir également:

17 réponses

melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
24 août 2009 à 13:01
Bonjour,

Tu peux le faire via une macro.
Tu vas dans outls, macro, vba ou visual basic editor.
a gauche, tu as normalement feuil1, feuil2, feuil3...
Tu cliques sur la feuile ou se trouve ta macro.
à droite en haut, est écrit général, tu fais la petite flèche et tu dois avoir worksheet
à droite de ce menu, tu as la possibilité de choisir vie un flèche plusieurs choix.
Tu choisis quelque chose qui ressemble à change.

Normalement deux lignes sont apparaues du style private sub worksheet_change
end sub.

En tre ces deux lignes, tu mets :
private sub worksheet_change
if range("A1") = 9 then
msgbox("ton message", vbokonly, "ton titre")
end if
end sub

la commande msgbox fonctionne ainsi : (ton message, tes boutons (tu ecris vb et une lsite te permet de choisir, un titre si tu veux )

Je reste connectée toute l'aprem donc si tu as des questions, je t'aiderais
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
24 août 2009 à 13:05
Re,

J'ai oublié de préciser que cette macro tourne dès que tu feras une modification dans cette feuille.
0
Bonjour et merci pour la rapidité de la réponse.

La macro fonctionne quand je rentre le chiffre 9 à la main, mais quand c'est la liste déroulante qui envoie 9 sur la cellule, la macro ne s'exécute pas.

Faut-il modifier quelque chose ? Où c'est tout simplement pas possible...
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
24 août 2009 à 16:50
Re,

Excuse moi, je sais pourquoi. Efface ce que je t'ai dis de faire.
en mode création, tu fais un clique droit sur ta liste déroulante.
Tu fais visualiser le code.
Normalement, tu as deux lignes.
Entre ces deux lignes, tu fais :
if listbox1.value = 9 then
msgbox("ton message", vbokonly, "ton titre")
end if

Juste une chose, listbox1 est le nom de ta liste déroulante. Pour connaitre le nom, tu fais clic droit sur ta liste déroulante et dans name, tu auras le nom. Et au lieu de mettre listbox1. value, tu mets nomlistbox.value.

et la ca devrait marcher.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Je n'ai pas name en faisant un click droit. C'est une zone de liste déroulante que j'ai utilisé. C'est la petite liste à qui on lie une cellule et qu'après on peut déplacer sur le tableau.

Du coups, j'arrive pas à trouver le nom de la zone de liste.
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
24 août 2009 à 17:15
Re,

peux-tu mettre ton classeur en ligne et je vais voir comment je peux t'aider?
0
As-tu une adresse mail ? Par contre, le classeur est lourd et confidentiel, mais je vais t'en faire un qui reprendra l'idée.

En tout cas, merci beaucoup pour ton aide.
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
24 août 2009 à 17:22
Bonjour,

duel8@hotmail.com
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
24 août 2009 à 20:37
Re,

je t'ai répondu par mail .
Dis moi si ca a marché.
0
J'ai fait mais j'ai toujours l'histoire de listbox. VBA me dit qu'il y a un problème à ce niveau.
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
24 août 2009 à 21:10
Re,

Je t'assure on va y arriver.
Dans la barre d'outils, actionne le mode création de ton bouton.
Quand tu fais click droit sur ton bouton, au niveau de name, tu as quoi?

à la place de lisbox1.value, il faut que tu mettes namelistbox1.value.

S'il n'y a rien, mets un nom, n'importe lequel et fais le et ca devrait marcher.
0
Je viens de comprendre un truc. J'ai pas utilisé la bonne Zone de liste. Ce que tu me dis à l'air de s'appeler Combobox. Moi j'ai utilisé la liste du formulaire classique.
Là, ça va un peu loin pour mes compétences. Je sais pas comment on entre les données de la liste dans ce truc...
0
Re,

Tu as deux sortes de liste déroulante : la listbox ou la combobox mais elles fonctionnent de la même manière.
Parce que ca ne marche pas ce que je t'ai donné?

mais si tu utilises une combobox :
https://www.excel-downloads.com/threads/liste-deroulante-vba.5578/
0
J'ai réussi !!! Sur mon petit fichier de test que je t'ai envoyé. J'essaierai demain au boulot pour voir si ça fonctionne sur le "vrai" classeur.

Ouf, j'ai mérité d'aller dormir...

Bonne nuit.
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
25 août 2009 à 08:49
Bonjour,

Je t'avais qu'on y arriverait.
Qu'as tu fait pour que ca marche enfin?
0
Alors voilà ce que j'ai fait, ça pourra aider d'autres personnes :

Affichage / Boites d'outils / Boîte à outils contrôles
Click sur mode création
Click sur zone de liste déroulante
Poser la liste sur le tableau excel
Click droit sur la zone de liste / Propriétés
A la ligne List Fill Range, entrer la plage de cellule correspondant aux éléments à mettre dans la liste (quelques chose comme 'Feuil2!A1:A10' par exemple)
A la ligne LinkedCell, entrer la cellule qui sera associée à la liste (c'est dans cette cellule que s'inscrira l'élément choisi dans la liste)
En désactivant le mode création, on voit que les éléments figurent dans la liste et que l'élément sélectionné s'inscrit dans la cellule associé
Re en mode crétion, click droit sur la liste et visualiser le code
Entre les 2 ligne proposée, entre le code suivant :
If ComboBox1.Value = "zaza" Then
MsgBox ("message")
End If

Et voila, la commande dit : "si la valeur sélectionnée est zaza (par exemple), faire apparaitre une fenêtre de dialogue avec un message". Cliquer sur OK et c'est bon.

Si on veut 2 conditions (l'une ou l'autre), mettre le code suivant :
If ComboBox1.Value = "zaza" Or ComboBox1.Value = "toto" Then
MsgBox ("ton message")
End If

Là, la commande dira : "si la valeur sélectionnée est zaza ou toto, faire apparaitre une fenêtre de dialogue avec un message"

Et c'est tout !

Un grand merci à Mélanie1324
0