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