IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Evènement "La valeur que vous avez tapée n'est pas valide". [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 34
    Points : 29
    Points
    29
    Par défaut Evènement "La valeur que vous avez tapée n'est pas valide".
    Bonjour à tous,

    après avoir trouvé de nombreux renseignements sur ce forum dans les questions déjà posées, j'arrive à mon tour à un problème auquel je n'ai pas trouvé de réponse... Peut être ai-je mal cherché, dans ce cas n'hésitez pas à me re-diriger .

    Alors dans un classeur Excel (je suis sur 2003), j'ai une cellule à laquelle j'ai appliqué une validation des données.
    Quand l'utilisateur entre une donnée hors liste de validation, apparait une boite de dialogue Excel "La valeur que vous avez tapée n'est pas valide... etc. "
    Je voudrais pouvoir déclencher une macro en fonction de la réponse de l'utilisateur à cette boite de dialogue. Y-a-til un moyen, un évènement associé ?...

    Merci d'avance !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    Pourquoi ne pas utiliser l'évènement Worksheet_Change de votre feuille, en changeant la valeur de votre cellule, cela déclancherait une MsgBox et après vous pouvez faire ce que vous voulez.
    cela donnerai quelque chose de ce genre:

    Pour ceci faire Alt F11, dans le menu déroulate en haut à gauche choisir "Worksheet"
    et dans le menu déroulant en haut à droite, choisir l'évènement "Change"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim info As Variant  
    If Target.Address(0, 0) = "A1" Then  ' la cellule de modification cible
    'MsgBox Oui + Non
    Select Case MsgBox("On peut aussi utiliser uneMsgBox ...", vbYesNo + vbInformation, "titre de la MsgBox")
    Case vbYes
      CreateObject("Wscript.shell").Popup "Ce message va s'afficher pendant 2 s", 2, "Affichage temporaire...", vbExclamation '= ici votre procédure si click sur Oui
    Case vbNo
     MsgBox "Vous avez selectionner la case Non" '= ici votre procédure si click sur Non
    Case vbCancel
    End ' = procédure si click sur Annuler
    End Select
    End Sub

    avec en prime un affichage temporaire de 2 secondes avec le popup pour faire un effet de style... choisir la durée avec le 2 de la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CreateObject("Wscript.shell").Popup "Ce message va s'afficher pendant 2 s", 2, "Affichage temporaire...", vbExclamation
    Cordialement

    Dom

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    Oubliez la ligne:

    ca c'est pour une MsgBox à trois boutons à choisir avec soit
    2 boutons ou
    3 boutons
    à vous de voir...

    Cdlt
    Dom

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    Merci pour ces suggestions,

    le problème est que si je gère ces changements uniquement par macro, je n'ai plus de liste déroulante dans ma cellule.

    Me trompe-je ? Ou bien peut-on créer un menu déroulant dans une cellule par macro ?

    Et si je gère à la fois par données/validation et par macros, l'utilisateur verra plusieurs boîtes de dialogue s'afficher : celle de la donnée non valide, et celle de la macro...

  5. #5
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 472
    Points : 16 353
    Points
    16 353
    Par défaut
    Bonjour

    Le message n'est pas un événement et aucun code ne peut s'exécuter pendant une saisie.

    Donc soit tu laisses ta validation mais ne peux savoir ce que l'utilisateur a saisi avant d'annuler ou changer sa valeur, soit tu l'assouplis en remplaçant arrêt par avertissement mais le message se cumulera avec la macro, donc pas très clair, soit tu gères tout par macro sans validation.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    Re

    Alors une autre orientation:
    Vous gardez votre liste déroulante avec la validation des données
    vous définissez une cellule (x:y) qui est égale à votre cellule où vous avez votre liste déroulante
    Ensuite vous créer une TextBox dont la cellule liée est votre cellule (x:y)
    mode création, insérer, contrôles ActiveX, Zone de texte.
    dessus vous faites un clic droit, propriétés, vous avez une ligne qui s'appelle Linkedcell; là vous mettez votre cellule (x:y)
    ensuite toujours avec un clic droit sur votre TextBox , Visualiser le code et là vous mettez le code qui vous intéresse.
    A chaque changement de votre TexBox vous pouvez associer la commande ou l'information par MsgBox qui vous intéresse.

    Cdlt
    Dom

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par pgtsdvl Voir le message

    Alors dans un classeur Excel (je suis sur 2003), j'ai une cellule à laquelle j'ai appliqué une validation des données.

    Merci d'avance !
    A la place de cette cellule, vous pouvez utilisez une zone de liste déroulante dans l'aquelle la propriété ListFillRange est associée à votre liste de choix.

    De cette manière pourl'utilisateur, vous avez votre liste déroulante, il ne peut pas faire d'autre choix, et avec le code vous associez la commande ou l'information désiré.

    Il y plusieurs possibilités pour arriver au résultat.

    cdlt
    Dom

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    Merci à tous, j'ai tous les éléments en main avec ça.
    Bonne continuation !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/10/2013, 23h20
  2. [XL-2010] Erreur d'exécution '1004': La formule que vous avez tapée contient une erreur
    Par corinthien dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/10/2010, 17h46
  3. Réponses: 0
    Dernier message: 24/08/2009, 20h30
  4. [Printemps du cinema] Les films que vous avez aimez
    Par DavidDeTroyes dans le forum Films & TV
    Réponses: 17
    Dernier message: 22/03/2007, 16h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo