Souci avec les Labels en VBA

Résolu
Jessica -  
jessica_36 Messages postés 33 Statut Membre -
Bonjour, je suis désolée de vous importuner, mais j'ai quelques soucis dont je n'arrive pas a régler en VBA. J'ai à l'interieur d'une frame, une listbox et a coté un label. Sur une selection des differentes composantes de la listbox, il faudrait qu'il s'affiche le resultat "en direct" donc en permanence dans le label. Mais je n'arrive pas à faire afficher quoi que ce soit, c'est à dire que si je met "Label.caption=variable" et bien rien ne s'affiche. J'ai introduit ce programme dans la fonction de la listbox, et dans celle du label, dans les deux cas rien ne s'affiche.
Merci d'avance pour vôtre aide.
Configuration: Windows Vista
Firefox 3.0.5

11 réponses

  1. Psyk974 Messages postés 559 Statut Membre 51
     
    est ce que tu as ce code ?

    Private Sub Nom_ComboBox_Change()

    Dim valeur_combo

    valeur_combo = Nom_ComboBox.value
    Nom_Label.caption = valeur_combo

    End Sub
    0
  2. Jessica
     
    j'ai ce code:

    Private Sub LBX_selection_Click()
    LAB_total_prix.Caption = variable
    End Sub
    
    Private Sub UserForm_Click()
    Dim Tab_selection(15) As Integer
    Dim Compteur As Integer
    Dim variable As Integer
    
    variable = 0
    LAB_total_prix.Caption = Sheets(10)
    For Compteur = 1 To 15
        If LBX_selection = True Then
    
            Tab_selection(Compteur) = -1
        End If
    Next Compteur
    
    For Compteur = 1 To 15
        If LBX_selection = True Then
    
            Tab_selection(Compteur) = LBX_selection.ColumnCount6
        End If
    Next Compteur
    
    For Compteur = 1 To 15
        If Tab_selection(Compteur) > -1 Then
            variable = variable + Tab_selection(Compteur)
        Else
            variable = variable
        End If
    Next Compteur
    LAB_total_prix.TextAlign = fmTextAlignCenter
    LAB_total_prix.Caption = variable
    End Sub
    
    
    
    
    
    
    0
    1. Psyk974 Messages postés 559 Statut Membre 51
       
      Je recadre bien ce que tu veux faire parce que là je comprends plus trop lol.

      Tu as un label et un combo.
      Lorsque tu choisis une valeur dans le combo tu veux que ça s'affiche dans le label c'est bien ça ?
      0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Sans préjugé du fonctionnement de ta macros,..
    Ta variable variable est déclarée en local, elle ne pourra donc pas être vue ailleur
    Tu déplace pour que ce soit comme ça...
    Dim variable As Integer
    Private Sub LBX_selection_Click()

    Et tu la supprime dans UF_Click
    Autre remarque, si tu a un Frame assure-toi de ne pas cliquer dessus ça marchera pas non plus.
    Mais il y à plus simple c'est de mettre les tests directement dans l'événement change de ta listeBox.
    A+
    0
  4. Jessica
     
    Alors le soucis, à force de bidouiller le code ressemble plus a rien. Pour remettre dans le contexte, j'ai donc une listbox, quand l'utilisateur sélectionne des éléments a l'intérieur, la somme de ses éléments doit se changer en permanence dans un label situé a coté de la listbox. Donc d'ailleurs j'ai découvert un nouveau soucis, et donc étant donné qu'il y a plusieurs éléments dans la listbox, j'ai mis un tableau pour voir ce qui était validé, a part cela je ne vois pas comment faire.

    c'est vrai que dans l'événement change de la listbox ça sera plus utile, merci pour l'aide.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Et avec ce code ?
    Private Sub LBX_selection_Click()
    Dim i As Integer
    Dim Total As Single
        For i = 0 To LBX_selection.ListCount - 1
            If LBX_selection.Selected(i) Then
                Total = Total + LBX_selection.List(i, 6)
            End If
        Next i
        LAB_total_prix = Total
    End Sub

    A+
    0
    1. Jessica
       
      Ca affiche une valeur. Le soucis est que ça ne change pas de 0 :( .
      0
  7. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    J'ai mis la colonne 6 comme je pensais que tu avais des valeurs dans cette colonne mais apparement ce n'est pas celle-là.
    NB Les colonnes commence à 0 (zéro) donc la colonne 6 c'est 5 !
    0
    1. Jessica
       
      c'est ce que j'ai tenté, ça garde 0. J'ai pensé que sa venait peut être du single que j'ai remplacé en integer étant donné que c'est des entier mais ça fait pareil. Je cherche donc :/
      0
      1. Jessica > Jessica
         
        voila le code que j'ai pour le moment
        Option Explicit
        Dim total As Integer                                    'je l'ai mis en variable globale pour l'utiliser sur plusieurs sub
        
        
        
        Private Sub LBX_selection_Change()
        Dim Tab_selection(15) As Integer
        Dim Compteur As Integer
        Dim variable As Integer
        LAB_total_prix.Caption = total                         'je l'ai positionné ici car dans le lbx_selection il ne fonctionne pas
        
        End Sub
        
        Private Sub LBX_selection_Click()
        Dim i As Integer
        
            For i = 0 To LBX_selection.ListCount - 1
                If LBX_selection.Selected(i) Then
                    total = total + LBX_selection.List(i, 5)
                End If
            Next i
            LAB_total_prix.Caption = total 
        End Sub
        
        
        Private Sub UserForm_Click()
        total = 0                                                    'j'ai essayé d'initialiser total pour voir si le soucis venait de la
        
        End Sub
        
        0
  8. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Tu peu mettre ton classeur (éventuellement alléger) sur Cjoint.com et mettre le lien dans un poste suivant ? .
    0
    1. Jessica
       
      je le fais de suite, je m'inscrit d'abord pour pouvoir supprimer le lien derrière.
      0
    2. jessica_36 Messages postés 33 Statut Membre
       
      voici le lien:
      https://www.cjoint.com/?cioiMq7BTj
      je regarde ta propositions Blux
      0
      1. lermite222 Messages postés 9042 Statut Contributeur 1 199 > jessica_36 Messages postés 33 Statut Membre
         
        Tu est sur excel 2007, je ne l'ai pas sur mon portable et ne peu le lire pour le moment.
        Tu peu le sauver en xls et le remettre sur Cjoint.com ?
        A+
        0
  9. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    Je te propose un truc comme ça :
    Dim Total As Long
    Dim Valeur
    Total = 0
    For Each Valeur In Liste0.ItemsSelected
        Total = Total + Liste0.Column(1, Valeur)
        LAB_total_prix.Caption = total
    Next
    Le 1 est à changer en fonction de la colonne qui contient l'info recherchée et le Liste0 est bien sûr à renommer :-)
    0
    1. jessica_36 Messages postés 33 Statut Membre
       
      sa ne marche pas non plus, le soucis doit venir d'ailleurs :/
      pas de soucis je le renvoie en format exel 2003
      voila le lien
      https://www.cjoint.com/?cioqrbjlQm
      0
      1. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455 > jessica_36 Messages postés 33 Statut Membre
         
        sa ne marche pas non plus
        C'est quoi le message d'erreur ?

        as-tu essayé un MSGBOX Liste0.Column(1, Valeur) ?
        0
      2. jessica_36 Messages postés 33 Statut Membre > blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention  
         
        le soucis n'est pas une erreur, c'est que ca affiche en permanence 0 :/
        sinon, non j'ai pas essayée le MSGBOX
        0
      3. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455 > jessica_36 Messages postés 33 Statut Membre
         
        Il faut déjà voir si les valeurs sont retournées...
        0
  10. jessica_36 Messages postés 33 Statut Membre
     
    en faisant ca, la valeur est retournée:

    LAB_total_prix.Caption = LBX_selection.Column(5, 0)

    dans ce cas, la première valeur de la liste est retournée, dans le cas ou on essaye d'en retourner plusieurs, plus rien...
    0
    1. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      Ta liste autorise-t'elle la sélection multiple ?
      0
  11. jessica_36 Messages postés 33 Statut Membre
     
    oui
    0
  12. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    OK, j'espère que ça va aller en 2007
    il faut mettre dans l'événement Change, le clic va pas avec les Check
    Private Sub LBX_selection_Change()
    Dim i As Integer
    Dim Total As Single
        For i = 0 To LBX_selection.ListCount - 1
            If LBX_selection.Selected(i) Then
                Total = Total + LBX_selection.List(i, 5)
            End If
        Next i
        LAB_total_prix = Total
    End Sub

    A+
    0
    1. jessica_36 Messages postés 33 Statut Membre
       
      Ca marche, merci beaucoup :)
      0