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 :

Formulaire MsgBox VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 130
    Par défaut Formulaire MsgBox VBA
    Bonjour à tous,

    Je cherche à améliorer un formulaire que j'ai fait.
    Est il possible de créer un MsgBox spécifiant à l'utilisateur qu'il a oublié de renseigner un "input".

    Il y a un unique bouton go sur lequel l'utilisateur doit cliquer pour exécuter le code.
    Et je souhaiterais que si ce dernier clique dessus alors qu'il a oublier de mentionné un "input" un MsgBox apparaisse: "Assurez vous d'avoir mentionner toutes les infos", par exemple.

    Est ce possible?
    Cordialement.

  2. #2
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Oui, il suffit de vérifier le contenu des "inputs" au début de la procédure appelée par le "Go". Outre le fait que ce ne soit pas renseigné, tu peux d'ailleurs en profiter pour faire d'autre vérification (par exemple si un input est un nombre, s'assurer que l'utilisateur n'a pas entré du texte...).
    Maintenant pour une aide plus précise, il nous faudrait un peu plus de détails.

  3. #3
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Pour compléter la réponse de ZebreLoup, après la ligne du MsgBox dans ton code tu mets Exit Sub pour stopper la progression de la macro

    En résumé ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If conditionpasremplie Then
        MsgBox "Le message"
        Exit Sub
    End If

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 130
    Par défaut
    Merci à vous pour vos réponse.

    J'ai 3 types de "input".

    -Certains où l'utilisateur doit entrer des nombres.
    Je l'ai ai tous coder sous cette forme : A=Val(MaValeur.VAlue)

    -Des boutons radio.
    Eux correspondent tous à des fonction stocker dans un modules.
    Donc je teste si le bouton radio a été coché puis j'appelle la fonction correspondantes.

    Et des listes déroulantes.(j'en ai mis lorsque je pouvais en mettre).

    J'aimerais bien indiquer à l'utilisateur qu'il doit tout cocher avant d'appuyer sur GO.
    Et si je pouvais aussi éviter les erreurs de compilation lorsque l'utilisateur tape du texte comme dit Zebreloup...

    Mais je n'ai aucune idéé de la manière dont je dois m'y prendre.

    En fait pour les boutons radio c'est une simple ribambelle de tests:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If PremierBouton.Value = true Then
    Valeurrechercher = Fonction1
    Else If SecondBouton.Value = true Then
    Valeurrechercher = Fonction2
    Else If ...
    Toutes les valeur demander à l'utilisateur doivent être des valeur numérique mais comment puis je faire alors que je récupère ces valeurs de la sorte :

    , pour mettre une condition dessus?

    Je ne sais pas si ma requête est clair.
    Désolé.
    Si ce n'est pas le cas, dites le moi.

    Merci de votre aide.
    Cordialement.

  5. #5
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Un fonction pour vérifier que c'est une valeur numérique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Public Function VerifNombre(inputVal As String, ByRef outputVal As Double) As Boolean
     
        On Error GoTo ErrorManagement
     
        outputVal = CDbl(inputVal)
     
        VerifNombre = True
        Exit Function
     
    ErrorManagement:
     
        outputVal = 0
        VerifNombre = False
     
     
    End Function
    Qu'on peut utiliser de la manière suivante par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Public Sub Test()
     
        Dim d As Double
        Dim s As String
     
        s = Range("A1").Value
     
        If Not VerifNombre(s, d) Then
            MsgBox "L'Input en A1 doit être un nombre"
            Exit Sub
        End If
     
        'Utiliser d...
     
    End Sub

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    il y a peut-être plus simple pour vérifier si la valeur est numérique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If IsNumeric(TextBox1.Value) Then
        MaVal = Val(Replace(TextBox1.Value, ",", ".")) '<-- Replace(...) pour remplacer la virgule par un point en cas de valeur décimale
    Else
        MsgBox "veuillez introduire une valeur numérique dans la case ..."
        Exit Sub
    End If
    Il va également falloir vérifier les ListBox une à une
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If LisBox1.Value = "" then
        Msgbox "veuillez choisir une valeur dans la liste X"
        Exit Sub
    Else
        MaVal = ListBox1.Value
    End If
    Et pour les boutons d'option
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If Bouton1 = True Then
        'à faire si bouton 1
    ElseIf Bouton2 = True Then
        'à faire si bouton 2
    ElseIf Bouton3 = True Then
        'à faire si bouton 3
    Else
        MsgBox "veuillez choisir une option"
        Exit Sub
    End If

Discussions similaires

  1. [VBA+Formulaire] MsgBox et ouverture d'un formulaire
    Par Guillaume 78 dans le forum VBA Access
    Réponses: 6
    Dernier message: 23/07/2007, 15h51
  2. Création de formulaire en VBA
    Par julio02200 dans le forum Access
    Réponses: 2
    Dernier message: 20/04/2006, 17h10
  3. Création de formulaire en VBA - Plantage
    Par Shansson dans le forum Access
    Réponses: 2
    Dernier message: 18/04/2006, 15h48
  4. enlever la croi pour fermer un formulaire en vba?
    Par xtaze dans le forum Access
    Réponses: 6
    Dernier message: 15/06/2005, 17h16
  5. Créer un formulaire avec VBA ?
    Par Jean Bonnisme dans le forum VBA Access
    Réponses: 3
    Dernier message: 14/10/2004, 10h40

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