Dim Cellule_en_Cours As Range, Test_Plage, Compteur As Integer
Private Sub Inscription_Indisponibilites(Val_Indispo$)
With Application
.ScreenUpdating = False 'désactivation de l'affichage écran
.Calculation = xlCalculationManual 'désactivation du calcul automatique
.EnableEvents = False 'désactivation des événements
End With
On Error GoTo Gere_Erreurs 'si erreur on réactive tout (ceinture et bretelles)
For Compteur = 12 To 369 Step 3 'compte de la premiere colonne du tableau à la dernière par incrémentation de 3
If Compteur >= Selection.Resize(, 1).Column Then 'ne déclenche le code que si compteur supérieur ou égal à la première colonne de la sélection
If Selection.Columns.Count + Selection.Resize(, 1).Column - 1 < Compteur Then Exit For 'sort de la boucle si compteur supérieur à la dernière colonne de la sélection
Set Test_Plage = Nothing 'efface la référence
Set Test_Plage = Intersect(Range("A4").Offset(0, Compteur - 1).Range("A1:A31"), Selection) 'récurère l'intersection sélection plage à modifier, reste à nothing si aucune
If Not Test_Plage Is Nothing Then ' si plage d'intersectionb existe, exécute
For Each Cellule_en_Cours In Test_Plage 'pour chaque cellule de la plage d'intersection
If Not Cellule_en_Cours.Offset(0, -2).Value = "" Then Cellule_en_Cours.FormulaR1C1 = Val_Indispo 'si valeur en même ligne, colonne -2, applique la valeur
Next Cellule_en_Cours
End If
Set Test_Plage = Nothing 'efface la référence (ceinture et bretelles)
End If
Next Compteur
Gere_Erreurs:
With Application
.ScreenUpdating = True 'activation de l'affichage écran
.Calculation = xlCalculationAutomatic 'activation du calcule automatique
.EnableEvents = True 'activation des événements
End With
End Sub
Private Sub CommandButton1_Click()
'bouton CEFC
Inscription_Indisponibilites ("5")
End Sub
Private Sub CommandButton2_Click()
'bouton 3/4 temps
Inscription_Indisponibilites ("8")
End Sub
Private Sub CommandButton4_Click()
'bouton CAFC
Inscription_Indisponibilites ("6")
End Sub
Private Sub CommandButton5_Click()
'bouton TB6
Inscription_Indisponibilites ("9")
End Sub
Private Sub commandbutton3_click()
'bouton congés
Inscription_Indisponibilites ("7")
End Sub
Private Sub CommandButton6_Click()
With Application
.ScreenUpdating = False 'désactivation de l'affichage écran
.Calculation = xlCalculationManual 'désactivation du calcul automatique
.EnableEvents = False 'désactivation des événements
End With
On Error GoTo Gere_Erreurs 'si erreur on réactive tout (ceinture et bretelles)
For Compteur = 12 To 369 Step 3 'compte de la premiere colonne du tableau à la dernière par incrémentation de 3
If Compteur >= Selection.Resize(, 1).Column Then 'ne déclenche le code que si compteur supérieur ou égal à la première colonne de la sélection
If Selection.Columns.Count + Selection.Resize(, 1).Column - 1 < Compteur Then Exit For 'sort de la boucle si compteur supérieur à la dernière colonne de la sélection
Set Test_Plage = Nothing 'efface la référence
Set Test_Plage = Intersect(Range("A4").Offset(0, Compteur - 1).Range("A1:A31"), Selection) 'récurère l'intersection sélection plage à modifier, reste à nothing si aucune
If Not Test_Plage Is Nothing Then Test_Plage.ClearContents ' si plage d'intersectionb existe, l'efface
Set Test_Plage = Nothing 'efface la référence (ceinture et bretelles)
End If
Next Compteur
Gere_Erreurs:
With Application
.ScreenUpdating = True 'activation de l'affichage écran
.Calculation = xlCalculationAutomatic 'activation du calcule automatique
.EnableEvents = True 'activation des événements
End With
End Sub
Private Sub CommandButton7_Click()
With Application
.ScreenUpdating = False 'désactivation de l'affichage écran
.Calculation = xlCalculationManual 'désactivation du calcul automatique
.EnableEvents = False 'désactivation des événements
End With
On Error GoTo Gere_Erreurs 'si erreur on réactive tout (ceinture et bretelles)
For Compteur = 12 To 369 Step 3 'compte de la premiere colonne du tableau à la dernière par incrémentation de 3
Range("A4").Offset(0, Compteur - 1).Range("A1:A31").ClearContents 'on efface les plages de valeurs
Next Compteur
Gere_Erreurs:
With Application
.ScreenUpdating = True 'activation de l'affichage écran
.Calculation = xlCalculationAutomatic 'activation du calcule automatique
.EnableEvents = True 'activation des événements
End With
End Sub