Affiche les chiffres dans l'userform

Bonjour, à tous et au forum

Voici mon problème, dans l'onglet janvier quand je clique sur le bouton "lancement Bilan" et que je selectionne dans l'userform un mois de l'année je n'ai aucun chiffres qui s'affiche, alors à contrario je clique sur l'onglet "chiffres", je lance l'userform avec le bouton de cette page,

je selectionne un mois .......j'ai les chiffres qui s'affichent ...ça marche quoi....

Que manque t'il dans la formule ??

Merci pour votre aide

Bonne journée

5test200.xlsm (61.37 Ko)

Bonjour Marc.

Ton code ne fait pas référence à une feuille précise, il prendra en considération la feuille active.

Ca veut dire qu'il va chercher les données dans la feuille Janvier par exemple.

Tu peux modifier ton code ainsi :

Private Sub ComboBoxParNom_Change()
With ThisWorkbook.Sheets("Chiffres")
For i = 1 To 7
Bilan.Controls("textbox" & i) = .Cells(i + 1, ComboBoxParNom.ListIndex + 3)
Bilan.Controls("label" & i).Caption = Format(.Cells(i + 1, 15), "0.00")
Next i
End With
End Sub

Merci beaucoup

thebenoit59

Re thebenoit59

J'essaie de mettre en place dans ce nouveau fichier mais cela ne fonctionne pas ???

enfin uniquement sur l'onglet "chiffres"

Merci de ton aide

10essai.xlsm (340.83 Ko)
Sheets("chiffres")

Tu as oublié la majuscule sur Chiffres.

Et tu n'as pas besoin de le préciser car tu es entre les balises With

Private Sub ComboBoxParMois_Change()
With ThisWorkbook.Sheets("Chiffres")
'ici nous allons afficher dans les textbox les valeurs par mois correspondant à notre selection
For i = 1 To 39
Bilan.Controls("textbox" & i) = .Cells(i + 1, ComboBoxParMois.ListIndex + 3)
Bilan.Controls("label" & i).Caption = Format(Cells(i + 1, 15), "0.00")
Next i
End With
End Sub

Bonjour thebenoit59

c'est fait pour les textbox c'est ok, mais malheureusement cela fonctionne toujours pas sur les labels ?

As tu une idée ?

merci

17essai.xlsm (340.06 Ko)

Bonjour Marc.

Comprends-tu le fait de devoir faire référence à une feuille précise lors des remplissages ?

Comme expliqué précédemment, si tu ne fais pas référence à la feuille d'où tu tires les données, la procédure va récupérer de la feuille active.

Dans notre cas, et est plus rapide, on place la procédure entre les balises With et End With, ça évite de tout devoir réécrire sur chacune des lignes le Sheets("Chiffres")

With ThisWorkbook.Sheets("Chiffres")
'ici nous allons afficher dans les textbox les valeurs par mois correspondant à notre selection
For i = 1 To 39
Bilan.Controls("textbox" & i) = .Cells(i + 1, ComboBoxParMois.ListIndex + 3)
Bilan.Controls("label" & i).Caption = Format(Cells(i + 1, 15), "0.00")
Next i
End With

Quand tu travailles comme ceci, tu dois mettre un "." devant les Range ou Cells, sur la ligne Caption il n'y en a pas, regarde la ligne Textbox tu le verras.

Egalement, en regardant ton UserForm_initialize(), tu fais encore l'erreur de ne pas mettre de majuscule à "chiffres".

ComboBoxParMois.AddItem Sheets("chiffres").Cells(1, i) 'ajoute les valeurs des cellules c1 à o1 avec la boucle

chiffres <> Chiffres

Merci beaucoup ça fonctionne

et merci pour tes explications, je ne suis pas un expert mais j'essaie de comprendre.

Merci encore

Bonne journée

Pas de soucis.

Si tu arrives à avoir cette rigueur de bien assigner tes procédures tu n'auras plus de soucis à l'avenir.

N'oublie pas d'utiliser ThisWorkbook, qui prends en compte le Classeur où se trouve la macro, ça peut éviter les soucis quand tu as plusieurs classeurs ouverts.

Rechercher des sujets similaires à "affiche chiffres userform"