Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de compatibilité entre macro et Outil protection de la feuille

1 réponse
Avatar
George
Hello à tous,
J'ai un problème avec une macro qui me dit que je dois déboguer des
commandes.
(j'ose pas trop y toucher avant d'avoir un avis)

les feuilles de mon classeur, son dotés de plusieurs fonctionnalités et l'un
d'elle
est le masquage des colonnes automatiquement selon la date du calendrier
utilisé

Ex: 31 jours en janvier = 31 colonnes
28 jours en février = 28 colonnes (3 masquées auto)

le message d'erreur me dit que la commande macro n'est pas compatible avec
la fonction de protections des feuilles.
J'en ai besoin pour que les utilisatrices de ce fichier n'aillent pas tout
trifatouiller.

Merci à ceux qui arriverons à m'aider.

Salutations à tous

George

1 réponse

Avatar
George
Désolé,
j'ai oublié de mettre la macro. La voici:

Erreur d'exécution '1004':
Impossible de définir la propriété Hidden de la classe Range.

[bouton] continué (grisé) // [bouton] Fin // [bouton] Débogage // [bouton]
aide

Lorsque je clique sur le débogage, voici la macro qui vient dont la ligne
suivante
plus bas est colorée:

Selection.EntireColumn.Hidden = False
(cette ligne comporte une flèche jaune et est
surlignée jaune)




Option Explicit

Public Deb#, Fin#, NbJours&, I As Date
Public Cell As Range, Li&, Col%
Public Weekend As Boolean

Public Debut As String
Public NbColonnesACacher As Integer
Public CellChange As Range
Public ModifierMois As Boolean



Sub CalendrierLudo()

' construit un calendrier
' choix de la cellule de départ par l'utilisateur
' choix des dates de début et fin de calendrier


Set Cell = ActiveSheet.Range("C7")

Err.Clear
Debut = "01/01/"

An = Range("AB3").Value
MoisEnCours = Range("R3").Value

Columns("AE:AG").Select
Selection.EntireColumn.Hidden = False
(cette ligne comporte une flèche jaune et est
surlignée jaune)


Call TesterLeMois

ActiveSheet.Range(Cells(7, 3), Cells(7, 33)).Select
With Selection
.Clear
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With

Deb = CDate(Debut & An)
Fin = Deb + NombreDeJours - 1


' MsgBox (Err.Number)


If Err <> 0 Then Exit Sub

Li = Cell.Row: Col = Cell.Column

For I = Deb To Fin
Cells(Li, Col).Value2 = I

If WeekDay(I, vbMonday) > 5 And Weekend = True Then
Cells(Li, Col).Interior.ColorIndex = 6

End If
' pour surligner les samedis, dimanches et fériés
If TYPEJOUR(I) = 1 Or TYPEJOUR(I) = 2 Then
' Cells(Li, Col).Interior.ColorIndex = 6
Cells(Li, Col).Interior.ColorIndex = 40
Cells(Li, Col).Interior.Pattern = xlGray25
End If

' Cells(Li, Col).NumberFormatLocal = "jjjj jj/mm/aaaa"
Cells(Li, Col).NumberFormatLocal = "jj"

Col = Col + 1
Next I

Call SuppressionQuadrillage
Call BordureLigneDeTitre
Call ColonnesACacher

Set Cell = Nothing

End Sub

'Cette fonction renvoie 0 si le jour passé en paramètre est un jour de
semaine,
'1 s'il s'agit d'un samedi ou d'un dimanche et 2 s'il s'agit d'un jour
férié.
'Valide jusqu'en 2099 et pour les jours fériés français
Function TYPEJOUR(D As Date)
'L. Longre
Dim A As Integer, T As Integer
Dim LP As Date, LD As Long
Dim Toto As Long

A = Year(D)
If A > 2099 Then
TYPEJOUR = CVErr(xlErrValue)
Exit Function
End If
LD = Int(D)
If LD <= 2 Then
If LD = 1 Then TYPEJOUR = 2
Exit Function
End If
T = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21
LP = DateSerial(A, 3, 2) + T + (T > 48) _
+ 6 - ((A + A 4 + T + (T > 48) + 1) Mod 7)
Select Case D
' Jours fériés mobiles
Case Is = LP, Is = LP + 38, Is = LP + 49
TYPEJOUR = 2
' Jours fériés fixes (Valables pour la France, à adapter pour la
Suisse)
Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _
Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _
Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _
Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25)
TYPEJOUR = 2
Case Else
' Samedi ou dimanche
If WeekDay(D, vbMonday) >= 6 Then TYPEJOUR = 1
End Select

End Function









"George" a écrit dans le message de
news:
Hello à tous,
J'ai un problème avec une macro qui me dit que je dois déboguer des
commandes.
(j'ose pas trop y toucher avant d'avoir un avis)

les feuilles de mon classeur, son dotés de plusieurs fonctionnalités et
l'un

d'elle
est le masquage des colonnes automatiquement selon la date du calendrier
utilisé

Ex: 31 jours en janvier = 31 colonnes
28 jours en février = 28 colonnes (3 masquées auto)

le message d'erreur me dit que la commande macro n'est pas compatible avec
la fonction de protections des feuilles.
J'en ai besoin pour que les utilisatrices de ce fichier n'aillent pas tout
trifatouiller.

Merci à ceux qui arriverons à m'aider.

Salutations à tous

George