Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème sous vba

  • Initiateur de la discussion Initiateur de la discussion Julien_42
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Julien_42

XLDnaute Nouveau
Voila j'ai créer un programme sur vba contenant plusieurs userform. Tout mes userforms marchent sauf un ou j'ai des comboboxs avec des plats qui sont assignés à une valeur(valeur énergétique du plat) sur le tableur excel.
Le problème est donc que je veux récupérer ces valeurs sur 5 jours donc j'ai fait une boucle et je voudrai récupérer ces valeurs pour les mettres sur excel et en faire un graphique cependant ça m'affiche que la dernière valeur (val(5), celle qui correspond au vendredi.
Donc si quelqu'un pouvait me dire pourquoi ça ne récupère que la dernière valeur.

Voici le code que j'ai mis dans cet userform:
Je joins aussi le fichier sous MU car il est trop gros pour etre hébergé sur le forum : Ce lien n'existe plus
Le mot de passe est 0

'déclaration du compteur dans l'userform
Dim compteur As Byte


Private Sub cmd_pdt_Click()

'précédent
Me.Hide
BEE.Show

End Sub

Private Sub cmd_quitter_Click()

'Quitter
End

End Sub

Private Sub cmd_valider_Click()
Dim val(5) As Single 'Consommation énergétique pour chaque jour de la semaine
Dim jour(5) As String

jour(1) = "mardi"
jour(2) = "mercredi"
jour(3) = "jeudi"
jour(4) = "vendredi"
'Incrémentation du compteur à chaque click sur valider
compteur = compteur + 1

If Not compteur = 5 Then lbl_jour.Caption = jour(compteur)



val(compteur) = Cells(Me.cmd_entrée.ListIndex + 2, 2) + Cells(Me.cmd_plat.ListIndex + 2, 4) + Cells(Me.cmd_laitage.ListIndex + 2, 6) + Cells(Me.cmd_dessert.ListIndex + 2, 8) + Cells(Me.cmd_boisson.ListIndex + 2, 10) + Cells(Me.cmd_pain.ListIndex + 2, 12)



If CheckBox1.Value = True Then val(compteur) = 0


If compteur = 5 Then

Worksheets("Résultats").Activate
[A1] = val(1)
[A2] = val(2)
[A3] = val(3)
[A4] = val(4)
[A5] = val(5)


Me.Hide


Sheets("résultats").Select

End If

End Sub



Merci par avance
 
Re : Problème sous vba

Bonjour

Je n'ai pas testé votre fichier, mais je vais vous mettre sur la piste de votre bug :
dans la Macro du programme ( Private Sub cmd_valider_Click() )
vous déclarez les variables localement :
Dim val(5) As Single 'Consommation énergétique pour chaque jour de la semaine
Dim jour(5) As String
Conclusion, elle sont 'reset' à chaque passage de la macro.

Il faut donc les déclarer en Public ! (hors de la Private Sub)

Cordialement
Olivier
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
718
Réponses
8
Affichages
656
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
381
Réponses
4
Affichages
586
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…