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 :

Comment boucler sur un UserForm créé dynamiquement ?


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
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 113
    Par défaut Comment boucler sur un UserForm créé dynamiquement ?
    Bonjour à tous,

    J'ai crée une des frames de manière dynamique comme suite :
    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
     
    Private Sub add1_Click()
     
        Dim objFr As Control
        Dim cl As Classe1
     
        nbFrame = frmControlCount(Me, "Frame") + 1
        i = nbFrame - 3
     
        Set collect = New Collection
     
        Set objFr = Me.Controls.Add("forms.frame.1")
        With objFr
            .Name = "Frame" & nbFrame
            .Object.Caption = "Formule n°" & i
            .left = leftFr
            .top = 222 + (i - topFr) * (66 + 6)
            .width = 282
            .height = 66
        End With
     
        Set cl = New Classe1
        Set cl.Frame = objFr
        collect.Add cl
     
    End Sub
    La classe comprend ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
     
    Public WithEvents TxtBx As MSForms.TextBox
    Public WithEvents Choice As MSForms.ComboBox
    Public WithEvents Frame As MSForms.Frame
     
    avec deux méthodes une pour Choice et l'autre TxtBx
    Et ce que j'aimerais pouvoir faire c'est de boucler sur les frames de cette classe comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For f = 5 To nbFrame
            frameNo = f - 3
            For Each Ctrl In Classe1.Controls
     
                If TypeName(Ctrl) = "ComboBox" And Ctrl.Parent.Name = "Frame" & f Then
    ...
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,

    A en juger par ton code, une classe "Classe1" ne comprend qu'un seul contrôle de type Frame, donc j'ai du mal à comprendre ce que tu souhaites.
    Peux tu expliciter plus clairement
    j'aimerais pouvoir faire c'est de boucler sur les frames de cette classe
    Cordialement.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 113
    Par défaut
    Je crée des frames dynamiquement et j'aimerais pouvoir boucler sur ces frames, mais étant donné qu'ils ne sont pas crée dès le départ dans l'UserForm ils ne sont pas reconnu par la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each Ctrl In Me.Controls

  4. #4
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    A partir du moment où tu ajoutes un contrôle à ton UF avec la méthode Add
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls.Add("forms.frame.1")
    le contrôle en question est ajouté dans la collection des contrôles du UF (Me.Controls).
    Il doit donc apparaitre lorsque tu parcours la collection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each Ctrl In Me.Controls
    Un petit exemple en pièce jointe pour t'en convaincre (sub Test dans ThisWorkbook).

    Bon courage.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 113
    Par défaut
    Encore merci pour ton encouragement malheureusement lors de l'activation de ta macro test() il ne se passe rien :-/

  6. #6
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Regarde du côté de la fenêtre d’exécution du projet VBA.

Discussions similaires

  1. comment boucler sur la 1ere image clé
    Par scoubi74 dans le forum Flash
    Réponses: 5
    Dernier message: 14/04/2008, 09h59
  2. Réponses: 1
    Dernier message: 10/02/2008, 20h13
  3. Réponses: 2
    Dernier message: 24/12/2007, 09h53
  4. [Excel VBA] Boucler sur un userform
    Par tpv72 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/09/2005, 01h57
  5. [VB6] Comment boucler sur des controls d'un form ?
    Par lankviller dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/01/2003, 16h29

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