inscrire des vacances dans calendrier en fonction de textbox

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

remy3885

XLDnaute Nouveau
Bonjour,
je souhaite remplir les vacances scolaire dans un calendrier par rapport à des dates que je rentre dans des textbox sur un userform.
Pour être plus clair, j'ai un userform1 où je rentre vacances scolaire DU '18/10/14' AU '02/11/14' et quand je clique sur valide je voudrais remplir mon calendrier. Sur la feuille "Année" il me rentre la valeur "Vac" dans les cellules "AE35" à "AE48" et "AH18", "AH19".
J'espère avoir été assez clair...
Si vous voulez des précisions n’hésitez pas.
 

Pièces jointes

Re : inscrire des vacances dans calendrier en fonction de textbox

Bonjour remy3885,

Je vous laisse tester ce code dans UserForm1 :

Code:
Private Sub CommandButton4_Click()
'il est tout à fait inutile de vider les TextBoxes !!!
Unload Me 'puisqu'on ferme l'UserForm
End Sub

Private Sub CommandButton5_Click()
Dim i As Byte, c As Object, a(1 To 10) As Date, P As Range, j As Byte
'---vérification des dates---
For i = 2 To 11
  Set c = Controls("TextBox" & i)
  If IsDate(c) Then
    a(i - 1) = CDate(c)
    c = Format(a(i - 1), "dd/mm/yyyy")
  Else
    MsgBox "Date non valide !", 48
    c.SetFocus
    c.SelStart = 0
    c.SelLength = Len(c)
    Exit Sub
  End If
Next
'---entrées dans la feuille---
Set P = Sheets("Année").[B18:AK48]
P.Replace "Vac", "" 'RAZ
For i = 1 To 31
  For j = 1 To 12
    Set c = P(i, 3 * j - 2)
    If c >= a(1) And c <= a(2) Or c >= a(3) And c <= a(4) Or c >= a(5) And c <= a(6) _
      Or c >= a(7) And c <= a(8) Or c >= a(9) And c <= a(10) Then c(1, 3) = "Vac"
  Next
Next
'---vidage des feuilles---
' UserForm2.Show 'UserForm2 me paraît bien inutile, une MsgBox suffit...
End Sub
Lisez mes commentaires.

J'en ajoute un autre : inscrire l'année en TextBox1 est inutile.

Si l'on ne précise pas l'année dans les dates des TextBox2 à TextBox11, c'est l'année en cours qui est prise.

Sinon préciser l'année dans ces TextBoxes.

A+
 
Dernière édition:
Re : inscrire des vacances dans calendrier en fonction de textbox

Re,

Dans le code précédent, pour vider proprement les feuilles des mois :

Code:
'---Vidage des feuilles---
If MsgBox("Vider les feuilles des mois ?", 4) = 7 Then Exit Sub
For Each c In Worksheets
  If IsDate("1/" & c.Name) Then c.[B13:AF17,B25:AF27] = ""
Next
Vous remarquerez qu'il est inutile d'activer les feuilles...

A+
 
Re : inscrire des vacances dans calendrier en fonction de textbox

Bonjour à tous,

Petites remarques d'orthographe (je sais c'est un peu pointilleux !😕 ).
Dans le Userform1 : "Toussaint" au lieu de "toussains" - "Pâques" au lieu de "Paque" (pour ces dernières vacances leur dénomination officielle est "vacances de printemps" sur le site de l'Education nationale).
Dans le Userform 2, j'écrirai "sûr" et non "sûre" (je suppose que le formulaire ne s'adresse pas qu'à des femmes)
Ce n'est qu'un point de détail et un peu de perfectionnisme.
Jacou
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour