MsgBox si une ou 2 conditions remplies

Driou -  
 Driou -
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.
Configuration: Windows XP Internet Explorer 6.0

17 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  2. melanie1324 Messages postés 1561 Statut Membre 156
     
    Re,

    J'ai oublié de préciser que cette macro tourne dès que tu feras une modification dans cette feuille.
    0
  3. Driou
     
    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
  4. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Driou
     
    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
  7. melanie1324 Messages postés 1561 Statut Membre 156
     
    Re,

    peux-tu mettre ton classeur en ligne et je vais voir comment je peux t'aider?
    0
  8. Driou
     
    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
  9. melanie1324 Messages postés 1561 Statut Membre 156
     
    Bonjour,

    duel8@hotmail.com
    0
  10. melanie1324 Messages postés 1561 Statut Membre 156
     
    Re,

    je t'ai répondu par mail .
    Dis moi si ca a marché.
    0
  11. Driou
     
    J'ai fait mais j'ai toujours l'histoire de listbox. VBA me dit qu'il y a un problème à ce niveau.
    0
  12. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  13. Driou
     
    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
  14. Driou
     
    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
  15. melanie1324 Messages postés 1561 Statut Membre 156
     
    Bonjour,

    Je t'avais qu'on y arriverait.
    Qu'as tu fait pour que ca marche enfin?
    0
  16. Driou
     
    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