Problème sous vba

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
 

Odesta

XLDnaute Impliqué
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
 

Statistiques des forums

Discussions
312 445
Messages
2 088 488
Membres
103 869
dernier inscrit
benji_270