XL 2021 Calendrier Checkbox; ComboBox

Mate59

XLDnaute Junior
Bonjour,

Je vous joint le fichier qui me pose problème.
Il s'avère que j'ai passé plusieurs heures à essayer sans vraiment trouver la solution.
J'ai détaillé l'ensemble de ce que je souhaite dans le fichier.

Je vous remercie grandement pour votre aide!
 

Pièces jointes

  • PORFORUM.xlsm
    36 KB · Affichages: 8

ChTi160

XLDnaute Barbatruc
Bonjour Mate59
le problème enfin l'un des Problème est que le Format de tes Dates dans Ton CB2 n'est pas Bon.
les Dates devraient être sous la Forme "lun. 01 Janvier" lorsque tu veux formater la date elle ne se trouve pas dans ton CB2 car manque le Point tu as "lun 01 Janvier" ce qui implique une erreur.
Pourquoi n'utilises-tu pas un calendrier (il y en a plein sur le Forum)
voir le Fichier
Jean marie
 

Pièces jointes

  • PORFORUM Chti160.xlsm
    41 KB · Affichages: 3

Mate59

XLDnaute Junior
Bonjour,

j'ai avancé et finalement avec ce code j'arrive à faire apparaître CP dans la case voulue mais pour clôturer la date de fin je n'arrive pas à faire entrer CP dans toutes les cases.

VB:
For l = 12 To 743
For c = 4 To 28
'Si CBx1 égal prénom et CBx3 égal date et CBx4 égale am ou pm alors on vise la cellule pour la remplir avec "CP"
If CBx1.Value = Cells(4, c) And CDate(CBx3.Value) = CDate(Cells(l, 2)) And CBx4.Value = Cells(l, 3) Then
Cells(l, c) = "CP"

End If
Next c
Next l
1699970911345.png
 

ChTi160

XLDnaute Barbatruc
Bonsoir Mate59
Une première approche (perfectible) qui ne répond pas à tout !
Tu testes et tu me dis.
VB:
Private Sub OK_Click()
Application.ScreenUpdating = False
Dim l As Integer, Col As Integer, ColCible As Byte
     With Worksheets("Feuil1")
                For Col = 4 To 16
                             If Me.CBx1.Value = .Cells(4, Col) Then ColCible = Col: Exit For
                 Next Col
For l = 12 To 743
      If Weekday(CDate(.Cells(l, 2)), vbMonday) < 6 Then
            If CDate(Me.CBx3.Value) = CDate(.Cells(l, 2)) And Me.CBx4.Value = .Cells(l, 3) Then
                                     .Cells(l, ColCible) = "CP"
           
                  ElseIf CDate(.Cells(l, 2)) > CDate(Me.CBx3.Value) And CDate(.Cells(l, 2)) < Me.CBx6.Value Then
                                     .Cells(l, ColCible) = "CP"
           
                  ElseIf CDate(Me.CBx6.Value) = CDate(.Cells(l, 2)) And Me.CBx7.Value = .Cells(l, 3) Then
                                     .Cells(l, ColCible) = "CP"
                           
                            If CDate(Me.CBx6.Value) = CDate(.Cells(l, 2)) Then Exit For
            End If
      End If
Next l
End With
Unload Me
End Sub
Bonne fin de Soirée.
Jean marie
 
Dernière édition:

Discussions similaires

Réponses
9
Affichages
407

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg