Condition sur valeur cellule

Résolu
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012 - 6 janv. 2011 à 15:34
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012 - 7 janv. 2011 à 10:19
Bonjour le forum,
Je pense notamment à tous ceux qui ont eu l'amabilité de répondre à mes précedentes questions qui m'ont permis d'évoluer dans mon projet. Meilleurs voeux pour cette nouvelle année.
Ma question : Comme certains le savent, je travaille sur une liste de service dont chaque ligne calendaire sur excel représente le décompte des absences d'un agent. Ces absences sont enregistrées dans une cellule sélectionnée à l'aide d'un userform multichoix (congé, récupération, maladie etc...). Pour pinailler un peu, j'ai crée ce code qui fonctionne bien :
Private Sub CommandButtoncongé_Click()
ligne = ActiveCell.Row
If ligne 1 And Range("a1").Value 0 Then
MsgBox "Plus de Congé"
Exit Sub
ElseIf ligne = 1 And Range("a1").Value >= 1 Then MsgBox "ok..."
Selection.Value = "CA"
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
Unload userformabsences
ActiveCell.Offset(RowOffset:=0, ColumnOffSet:=2).End(xlUp).Activate
End If
End Sub

Seulement, lorsque je veux l'étendre à l'ensemble des lignes qui composent les différents agents, j'éprouve des difficultés, d'autant que pour la ligne 2, l'objet range sera a2, pour la ligne 3, l'objet range sera a3 etc...
Peut-on avec ce seul bouton gérer plusieurs lignes de manière indépendantes ? Merci de me répondre si une solution existe !!!
Bien à vous
A+

2 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
7 janv. 2011 à 08:57
Salut,

ben oui !!! et c'est même plutôt simple :

Private Sub CommandButtoncongé_Click()
   ligne = ActiveCell.Row
   If Range("a" & ligne).Value = 0 Then
      MsgBox "Plus de Congé"
      Exit Sub
   ElseIf Range("a" & ligne).Value >= 1 Then MsgBox "ok..."
       Selection.Value = "CA"
       With Selection.Font
          .Color = -16776961
          .TintAndShade = 0
       End With
       Unload userformabsences
       ActiveCell.Offset(RowOffset:=0, ColumnOffSet:=2).End(xlUp).Activate
    End If
End Sub


A+
3
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012
7 janv. 2011 à 10:19
Merci bigfish,
Je m'aperçois avec le temps que le mot "simplicité" ne peut être interprété par tout le monde de la même façon !!!
Cordialement

eric
0
Rejoignez-nous