Probléme avec plusieurs " CommandButton "

mimil

XLDnaute Junior
Bonjour,

J'ai une petit probléme (fichier en pj ).

je vais expliquer le fonctionnment de la macro:

=> on choisi le batiment
=> on choisi le mois de conso gaz
=> on rentre une valeur
=> on valide
Aprés il ya un incrémentation dans la feuille "données" ( pas important pour mon probléme)
Avec une seul ecriture cela marche bien , " CommandButton1_Click() 'bouton "Valider" "


Mais quand je veut rentrer une formule de validation dans les deux autre
(CommandButton) cela ne veut pas marcher ! j'ai une erreur.
Normalement ca doit etre les mm etape que la premiére validation

Je ne c pas comment faire pour ecrire dans les autres "commandbutton"!!

Merci beaucoup
 

Pièces jointes

  • aide_2.xls
    77 KB · Affichages: 65
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Probléme avec plusieurs " CommandButton "

Bonjour Mimil ;)

Pour trouver le code, il faut aller dans l'éditeur VBA (ALT+F11)
Dans la partie gauche de la fenêtre qui s'ouvre, tu dois avoir une fenêtre intitulée "Projet - VBAProject"
Si ce n'est pas le cas, il faut aller dans le menu -> Affichage -> Explorateur de projet (CTRL+R)
Là, toujours dans la partie gauche tu as tous les "objets" de ton classeur
Tu double clique sur la feuille "Masque" et tu trouveras ton code

A+
 

mimil

XLDnaute Junior
Re : Probléme avec plusieurs " CommandButton "

merci de ton aide juste qui si j'y arrive car j'ai deja reussi a créer des codes !!

Mon probleme c que j'ai trois validations dans mon masque chaque une pour une combobox, textbox et en fonction d' un batiment !!

Donc j'ai trouver l'ecriture pour la premier validation , mais lorsque j'essaye de mettre une ecriture en fonction d'une autre combobox, texbox ca ne marche pas

donc je pense que j'ai une liaison a faire ou ecrire quelque chose pour que ca marche !


Ecriture pour la validation "conso gaz" :


Private Sub CommandButton1_Click() 'bouton "Valider conso gaz"
Dim li As Byte 'déclare la variable li (LIgne)
Dim col As Byte 'déclare la variable col (COLonne)
Dim ai As Double 'décare la variable ac (Ancien Index)


li = Me.ComboBox1.ListIndex + 7 'définit la ligne
col = Me.ComboBox2.Column(1, Me.ComboBox2.ListIndex) 'définit la colonne (récupère la valeur stockée dans la colonne 1 de la ComboBox1)

Select Case col 'agit en fonction de la colonne col
Case 16 'si colonne P
ai = (Sheets("Données").Cells(li, col - 3).Value) 'définit l'ancien index (= debut année)
Case 20 To 44 'si colonne au delà de T a AR
ai = (Sheets("Données").Cells(li, col - 4).Comment.Text) 'définit l'ancien index (récupère le commentaire deux cellules à gauche)

End Select 'fin de l 'action en fonction de la cellule
With Sheets("Données")
Sheets("Données").Cells(li, col).ClearComments 'supprime un éventuel commentaire dasns la cellule (li, col)
Sheets("Données").Cells(li, col).AddComment (TextBox1.Value) 'place le contenu de la TextBox1 (l'index du mois) en commentaire dans la cellule (li, Col)
Sheets("Données").Cells(li, col).Value = (Me.TextBox1.Value) - ai 'place la valeur de la TextBox1 - l'index du mois précédent dans la cellule (li, col)
End With
End Sub


Donc normalement pour la validation conso ecs je dois juste changer les combobox et textbox et les cellules où les valeur doivent s'incrementer
comme ceci :

Private Sub CommandButton2_Click() 'bouton "Valider conso ecs"
Dim li As Byte 'déclare la variable li (LIgne)
Dim col As Byte 'déclare la variable col (COLonne)
Dim ai As Double 'décare la variable ac (Ancien Index)


li = Me.ComboBox1.ListIndex + 7 'définit la ligne
col = Me.ComboBox3.Column(1, Me.ComboBox3.ListIndex) 'définit la colonne (récupère la valeur stockée dans la colonne 1 de la ComboBox1)

Select Case col 'agit en fonction de la colonne col
Case 17 'si colonne P
ai = (Sheets("Données").Cells(li, col - 3).Value) 'définit l'ancien index (= debut année)
Case 21 To 45 'si colonne au delà de T a AR
ai = (Sheets("Données").Cells(li, col - 4).Comment.Text) 'définit l'ancien index (récupère le commentaire deux cellules à gauche)

End Select 'fin de l 'action en fonction de la cellule
With Sheets("Données")
Sheets("Données").Cells(li, col).ClearComments 'supprime un éventuel commentaire dasns la cellule (li, col)
Sheets("Données").Cells(li, col).AddComment (TextBox2.Value) 'place le contenu de la TextBox2 (l'index du mois) en commentaire dans la cellule (li, Col)
Sheets("Données").Cells(li, col).Value = (Me.TextBox2.Value) - ai 'place la valeur de la TextBox2 - l'index du mois précédent dans la cellule (li, col)
End With
End Sub


Mais ca me met une erreur donc il dois yavoir un problm entre les deux sachant que lorsque qu'il y a une formule cela marche trés bien !!

merci et gspr avoir été clair
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane