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 :

[VBA-E] affichage dynamique de la valeur d'un label


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut [VBA-E] affichage dynamique de la valeur d'un label
    Je travaille actuellement sur un userform qui récupère les données d'un combobox situé dans un autre userform puis qui les affiche de manière dynamique dans un label (je souhaite que la taille du usform s'adapte au nombre de labels) avec différents checkbox à coté, voici le code :
    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 UserForm_Initialize()
        Dim haut As Integer, droite As Integer
        Dim i As Integer, j As Integer
        haut = 20
        For i = 0 To (frmListeTri.lstEtat2.ListCount - 1)
            Set titre = frmChoixEtat.Controls.Add("Forms.label.1")
            titre.Left = 25
            titre.Top = haut
            titre.Width = 200
            titre.Height = 25
            frmListeTri.lstEtat2.Selected(i) = True
            titre.Object.Caption = frmListeTri.lstEtat2.Value
            titre.naMe = frmListeTri.lstEtat2.Value
     
            droite = 255
            For j = 1 To 4
                Set bip = frmChoixEtat.Controls.Add("forms.checkbox.1")
                bip.Left = droite
                bip.Top = haut
                bip.Width = 18
                 bip.Height = 18
                bip.naMe = j & Chr(32) & frmListeTri.lstEtat2.Value
                droite = droite + 75
            Next
            haut = haut + 20
        Next
        frmChoixEtat.Height = haut + 100
        cmdInfoCoch.Top = haut + 25
    End Sub
    mon programme fonctionnait très bien jusqu'à ce que je souhaite récupérer l'état de mes checkboxs en cliquant sur un bouton. J'ai rajouté ce code a la suite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub cmdInfoCoch_Click()
    Dim i As Integer, j As Integer
     
        For i = 0 To (frmListeTri.lstEtat2.ListCount - 1)
            frmListeTri.lstEtat2.Selected(i) = True
            For j = 1 To 4
                 If Not ((frmChoixEtat.Controls(j + 3 + i * 5).Value) <> True) Then
                    MsgBox (j & Chr(32) & frmListeTri.lstEtat2.Value & " cochée")
                 End If
            Next
       Next
    End Sub
    Depuis quand je relance mon programme mes labels ne se remplissent plus, puisque frmlistetri.lstEtat2.Value n'a pas l'air d'etre renseigné, chose que je n'arrive pas a comprendre, car il l'est bien dans le reste du programme.

    Après avoir fait quelques tests, j'ai des doutes sur l'utilisation correcte de formChoixEtat.Controls(i).value...

    Si vous avez besoin de plus de précisions n'hésitez pas.
    Si quelqu'un pouvait éclairer ma lanterne... merci d'avance

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ajoute un debug.print ou msgbox afin de savoir si tu récupères ou non les valeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            titre.Object.Caption = frmListeTri.lstEtat2.Value 
            msgbox frmListeTri.lstEtat2.Value 
            titre.naMe = frmListeTri.lstEtat2.Value 
            msgbox  frmListeTri.lstEtat2.Value
    Tu nous dis, avant qu'on se lance dans des hypothèses...

    A+

  3. #3
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    jviens de vérifier et en effet les msgbox sont vides

    par contre je viens de me rendre de quelque chose que je ne m'explique pas

    Lors du remplissage de ma listbox si je selectionne ( en cliquant dessus) un des titres je n'ai plus le problème : frmListeTri.lstEtat2.Value est bien renseigné et les labels se remplissent correctement

    Mais j'aimerais quand meme reussir a régler ce problème car je ne souhaite pas demander a l'utilisateur de cliquer a chaque fois sur la listbox

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Je ne vois pas bien si tu sélectionnes un titre mais si c'est le cas, essaie ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    titre.Object.visible = false
    titre.Object.Caption = frmListeTri.lstEtat2.list(frmListeTri.lstEtat2.listindex) 
    titre.Object.visible = true
    Tu vérifies si tu as besoin de titre.Object.visible = false et true

    A+

  5. #5
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    lorsque je laisse : titre.Object.Visible = False ou true cela me crée une erreur d'éxecution : '438' : propriété non géré par cet objet...

    En revanche en les enlevant cela fonctionne parfaitement !

    Merci beaucoup
    a+

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/08/2012, 14h07
  2. Réponses: 3
    Dernier message: 07/10/2010, 14h04
  3. [XL-2007] Temporiser en VBA un affichage d'écran dynamique
    Par Harry Covair dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/11/2009, 14h44
  4. Réponses: 1
    Dernier message: 22/09/2006, 13h05
  5. Affichage dynamique d'une valeur calculée
    Par harley dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/06/2006, 09h20

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