A voir également:
- Où est l'erreur?
- Erreur 0x80070643 - Accueil - Windows
- Corriger l'erreur 0x80070643 de la mise à jour KB5034441 de Windows 10 - Accueil - Windows
- Une erreur s'est produite instagram ✓ - Forum Instagram
- Erreur t32 ✓ - Forum Livebox
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
9 réponses
Weekend et Vacances sont deux cases à cocher.
Weekend permet d'afficher (Masquer) les weekend en fond gris et même principe pour Vacances.
Weekend permet d'afficher (Masquer) les weekend en fond gris et même principe pour Vacances.
Voilà comment je fais fonctionner ma case à cocher Weekend.
Private Sub Weekend_Click()
If Weekend = True Then
Call AfficheWeekend
Else: Call MasqueWeekend
End If
End Sub
Private Sub Weekend_Click()
If Weekend = True Then
Call AfficheWeekend
Else: Call MasqueWeekend
End If
End Sub
Décompose le grand 'if' qui provoque l'erreur en plusieurs parties pour cerner quelle partie ne convient pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le père j'ai suivi ton conseil. Il semble que le problème vienne de la partie en gras.
If ((Range("N5") = "S" Or Range("N5") = "D") And Weekend_Click = True) Or (Range("M5").Value >= Toussaint_Deb And Range("M5").Value <= Toussaint_Fin And Vacances_Click = True) Then
Range("O5").Interior.ColorIndex = 15
Else: Range("O5").Interior.ColorIndex = 0
End If
If ((Range("N5") = "S" Or Range("N5") = "D") And Weekend_Click = True) Or (Range("M5").Value >= Toussaint_Deb And Range("M5").Value <= Toussaint_Fin And Vacances_Click = True) Then
Range("O5").Interior.ColorIndex = 15
Else: Range("O5").Interior.ColorIndex = 0
End If
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, peux-tu montrer l'ensemble de ton code, ou partager ton fichier?
as-tu bien mis "option explicit" en début de module?
as-tu bien mis "option explicit" en début de module?
Voilà le code complet. Après découpage et différents tests, le problème vient des cases à cocher. Je ne sais pas si elles sont bien déclarées.
Sub MasqueJoursferies() Dim i As Integer 'colonne Dim j As Integer 'ligne Dim Rentree As Date Dim Toussaint_Deb As Date Dim Toussaint_Fin As Date Dim Noel_Deb As Date Dim Noel_Fin As Date Dim Hiver_Deb As Date Dim Hiver_Fin As Date Dim Paques_Deb As Date Dim Paques_Fin As Date Dim Ete_Deb As Date Dim Weekend As CheckBox Dim Vacances As CheckBox ActiveSheet.Unprotect Rentree = Range("AX3") Toussaint_Deb = Range("AX6") Toussaint_Fin = Range("AX7") Noel_Deb = Range("AX10") Noel_Fin = Range("AX11") Hiver_Deb = Range("AX14") Hiver_Fin = Range("AX15") Paques_Deb = Range("AX18") Paques_Fin = Range("AX19") Ete_Deb = Range("AX22") Range("O5").ClearContents 'Toussaint If ((Range("N5") = "S" Or Range("N5") = "D") And Weekend.Value = xlOn) Or (Range("M5") >= Toussaint_Deb And Range("M5") <= Toussaint_Fin And <bold>Vacances.Value = xlOn</bold>) Then Range("O5").Interior.ColorIndex = 15 Else: Range("O5").Interior.ColorIndex = 0 End If ActiveSheet.Range("O5").Locked = False Range("O15").ClearContents 'Armistice If ((Range("N15") = "S" Or Range("N15") = "D") And Weekend = True) Or (Range("M5") >= Toussaint_Deb And Range("M5") <= Toussaint_Fin And Vacances = True) Then Else: Range("O15").Interior.ColorIndex = 0 End If ActiveSheet.Range("O15").Locked = False Range("S29").ClearContents 'Noël If ((Range("R29") = "S" Or Range("R29") = "D") And Weekend = True) Or (Range("R29") >= Noel_Deb And Range("R29") <= Noel_Fin And Vacances = True) Then Else: Range("S29").Interior.ColorIndex = 0 End If ActiveSheet.Range("S29").Locked = False Range("W5").ClearContents 'Jour de l'an If ((Range("V5") = "S" Or Range("V5") = "D") And Weekend = True) Or (Range("V5") >= Noel_Deb And Range("V5") <= Noel_Fin And Vacances = True) Then Else: Range("W5").Interior.ColorIndex = 0 End If ActiveSheet.Range("W5").Locked = False Range("AM5").ClearContents 'Fête du travail If ((Range("AL5") = "S" Or Range("AL5") = "D") And Weekend = True) Or (Range("AL5") >= Hiver_Deb And Range("AL5") <= Hiver_Fin And Vacances = True) Then Else: Range("AM5").Interior.ColorIndex = 0 End If ActiveSheet.Range("AM5").Locked = False Range("AM12").ClearContents 'Armistice If ((Range("AL12") = "S" Or Range("AL12") = "D") And Weekend = True) Or (Range("AL12") >= Hiver_Deb And Range("AL12") <= Hiver_Fin And Vacances = True) Then Else: Range("AM12").Interior.ColorIndex = 0 End If ActiveSheet.Range("AM12").Locked = False Range("AU18").ClearContents 'Fête Nationale If ((Range("AT18") = "S" Or Range("AT18") = "D") And Weekend = True) Or (Range("AT18") >= Ete_Deb And Vacances = True) Then Else: Range("AU18").Interior.ColorIndex = 0 End If ActiveSheet.Range("AY10").Locked = False For i = 1 To 48 Step 4 For j = 5 To 35 If (Cells(j, i) <> "") Then If Cells(j, i) = Range("AZ12") Then Cells(j, i + 2).ClearContents If Not ((Cells(j, i + 1) = "S" Or Cells(j, i + 1) = "D") And Weekend = True) Or (Vacances = True) Then Cells(j, i + 2).Interior.ColorIndex = 0 End If ActiveSheet.Cells(j, i + 2).Locked = False Else If Cells(j, i) = Range("AZ13") Then Cells(j, i + 2).ClearContents If Not ((Cells(j, i + 1) = "S" Or Cells(j, i + 1) = "D") And Weekend = True) Or (Vacances = True) Then Cells(j, i + 2).Interior.ColorIndex = 0 End If ActiveSheet.Cells(j, i + 2).Locked = False Else If Cells(j, i) = Range("AZ14") Then Cells(j, i + 2).ClearContents If Not ((Cells(j, i + 1) = "S" Or Cells(j, i + 1) = "D") And Weekend = True) And (Vacances = True) Then Cells(j, i + 2).Interior.ColorIndex = 0 End If ActiveSheet.Cells(j, i + 2).Locked = False Else If Cells(j, i) = Range("AZ15") Then Cells(j, i + 2).ClearContents If Not ((Cells(j, i + 1) = "S" Or Cells(j, i + 1) = "D") And Weekend = True) Or (Vacances = True) Then Cells(j, i + 2).Interior.ColorIndex = 0 End If ActiveSheet.Cells(j, i + 2).Locked = False Else If Cells(j, i) = Range("AZ16") Then Cells(j, i + 2).ClearContents If Not ((Cells(j, i + 1) = "S" Or Cells(j, i + 1) = "D") And Weekend = True) Or (Vacances = True) Then Cells(j, i + 2).Interior.ColorIndex = 0 End If ActiveSheet.Cells(j, i + 2).Locked = False Else If Cells(j, i) = Range("AZ17") Then Cells(j, i + 2).ClearContents If Not ((Cells(j, i + 1) = "S" Or Cells(j, i + 1) = "D") And Weekend = True) Or (Vacances = True) Then Cells(j, i + 2).Interior.ColorIndex = 0 End If ActiveSheet.Cells(j, i + 2).Locked = False End If End If End If End If End If End If End If Next j Next i ActiveSheet.Protect End Sub
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |