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 :

Mettre dynamiquement un Control dans un Frame(cadre) [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut Mettre dynamiquement un Control dans un Frame(cadre)
    Bonjour a tous,

    J'arrive à créer dynamiquement et gérer mes controles, cependant je n'arrive pas à les mettre dans un Frame créer lui aussi dynamiquement.

    Quelqu'un sait comment faire...

    Voici un bout de code pour que sa aide à expliquer

    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
    Public Sub AddCombo()
     
    'Déclaration
    Dim Obj As Control
    Dim C1 As cComboBoxDynamic
    Dim i As Integer
    Dim j As Integer
     
    'Création de l'objet de type Combobox
    Set Obj = IHM.Controls.Add("forms.Combobox.1")
     
    'Paramètrage du contrôle
    With Obj
        .Name = "ComboBox" & Collect.Count
        .Left = 264
        .Top = 12 + 300 * Collect.Count
        .Width = 198
        .Height = 18
    End With
     
    'Indique la classe pour donner l'accès au combobox dynamique à ses évenements ainsi que l'ajout dans la classe.
    Set C1 = New cComboBoxDynamic
    Set C1.ComboB = Obj
    Collect.Add C1
     
     
    End Sub
    Merci Bastien

  2. #2
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    bjr,


    il suffit d'ajouter le contrôle au frame, comme pour un 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
     
    Public Sub AddCombo()
    Dim oFrame As msforms.Frame
    Dim oCombo As msforms.ComboBox
    Set oFrame = MonUserForm.Controls.Add("Forms.Frame.1")
    oFrame.Left = 100
    oFrame.Top = 100
    oFrame.Width = 300
    oFrame.Height = 200
    ' la combobox est ajoutée au cadre oFrame
    Set oCombo = oFrame.Controls.Add("Forms.ComboBox.1")
    oCombo.Width = 150
    oCombo.Height = 20
    End Sub

  3. #3
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    Merci beaucoup NIKEL CHROME claire et efficace

    juste en bonus
    le faire de mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim oCombo As msforms.ComboBox
    te permet il d'avoir accès au evenement du combobox tel que change... etc sans créer de classe spécifique? comme ici:
    http://silkyroad.developpez.com/VBA/...icEditor/#LV-A

    Merci encore

    Bastien

  4. #4
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Citation Envoyé par bastou93 Voir le message
    le faire de mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim oCombo As msforms.ComboBox
    te permet il d'avoir accès au evenement du combobox tel que change... etc sans créer de classe spécifique?
    si oCombo est déclaré en en-tête de module, avec WithEvents, on a accès à ces événements
    mais il faut alors un objet oCombo par combobox

  5. #5
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    Sa marche, cela va me simplifier mon code

    Je vais en faire une collection et op plus besoin de classe en plus

    merci encore

    Bastien

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

Discussions similaires

  1. [C#] Ajout en dynamique de controles dans un PlaceHolder
    Par fredo_lefran dans le forum ASP.NET
    Réponses: 16
    Dernier message: 06/07/2006, 14h41
  2. VB - Génération dynamique de controles dans un forme
    Par jeanangel dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/12/2005, 21h09
  3. Réponses: 9
    Dernier message: 17/10/2005, 10h44
  4. comment mettre du texte formaté dans une frame?
    Par afrikha dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 09/10/2005, 14h55
  5. [VB6] Création dynamique de controles dans un SSTab
    Par Txomin dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/12/2004, 11h13

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