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 :

Champs obligatoires dans un userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 87
    Par défaut Champs obligatoires dans un userform
    Bonjour,

    J'ai un userform dans lequel j'ai des textbox et comboBox, et un CommandButton1 "OK".
    Je souhaite avoir des champs obligatoires, c'est à dire qu'un message du type "Veuillez remplir les champs obligatoires*" s'affiche quand on clique sur la touche OK du userform et que les textbox et comboBox ne sont pas remplis.

    Je ne sais pas du tout comment m'y prendre.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_Change()
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox2_Change()
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Clic sur OK
    Private Sub CommandButton1_Click()
     
     
        'Fermeture de la fenêtre
        Unload Me
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox1_Change()
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox2_Change()
     
    End Sub

    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
    Private Sub UserForm_Activate()
     
        UserForm1.Caption = "Ajouter une benne"
     
        'Initialisation des listes
        ComboBox1.Clear
        ComboBox1.AddItem ("Production Propre")
        ComboBox1.AddItem ("Démolition/Curage/Terrassement")
     
        ComboBox2.Clear
        ComboBox2.AddItem ("DIB Mélangés")
        ComboBox2.AddItem ("Inertes")
        ComboBox2.AddItem ("Bois")            
     
    End Sub
    Merci pour votre aide

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Avec quelque chose dans ce genre là...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CommandButton1_Click()
        If TextBox1 = "" Or TextBox2 = "" Or Combobox1.ListIndex < 0 Then
            MsgBox "Vous devez remplir toutes les données"
        Else
            'Fermeture de la fenêtre
            Unload Me
        End If
    End Sub
    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 87
    Par défaut
    Merci encore à toi LeForestier

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut EXCEL 2003 - Champs Oblogatoires Userform
    Bonjour,
    Humblement, car après mon prédécesseur, je proposerais une solution que j'ai trouvée récemment.
    Dans mon userform, je dispose d'un bouton nommé "Valid" qui contôle les contrôles puis génère une action d'impression.

    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
    17
    18
    19
    20
    21
    22
    23
     
    Option Base 1
     
    Private Sub Btn_Valid_Click()     
     
    Dim Liste_Control_test As Variant
    Dim Liste_Control_test_alpha As Variant
    Dim Control_test As Variant
     
     
            Liste_Control_test = Array(Me.saisie_Titre, Me.saisie_Prénom)
            Liste_Control_test_alpha = Array("Titre", "Prénom")
     
            A = 0
            For Each Control_test In Liste_Control_test
                A = A + 1
                If Control_test.Value = "" Then
                    MsgBox "La saisie du champ -- " & Liste_Control_test_alpha(A) & " -- est obligatoire."
                    Control_test.SetFocus
                    Exit Sub
                End If
            Next Control_test
    End Sub
    Cette méthode a pour avantage de localiser l'info manquante (SetFocus), et d'envoyer un message clair, grâce au compteur A. Elle s'opère pour des contrôles de type Texte mais elle peut être adaptée à mon avis.
    Qu'en pensez vous ? Cordialement.

  5. #5
    Membre averti
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Par défaut
    Voilà une autre façon de faire si tu regroupe tout tes textbox ou combobox dans la frame Frame1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each control In Frame1.Controls
           If control.Value = "" Then test = False
    Next
    If test = False Then MsgBox "Please fill the required informations areas"

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Oui, mais si vous voulez compliquer l'affaire, il y a les modules de classe qui permette de savoir exactement les données qui manques....

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 87
    Par défaut Ne pas fermer l'userform tant que tous les champs ne sont pas remplis
    Bonjour,

    Pour résoudre mon problème, j'ai suivi les conseils de LeForestier. Le code fonctionne mais je souhaite que l'userform ne se ferme pas tant que les champs dits comme obligatoires ne sont tous remplis.

    Que dois-je rajouter au code?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'Clic sur OK
    Private Sub CommandButton1_Click()
     
     
        If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or ComboBox1.ListIndex < 0 Or ComboBox2.ListIndex < 0 Or ComboBox3.ListIndex < 0 Or ComboBox4.ListIndex < 0 Or ComboBox5.ListIndex < 0 Then
            MsgBox "Les champs disposant d'un astérix sont obligatoires."
        Else
            'Fermeture de la fenêtre
            Unload Me
        End If
     
    End Sub
    Merci à vous.
    Bonne journée.

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Re,
    Si c'est tout ce qu'il y a dans le code du bouton, l'UF ne SAIT PAS se fermer si le message est afficher. Tu a certainement d'autre ligne de code dans ce bouton.
    Montre toute la partie code du bouton.

  9. #9
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Le mieux est de mettre ton test dans dans l'evenement QueryClose de tn userForm

    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
    17
    18
    19
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
     
        If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or ComboBox1.ListIndex < 0 Or ComboBox2.ListIndex < 0 Or ComboBox3.ListIndex < 0 Or ComboBox4.ListIndex < 0 Or ComboBox5.ListIndex < 0 Then
            MsgBox "Les champs disposant d'un astérix sont obligatoires."
            Cancel = True
        Else
            'Fermeture de la fenêtre
            Cancel = False
        End If
     
    End Sub
     
     
    Private Sub CommandButton1_Click()
     
             Unload Me
     
    End Sub

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 87
    Par défaut
    Voici tout mon code pour ce commandbutton:


    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    'Clic sur OK
    Private Sub CommandButton1_Click()
     
     
        If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or ComboBox1.ListIndex < 0 Or ComboBox2.ListIndex < 0 Or ComboBox3.ListIndex < 0 Or ComboBox4.ListIndex < 0 Or ComboBox5.ListIndex < 0 Then
            MsgBox "Les champs disposant d'un astérix sont obligatoires."
        Else
            'Fermeture de la fenêtre
            Unload Me
        End If
     
     
    Dim l As Integer  'ligne où l'on doit écrire
     
    Sheets("Suivi déchets NON DANGEREUX").Select
     
        'On recherche la première ligne libre
        For i = 12 To 5000
     
            If Range("A" & i) = "" Then
                l = i
               Exit For
           End If
     
        Next
     
        'On renseigne la ligne
        Range("A" & l).Value = TextBox1.Value
        Range("B" & l).Value = ComboBox1.Value
        Range("C" & l).Value = TextBox2.Value
        Range("D" & l).Value = ComboBox2.Value & "/" & ComboBox3.Value & "/" & ComboBox4.Value
        Range("E" & l).Value = TextBox3.Value
        Range("F" & l).Value = ComboBox5.Value
        Range("G" & l).Value = TextBox4.Value
        Range("H" & l).Value = TextBox5.Value
        Range("I" & l).Value = TextBox6.Value
        Range("J" & l).Value = IIf(CheckBox1, "OUI", "NON")
        Range("K" & l).Value = TextBox7.Value
        Range("L" & l).Value = TextBox8.Value
     
        'Classement des données par prestataire
        Call Tri_par_prestataire
     
        'Fermeture de la fenêtre
        Unload Me
     
    End Sub

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

Discussions similaires

  1. Champs obligatoires dans formulaire
    Par obehin dans le forum Langage
    Réponses: 6
    Dernier message: 15/04/2012, 10h13
  2. champs obligatoire dans Mysql
    Par Jcpan dans le forum Débuter
    Réponses: 10
    Dernier message: 18/12/2009, 13h26
  3. Réponses: 5
    Dernier message: 31/03/2007, 22h36
  4. Champs obligatoires dans un formulaire
    Par sagitarium dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 23/05/2006, 16h55
  5. Champs obligatoires dans un formulaire
    Par glloq8 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/09/2005, 16h24

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