Protection TTe feuiiles dans une macro

DAN41HOM Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
DAN41HOM Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour le Forum,

Grâce à vous , que je remercie encore, j'ai pu réglé un problème de macro concernant la couleur de certains cadres.

Afin de complète cet exercice, j'aurai de nouveau besoin de vos lumières, je ne suis pas encore calé en Vba.

Reprenant ce dossier, j'aurai besoin que celui-ci Déprotège toutes les feuilles avant le lancement de la macro Color et que celle-ci se termine par une protection de toutes les feuilles sans mot de passe.
J'ai essayé sans succès.

le code
Public macouleur As Long

Sub ColorCadre()
tabloF = Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")
ChoixCouleur.Show
For f = 0 To 11
Set plage = Sheets(tabloF(f)).Range("C5:F5,H5:K5,M5:P5,C15:F15,H15:K15,M15:P15,C21:F21,H21:K21,M21:P21")
plage.Interior.Color = macouleur
Next f
End Sub


Merci à Vous.
DanVoit

3 réponses

  1. DAN41HOM Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   4
     
    Bonsoir,

    Après une recherche , j'ai trouvé la solution.
    Merci malgré à tous.
    0
  2. JCB40 Messages postés 3058 Date d'inscription   Statut Membre Dernière intervention   479
     
    Bonjour

    Tant mieux si tu as trouvé.
    Ce qui serait bien c'est que tu partages ta solution,d'autres pourraient en avoir besoin.
    Cordialement
    0
  3. DAN41HOM Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   4
     
    Bonjour,

    Effectivement : il y a en fait 2 solutions,

    La première :

    Public macouleur As Long
    Sub ColorCadre()
    Application.ScreenUpdating = False
    tabloF = Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")
    ChoixCouleur.Show
    For f = 0 To 11
    Sheets(tabloF(f)).Activate
    Sheets(tabloF(f)).Unprotect
    Set plage = Sheets(tabloF(f)).Range("C5:F5,H5:K5,M5:P5,C15:F15,H15:K15,M15:P15,C21:F21,H21:K21,M21:P21")
    plage.Interior.Color = macouleur
    Sheets(tabloF(f)).Protect
    Next f
    Sheets(tabloF(0)).Activate
    End Sub

    ------------------------------------------------------------------------------------------------
    La deuxième qui reste très utile car il suffit de la coupler avec une autre Macro "Protection/Déprtotection en l'appelant ,

    Donc d'abord la Macro Color (comme indiquer dans ma demande plus haut),
    Puis insérer la commande suite :

    Sub DeproColorProt()

    Call DEPROTECTION 'macro deprotection
    Call ColorCadre ' macro couleur cadre
    Call PROTECTION ' macro protection
    End Sub

    C'est celle que je préfère, elle reste simple.
    Bonne journée.
    0