Souci avec les Labels en VBA
Résolu
Jessica
-
jessica_36 Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
jessica_36 Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
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.
A voir également:
- Souci avec les Labels en VBA
- Excel compter cellule couleur sans vba - Guide
- Find vba - Astuces et Solutions
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
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
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...
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+
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.
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 ?
A+
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 !
NB Les colonnes commence à 0 (zéro) donc la colonne 6 c'est 5 !
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 :
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
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:
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...
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 Check
A+
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+