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 :

Objets controls et multipage


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut Objets controls et multipage
    Bonjour à tous,

    je dispose d'un multipage sur un userform.

    Certaines pages sont masquées

    Je souhaite réaliser un contrôle sur les textbox présents sur les pages VISIBLES.

    Le but étant de vérifier qu'il existe au moins un textbox par page visible qui soit rempli

    J'ai donc commencé à "bricoler" le code ci-après, en intégrant une variable "p" qui s'incrémente à chaque textbox vide des pages visibles
    (et si p = le nombre de textbox dont je dispose, j'en déduirais que rien n'est rempli, j'adapterai ensuite cette variable ça c'est pas un souci...)

    Malheureusement, je rencontre l'erreur suivante : propriété ou méthode non gérée par cet objet. Ca plante à la ligne 13 qui est en dessous.

    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
     
    Private Sub CommandButton1_Click()
     
    Dim objControlMultiPage As Control
    Dim objControlPage As Control
    Dim objControlTxt As Control
    Dim p As Integer
     
    p = 0
     
        For Each objControlMultiPage In UserForm4.Controls
            If TypeOf objControlMultiPage Is MSForms.MultiPage Then
                For Each objControlPage In objControlMultiPage
                    If TypeOf objControlPage Is MSForms.Page Then
                        If objControlPage.Visible = True Then
                            For Each objControlTxt In objControlPage
                                If TypeOf objControlTxt Is MSForms.TextBox Then
                                    If objControlTxt.Text = "" Then
                                        p = p + 1
                                    End If
                                 End If
                            Next objControlTxt
                        End If
                    End If
                Next objControlPage
            End If
        Next objControlMultiPage
     
     MsgBox p
    End Sub
    Je pense employer à tort un valeur "control" pour les pages de mon multipage

    Merci par avance de me remettre dans le droit chemin.

  2. #2
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Essaye comme cela :
    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
    Private Sub CommandButton1_Click()
     
        Dim objControlMultiPage As Object
        Dim objControlPage As Object
        Dim objControlTxt As Control
        Dim p As Integer
     
        p = 0
     
        For Each objControlMultiPage In Me.Controls
            If TypeOf objControlMultiPage Is MultiPage Then
                For Each objControlPage In objControlMultiPage.Pages
                    If TypeOf objControlPage Is MSForms.Page Then
                        If objControlPage.Visible = True Then
                            For Each objControlTxt In objControlPage.Controls
                                If TypeOf objControlTxt Is MSForms.TextBox Then
                                    If objControlTxt.Text = "" Then
                                        p = p + 1
                                    End If
                                End If
                            Next objControlTxt
                        End If
                    End If
                Next objControlPage
            End If
        Next objControlMultiPage
     
        MsgBox p
    End Sub
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour Oliv-


    Et ça a l'air tellement simple présenté comme ça....

    Merci beaucoup, je vais devoir sérieusement bûcher sur ces notions de "contrôles" et "objets"


    Ta correction de code fonctionne à la perfection


    Bonne journée à la communauté !

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

Discussions similaires

  1. [AC-2010] Problème "objet control"
    Par prosper02 dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/04/2013, 09h50
  2. Questions liaison objets <-> controles
    Par RideKick dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/10/2008, 13h47
  3. Récupérer Objet/Controls d'une feuille excel
    Par ced600 dans le forum VBScript
    Réponses: 2
    Dernier message: 03/01/2008, 12h43
  4. Réponses: 4
    Dernier message: 04/09/2006, 15h36
  5. Différence entre Multipage et Controle onglet
    Par morgan47 dans le forum Général VBA
    Réponses: 4
    Dernier message: 27/06/2006, 23h27

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