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 :

Valeur d'un controle dynamique (OPTBUTTON) et Supprimer controle associé à un objet [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 Valeur d'un controle dynamique (OPTBUTTON) et Supprimer controle associé à un objet
    Bonjour a tous,

    Après avoir réussi mon code en "séquentiel", je tente de le refaire en partant de 0 mais en programmant en objet.

    Alors en tant que débutant, j'ai déjà un problème, je veux créer une classe graphe qui a :

    • une variable fichier de type string qui permettra d'importer le fichier csv associé.
    • une méthode qui créer un listbox et l'insérer


    Alors voici ce que j'ai commencer à faire:

    J'ai créer un Module de classe nommé graphe qui contient:
    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
     
    Public Nom As String
    Public PositionHaut As Boolean
     
    Sub UHF_VHF()
     
    Dim Obj As Control
     
    Set Obj = IHM.Controls.Add("forms.Checkbox.1")
     
    With Obj
        .Name = "CheckBoxHaut"
        .Object.Caption = Nom
        .Left = 642
        .Top = 36
        .Width = 114
        .Height = 18
    End With
     
    End Sub
    Dans mon 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Private Sub ComboBox1_Change()
     
    Dim GrapheHaut As New cGraphe
     
    Select Case IHM.ComboBox1.Value
     
        Case "graphe1":
            With GrapheHaut
                .Nom = "graphe1"
                .PositionHaut = True
                .UHF_VHF
            End With
     
        Case "graphe2":
            With GrapheHaut
                .Nom = "graphe2"
                .PositionHaut = True
            End With
     
    End Select
     
    End Sub
     
    Private Sub CommandButton1_Click()
     
    If CheckBoxHaut = True Then
        MsgBox "case cochée"
    Else
        MsgBox "case NON cochée"
    End If
     
    End Sub
    Cependant meme si je coche la case rien toujours vu comme non coché!

    De plus je voudrais supprimer un élément ainsi que tous ses controles associé comment faire?



    Merci pour votre aide et si vous connaissez un bon tuto pour coder en objet en vba n'hésitez pas je cherche partout je lis tout ce que je trouve

    Bastien

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132

  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
    Bonjour,

    Je décoche le résolu, car après avoir voulu m'approprier un peu plus le code vu les liens, j'ai un problème avec l'évènement Change().

    En effet, lors de la création de mon élément, je rentre dans Change() donc tout va bien puisque je lui force un index.
    Cependant un fois l'interface lancée, j'ai beau changé la valeur RIEN je ne rentre plus dedans...

    Si vous voyez ce que c'est...

    Méthode Comboboxdynamic

    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
    Public Collect As New Collection    'Collection de combobox qui permettent le choix du graphe à afficher.
     
    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
     
    'Ajoute les différents numéros de graphe dans les choix possible du combobox
    For j = 1 To 7
        IHM.Controls("ComboBox" & Collect.Count-1).AddItem "Graphe" & j
    Next j
    IHM.Controls("ComboBox" & Collect.Count-1).ListIndex = 0
     
    End Sub
    Classe cComboBoxDynamic
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'Classe ComboBoxDynamic
    'Cette classe permet d'avoir accès aux évènements excel traditionnels à partir d'un combobox créé dynamiquement.
    Public WithEvents ComboB As MSForms.ComboBox
     
    'Méthode Change qui est exécuté à chaque changement de valeur du combobox
    Private Sub ComboB_Change()
     
    FactoryGraph.Create ComboB.ListIndex + 1, ComboB.Name '
     
    End Sub
    Voila pour créer un combo, je fais juste AddCombo dans une classe.

    Merci a tous

    Bastien

  4. #4
    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
    Bonjour a tous,
    Le problème est resolu, je viens de voir que je rejoute l'objet a la collection à la fin donc mon collect.count doit etre soustrait de 1.

    j'ai edit mon code si sa peut servir

    Merci encore

    Bastien

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

Discussions similaires

  1. [VB6]comment supprimer dynamiquement un controle dynamique?
    Par totor le troll dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 06/07/2011, 21h10
  2. [VB.NET] Contrôle dynamique et évènements
    Par johann.C dans le forum ASP.NET
    Réponses: 4
    Dernier message: 30/11/2009, 10h45
  3. Récupérer Valeur d'un controle dynamique
    Par moumoune65 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 18/12/2007, 09h02
  4. [C#]control dynamique
    Par inferno dans le forum ASP.NET
    Réponses: 5
    Dernier message: 25/08/2006, 12h08
  5. [VB6] creation et gestion de contrôle dynamique
    Par olivierx dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 23/04/2004, 00h09

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