inscrire des vacances dans calendrier en fonction de textbox

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

  • PointageLaetis.xlsm
    151.4 KB · Affichages: 41

job75

XLDnaute Barbatruc
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:

job75

XLDnaute Barbatruc
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+
 

Jacou

XLDnaute Impliqué
Re : inscrire des vacances dans calendrier en fonction de textbox

Bonjour à tous,

Petites remarques d'orthographe (je sais c'est un peu pointilleux !:confused: ).
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:

Discussions similaires

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2