XL 2013 Transfert des Sélections des Combobox et Affichage dans la Feuille

chaelie2015

XLDnaute Accro
Bonjour Forum
Je souhaite à chaque fois que le bouton 'CBn_Valider' est cliqué, transférer les informations de la combobox 'CBox_MotifAbsence' et des dates sélectionnées dans 'CBox_DateMotifDebut' et 'CBox_DateMotifFin' vers la feuille 'CRT'.et afficher le contenu choisi dans 'CBox_MotifAbsence' dans la colonne I17:I47 de la feuille 'CRT' pour la plage de dates définie par 'CBox_DateMotifDebut' et 'CBox_DateMotifFin'.
J'espère que ma préoccupation est bien expliquée.
Par exemple, si j'ai pris un congé du 3 au 10, alors affichez les informations de congé dans les cases de la colonne I correspondant à ces dates. (voir le fichier joint)
Merci
 

Pièces jointes

  • CHARLIE Transfert ComboBox vers le feuille V18102023.xlsm
    88.5 KB · Affichages: 4

job75

XLDnaute Barbatruc
Bonsoir chaelie2015, ChTi160,

Cette macro devrait fonctionner dans tous les cas de figure :
VB:
Private Sub CBn_Valider_Click()
If CBox_MotifAbsence.ListIndex = -1 Then CBox_MotifAbsence = "": CBox_MotifAbsence.SetFocus: Exit Sub
If CBox_DateMotifDebut.Visible And CBox_DateMotifDebut.ListIndex = -1 Then CBox_DateMotifDebut = "": CBox_DateMotifDebut.SetFocus: Exit Sub
If CBox_DateMotifFin.ListIndex = -1 Then CBox_DateMotifFin = "": CBox_DateMotifFin.SetFocus: Exit Sub
Dim deb, fin, jour
If CBox_DateMotifDebut.Visible Then deb = Day(CDate(CBox_DateMotifDebut)) Else deb = Day(CDate(CBox_DateMotifFin))
fin = Day(CDate(CBox_DateMotifFin))
With Sheets("CRT")
    For jour = 1 To 31
        If jour >= deb And jour <= fin Then .Cells(jour + 16, "I") = CBox_MotifAbsence Else .Cells(jour + 16, "I") = ""
    Next
End With
End Sub
Edit : ajouté l'effacement des ComboBox.

A+
 

Pièces jointes

  • CHARLIE Transfert ComboBox vers le feuille V18102023.xlsm
    87.8 KB · Affichages: 3
Dernière édition:

chaelie2015

XLDnaute Accro
Bonsoir Job
Je vous remercie, c'est excellent. Je souhaite apporter une amélioration au bouton de validation.
Lorsque je clique dessus, j'aimerais qu'il affiche un message demandant : "Souhaitez-vous ajouter un autre motif ?"
Si la réponse est non, le code actuel sera appliqué.
En revanche, si la réponse est oui, je souhaite transférer les données qui ont étés saisies vers la feuille, et ajouter ces nouvelles données , et ainsi de suite si l'utilisateur répond "oui".
A+
 

job75

XLDnaute Barbatruc
Perso je créerais un planning de 2023 à 2030 avec les motifs entrés les uns à la suite des autres :
VB:
Private Sub CBn_Valider_Click()
If CBox_MotifAbsence.ListIndex = -1 Then CBox_MotifAbsence = "": CBox_MotifAbsence.SetFocus: Exit Sub
If CBox_DateMotifDebut.Visible And CBox_DateMotifDebut.ListIndex = -1 Then CBox_DateMotifDebut = "": CBox_DateMotifDebut.SetFocus: Exit Sub
If CBox_DateMotifFin.ListIndex = -1 Then CBox_DateMotifFin = "": CBox_DateMotifFin.SetFocus: Exit Sub
Dim deb, fin, temp, c As Range
If CBox_DateMotifDebut.Visible Then deb = CLng(CDate(CBox_DateMotifDebut)) Else deb = CLng(CDate(CBox_DateMotifFin))
fin = CLng(CDate(CBox_DateMotifFin))
If deb > fin Then temp = deb: deb = fin: fin = temp
With Sheets("CRT")
    Set c = .Cells(Application.Match(deb, .Columns("A"), 0), "I")
    c.Resize(fin - deb + 1) = CBox_MotifAbsence
    c.Select
End With
End Sub
Les motifs entrés précédemment sont écrasés éventuellement.
 

Pièces jointes

  • CHARLIE Transfert ComboBox vers le feuille V18102023.xlsm
    245.4 KB · Affichages: 1

chaelie2015

XLDnaute Accro
Bonjour chaelie2015, le forum,

Il faut préciser ce que vous entendez par "ajouter un autre motif".

Que faut-il faire des données déjà entrées dans la plage I17:I47 ? Le code actuel les supprime.

A+
Re
La feuille CRT est un modèle. En ce qui concerne l'option 'ajouter un autre motif', je souhaite dire qu'il s'agit de sélectionner un motif supplémentaire en plus des données déjà enregistrées précédemment pour l'ajouter à la même feuille.
A+
 

chaelie2015

XLDnaute Accro
VOICI UN exemple
charlie CRT JOB 1.jpg
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 266
Membres
103 167
dernier inscrit
miriame