Souci avec les Labels en VBA
Résolu
Jessica
-
jessica_36 Messages postés 33 Statut Membre -
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.
Merci d'avance pour vôtre aide.
Configuration: Windows Vista Firefox 3.0.5
11 réponses
-
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 -
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 -
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+
-
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. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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+ -
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 !-
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 :/
- 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
-
-
Tu peu mettre ton classeur (éventuellement alléger) sur Cjoint.com et mettre le lien dans un poste suivant ? .
-
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 NextLe 1 est à changer en fonction de la colonne qui contient l'info recherchée et le Liste0 est bien sûr à renommer :-)
-
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
-
-
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... -
-
OK, j'espère que ça va aller en 2007
il faut mettre dans l'événement Change, le clic va pas avec les CheckPrivate 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+