Monique, le forum
Merci beaucoup.
Alors,
1) Pour
Pour AU42, je ne trouve que cette formule :
=SOMMEPROD(SI(C22:C52=AT55;(A22:A52={'lu'.'me'.'je'.'ve'})*1))*AX31
C'est tout a fait Oki.
2)Pour
Si tu avais ta série de oui et non en colonne I,
tu pourrais utiliser cette formule (à valider par 'Entrée' simplement) :
=SOMMEPROD(($I$22:$I$52='oui')*($C$22:$C$52=AT55))*AX31
Ou bien les oui non situés n'importe où, pourvu qu'il y ait 31 cellules, pas forcément de la ligne 22 à la ligne 52
Cela peu être réalisable dans deux cas.
1 er cas en formule .
Que dans chaque lignes de la colonne I ou autre, cela analyse la plage A22:A52 et que cela mette l'état de chaque jour par rapport au tableau des jours de garde.
2 eme cas en macro .
Car j'ai ce code pour rempir le tableau des jours de garde.
Dim TheDate As Date
Private Sub cmdAnnuler_Click()
UserForm_Initialize
End Sub
Private Sub cmdRetour_Click()
Unload Me
End Sub
Private Sub chbAucuns_Click()
If ChbAucuns = True Then
chbLundi = False
chbMardi = False
chbMercredi = False
chbJeudi = False
chbVendredi = False
chbSamedi = False
chbDimanche = False
End If
End Sub
Private Sub chbLundi_Click()
InitialisationChbAucuns
End Sub
Private Sub chbMardi_Click()
InitialisationChbAucuns
End Sub
Private Sub chbMercredi_Click()
InitialisationChbAucuns
End Sub
Private Sub chbJeudi_Click()
InitialisationChbAucuns
End Sub
Private Sub chbVendredi_Click()
InitialisationChbAucuns
End Sub
Private Sub chbSamedi_Click()
InitialisationChbAucuns
End Sub
Private Sub chbDimanche_Click()
InitialisationChbAucuns
End Sub
Private Sub cmdModifier_Click()
Dim TheNum As Byte
TheDate = Month(Date)
TheNum = CByte(Month(Date))
PositionModifier
Préposition
chbLundi.Locked = False
chbMardi.Locked = False
chbMercredi.Locked = False
chbJeudi.Locked = False
chbVendredi.Locked = False
chbSamedi.Locked = False
chbDimanche.Locked = False
chbLundi.Value = False
chbMardi.Value = False
chbMercredi.Value = False
chbJeudi.Value = False
chbVendredi.Value = False
chbSamedi.Value = False
chbDimanche.Value = False
cmdModifier.Visible = False
End Sub
Private Sub UserForm_Initialize()
Dim TheNum As Byte
TheDate = Month(Date)
TheNum = CByte(Month(Date))
PositionInitiale
Usf_NonGarde.Caption = 'Jours de garde en ' & Worksheets(TheNum).Name
With Sheets('CoordonnéesBebe')
If .lblSexe = 'G' Then
Usf_NonGarde.BackColor = &HFFC0C0
frmJoursDeGarde.BackColor = &HFFC0C0
chbLundi.BackColor = &HFFC0C0
chbMardi.BackColor = &HFFC0C0
chbMercredi.BackColor = &HFFC0C0
chbJeudi.BackColor = &HFFC0C0
chbVendredi.BackColor = &HFFC0C0
chbSamedi.BackColor = &HFFC0C0
chbDimanche.BackColor = &HFFC0C0
End If
If .lblSexe = 'F' Then
Usf_NonGarde.BackColor = &HFFC0FF
frmJoursDeGarde.BackColor = &HFFC0FF
chbLundi.BackColor = &HFFC0FF
chbMardi.BackColor = &HFFC0FF
chbMercredi.BackColor = &HFFC0FF
chbJeudi.BackColor = &HFFC0FF
chbVendredi.BackColor = &HFFC0FF
chbSamedi.BackColor = &HFFC0FF
chbDimanche.BackColor = &HFFC0FF
End If
End With
With Worksheets(TheNum)
chbLundi.Value = IIf(.Range('AT30').Value = 'Oui', True, False)
chbMardi.Value = IIf(.Range('AT31').Value = 'Oui', True, False)
chbMercredi.Value = IIf(.Range('AT32').Value = 'Oui', True, False)
chbJeudi.Value = IIf(.Range('AT33').Value = 'Oui', True, False)
chbVendredi.Value = IIf(.Range('AT34').Value = 'Oui', True, False)
chbSamedi.Value = IIf(.Range('AT35').Value = 'Oui', True, False)
chbDimanche.Value = IIf(.Range('AT36').Value = 'Oui', True, False)
End With
chbLundi.Locked = True
chbMardi.Locked = True
chbMercredi.Locked = True
chbJeudi.Locked = True
chbVendredi.Locked = True
chbSamedi.Locked = True
chbDimanche.Locked = True
End Sub
Sub InitialisationChbAucuns()
'ChbAucuns = False
End Sub
Private Sub cmdValider_Click()
Dim Choix1 As String
Dim Choix2 As String
Dim Choix3 As String
Dim Choix4 As String
Dim Choix5 As String
Dim Choix6 As String
Dim Choix7 As String
Dim Mois, TheNum As Byte
TheDate = Month(Date)
TheNum = CByte(Month(Date))
If chbLundi = True Then
Choix1 = 'Oui'
Else
Choix1 = 'Non'
End If
If chbMardi = True Then
Choix2 = 'Oui'
Else
Choix2 = 'Non'
End If
If chbMercredi = True Then
Choix3 = 'Oui'
Else
Choix3 = 'Non'
End If
If chbJeudi = True Then
Choix4 = 'Oui'
Else
Choix4 = 'Non'
End If
If chbVendredi = True Then
Choix5 = 'Oui'
Else
Choix5 = 'Non'
End If
If chbSamedi = True Then
Choix6 = 'Oui'
Else
Choix6 = 'Non'
End If
If chbDimanche = True Then
Choix7 = 'Oui'
Else
Choix7 = 'Non'
End If
Call Msg4
For Mois = TheNum To 12
With Worksheets(Mois)
.Range('AT30').Value = Choix1
.Range('AT31').Value = Choix2
.Range('AT32').Value = Choix3
.Range('AT33').Value = Choix4
.Range('AT34').Value = Choix5
.Range('AT35').Value = Choix6
.Range('AT36').Value = Choix7
End With
Next Mois
Msg2
Unload Me
End Sub
Sub PositionInitiale()
frmJoursDeGarde.Caption = 'Jours de gardes actuels'
cmdValider.Visible = False
cmdAnnuler.Visible = False
cmdModifier.Visible = True
End Sub
Sub PositionModifier()
frmJoursDeGarde.Caption = 'Sélectionner les jours de garde'
cmdAnnuler.Visible = True
cmdValider.Visible = True
cmdModifier.Visible = False
End Sub
Sub Préposition()
Dim TheNum As Byte, VarPreposition
TheNum = CByte(Month(Date))
Select Case TheNum
Case 4, 8, 10: VarPreposition = 'd''
Case Else: VarPreposition = 'de'
End Select
Usf_NonGarde.Caption = 'Jours de garde a partir ' & VarPreposition & _
Worksheets(TheNum).Name
End Sub
Et pouvoir le faire lors de l'envoie ou de la mise a jour des jours de garde.
En tous les cas merci, G'Claire