Où est l'erreur?
maitika64
Messages postés
9
Statut
Membre
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaite créer un calendrier qui me permettrait de griser les cases correspondant au jours fériés.
Lorsque je lance le programme un message d'erreur "n°424 Objets requis" apparait mais je ne comprends pas d'où vient l'erreur. Excel m'indique que l'erreur vient de cette ligne.
Une idée???
Merci
Je souhaite créer un calendrier qui me permettrait de griser les cases correspondant au jours fériés.
Lorsque je lance le programme un message d'erreur "n°424 Objets requis" apparait mais je ne comprends pas d'où vient l'erreur. Excel m'indique que l'erreur vient de cette ligne.
Une idée???
If ((Range("N5").Value = "S" Or Range("N5").Value = "D") And Weekend.Value = True) Or (Range("L5").Value >= Toussaint_Deb And Range("L5").Value <= Toussaint_Fin And Vacances.Value = True) Then
Range("O5").Interior.ColorIndex = 15
Else: Range("O5").Interior.ColorIndex = 0
End If
Merci
A voir également:
- Où est l'erreur?
- Erreur lors de l'enregistrement du contact - Forum Xiaomi
- Iptv erreur de lecture - Forum TV & Vidéo
- Instagram une erreur s'est produite - Forum Instagram
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
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
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
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. |
