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 :

Vérification de l'ensemble des contrôles d'un userform aléatoire [XL-2003]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Par défaut Vérification de l'ensemble des contrôles d'un userform aléatoire
    Bonjour,
    alors ça fait un petit moment que je planche sur ce problème. En fait, j'ai un certains nombre d'userform dans lesquels les utilisateurs rentrent des infos soit dans des textbox ou des listbox, le tout ayant des noms variables.
    J'aimerais donc pouvoir vérifier que tout les contrôles d'un userform sont remplis avant de passer au suivant et si un n'est pas rempli, l'indiquer à l'utilisateur
    Donc je suis parti sur la fonction suivante que j'appelle en cliquant sur le bouton pour passer au userform suivant. Sur le bouton, j'ai un test de retour. Si la fonction renvoie 1, j'empêche de passer à la page suivante sinon ça passe.

    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
    Function Vérif_UserForm(UF As String) As Integer
    '##### Routine vérifiant que chaque control d'un UserForm est rempli #####
    Dim Ctrl As Control
    Dim NomUF As String
    NomUF = UF
    Vérif_UserForm = 0
     
    For Each Ctrl In VBA.UserForms.Add(NomUF).Controls
        If VBA.UserForms.Add(NomUF).Controls(Ctrl.Name).Value = "" Then
            MsgBox ("Onglet " & VBA.UserForms.Add(NomUF).Controls(Ctrl.Name).Name & " non renseigné.")
            Vérif_UserForm = 1
        End If
    Next Ctrl
     
    End Function
    Le problème : je n'arrive pas à obtenir la valeur des contrôles. La commande trouve le UserForm, trouve chaque contrôle, je peux avoir toutes les propriétés de chacun d'entre eux mais si je rentre une valeur et que je lance le test après, cela me restitue une valeur vide "". En gros il me restitue les propriétés de base du contrôle, la valeur étant vide à la base, il me la donne donc vide quand je l'appelle...
    J'ai essayé VBA.UserForms(NomUF).Controls(Ctrl.Name).Value à la place mais ça ne marche pas mieux.
    Donc comment obtenir la valeur d'un contrôle aléatoire dans un userform aléatoire?
    Merci de votre attention.

    EDIT : en pièce joint un mini excel. Le but étant d'arriver à entrer une valeur dans le TextBox et que le clique sur le bouton ne déclenche pas le message "L'ongle TextBox est non renseigné".
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Bouger des contrôles sur un userform
    Par fxleo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/06/2013, 16h51
  2. [XL-2003] Dupliquer dynamiquement des contrôles dans un userform
    Par thilamb dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/08/2012, 17h02
  3. [XL-2003] Remplacer les noms et les sources des contrôles d'un userform
    Par MarcelG dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/02/2010, 17h55
  4. [JTree] Ouvrir/Fermer l'ensemble des noeuds
    Par Math_Caen dans le forum Composants
    Réponses: 3
    Dernier message: 07/04/2003, 14h01

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