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

Problème sur un programme avec combobox

Julien_42

XLDnaute Nouveau
Salut,
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 choix de plats qui sont assignés à une valeur(valeur énergétique du plat) sur le tableur excel.
Mon problème est que pour chaque jour de la semaine je stocke dans un tableau (val(5)) la somme des valeurs de mes combobox. Et je voudrai ensuite remettre les résultats de mon tableau sur excel pour en faire un graphique.
Mais le problème est que ç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



Merci par avance
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Problème sur un programme avec combobox

Bonsoir Julien42

Pitié pas de fichier sur des sites comme MEGAUPLOAD
Cijoint sait faire ça aussi bien et sans attente

Le problème est dans tes déclaration de variable qui ce font dans le bouton valider et non en début de l'USF, donc Val() est remis à 0 à chaque fois

Code:
'déclaration du compteur dans l'userform
Dim compteur As Byte
Dim MVal(5) As Single  'Consommation énergétique pour chaque jour de la semaine
Dim jour(5) As String

Private Sub cmd_valider_Click()
  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)

  MVal(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 MVal(compteur) = 0

  If compteur = 5 Then

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

    Me.Hide

    Sheets("résultats").Select

  End If

End Sub
PS : évite d'utiliser "val" en variable car c'est une fonction VBA

A+
 
Dernière modification par un modérateur:

MJ13

XLDnaute Barbatruc
Re : Problème sur un programme avec combobox

Bonjour Julien, Bruno

Bon, Megauplaod, il faut attendre 45 secondes .


Bruno, tu n'es pas obligé de rester à attendre (un petit coup de ctrl+alt et hop ).
 

Bebere

XLDnaute Barbatruc
Re : Problème sur un programme avec combobox

bonjour Julien
remplace val(mot clé) par valeur(exemple)
ou tu employes option base 1(touche f1 pour aide)
ou tu dimensionnes les 2 tableaux exemple jour(1 to 5)
val(5) peut contenir 6 valeurs indexées de 0 à 5
jour(5) peut contenir 6 valeurs indexées de 0 à 5
à bientôt
 

Julien_42

XLDnaute Nouveau
Re : Problème sur un programme avec combobox

Merci, de votre précieuse aide j'éviterai megaupload dorénavant.

Sinon j'ai une dernière question si je masque une feuille sur excel et que je veux l'utiliser sur ma macro comment faire?
 

Pierrot93

XLDnaute Barbatruc
Re : Problème sur un programme avec combobox

Bonjour à tous,

pas de problème, via le code tu peux "travailler" sur une feuille masquée, pas besoin de la selectionner, suffit de préciser son nom devant les actions...

exemple ci-dessous, où la "feuil2" est masquée.
Code:
Sheets("Feuil2").Range("A1").Value = "123"

bonne journée
@+
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…