Imbrication de plusieurs macro

Bonjour,

je cherche à faire une macro qui, si la valeur "S01" est présente dans une cellule précise (ici N1) :

  • enlève la protection par mdp sur toutes les feuilles du classeur
  • sélectionne certaines cellules bien précises pour les déverrouiller
  • y supprimer le contenu
  • remet la protection par mdp sur l'ensemble des feuilles du classeur (tout en laissant ces cellules déverouiller, les rendant ainsi modifiable en cas de S01 en N1 donc).

Alors j'ai bricolé a partir de marco que j'utilise et l'enregistrement d'Excel mais ça ne marche pas.

Pourriez-vous me corrier s'il vous plait ?

Je vous remercie.

'Si S01 est présent en N1
Sub creation_semaine()
If Range("N1") <> "S01" Then
End If

' Déprotection automatique de toutes les feuilles d'un classeur
 Dim nombre As Integer
 nombre = ActiveWorkbook.Sheets.Count
 Application.ScreenUpdating = False
 For i = 1 To nombre
 Worksheets(i).Unprotect Password = "test"
 Next i

' Selection des cellules a deproteger et a vider

    Range("C7:C8").Select
    Selection.Locked = False
    Selection.FormulaHidden = False
    Selection.ClearContents

 ' Protection automatique de toutes les feuilles d'un classeur
 Dim nombre As Integer
 nombre = ActiveWorkbook.Sheets.Count
 Application.ScreenUpdating = False
 For i = 1 To nombre
 Worksheets(i).Protect Password = "test"
 Next i
End Sub

Bonjour

Essaie ce code

'Si S01 est présent en N1
Sub creation_semaine()
    If Range("N1") = "S01" Then

        ' Déprotection automatique de toutes les feuilles d'un classeur
         Dim nombre As Integer
         nombre = ActiveWorkbook.Sheets.Count
         Application.ScreenUpdating = False
         For i = 1 To nombre
         Worksheets(i).Unprotect Password = "test"
         Next i

        ' Selection des cellules a deproteger et a vider
            Range("C7:C8").Locked = False
            Range("C7:C8").FormulaHidden = False
            Range("C7:C8").ClearContents

         ' Protection automatique de toutes les feuilles d'un classeur
         Dim nombre As Integer
         nombre = ActiveWorkbook.Sheets.Count
         Application.ScreenUpdating = False
         For i = 1 To nombre
         Worksheets(i).Protect Password = "test"
         Next i
    End If
End Sub

Après pas mal de tests, je me suis apercu qu'il fallait que je le met en "auto open" car le contenu des cellules, c'est des hyperliens. Ca permet ainsi à la macro de virer les liens sans que ceux ci ne posent probleme.

Par contre, lorsque je protege la feuille avec "test", a l'ouverture il me dit erreur 1004 sur la ligne Worksheets(i).Unprotect Password = "test"

je ne comprend pas pourquoi la.

je remet le code modifié :

Sub auto_open()

'Si S01 est présent en M1

    If Range("M1") = "S01" Then

        ' Déprotection automatique de toutes les feuilles d'un classeur
        Dim nombre As Integer
         nombre = ActiveWorkbook.Sheets.Count
         Application.ScreenUpdating = False
         For i = 1 To nombre
         Worksheets(i).Unprotect Password = "test"
         Next i

        ' Selection des cellules a deproteger et a vider
           Range("C7:C8").Locked = False
            Range("C7:C8").FormulaHidden = False
            Range("C7:C8").ClearContents

         ' Protection automatique de toutes les feuilles d'un classeur

         nombre = ActiveWorkbook.Sheets.Count
         Application.ScreenUpdating = False
         For i = 1 To nombre
         Worksheets(i).Protect Password = "test"
         Next i
    End If
End Sub

Bonjour

Essaie ce code :

Sub creation_semaine()
    If Range("N1") = "S01" Then

        ' Déprotection automatique de toutes les feuilles d'un classeur
         Dim nombre As Integer
         Set F = ActiveSheet
         nombre = ActiveWorkbook.Sheets.Count
         Application.ScreenUpdating = False
         For i = 1 To nombre

        ' Déprotection
            Worksheets(i).Unprotect Password = "test"

        ' Selection des cellules a deproteger et a vider
            Sheets(i).Range("C7:C8").Locked = False
            Sheets(i).Range("C7:C8").FormulaHidden = False
            Sheets(i).Range("C7:C8").ClearContents

         ' Protection automatique de toutes les feuilles d'un classeur
            Worksheets(i).Select
            ActiveSheet.Protect Password = "test"
         Next i
         F.Select
    End If
End Sub

Bye !

J'utilise cette macro pour proteger mes classeurs :

Sub Protéger()
' Protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
Dim Motdepasse As String
Motdepasse = InputBox("Entrer le mot de passe :", "Mettre la protection sur toutes les feuilles", "")
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:=Motdepasse
Next i
End Sub

et ca me donne toujours cette erreur : Worksheets(i).Unprotect Password = "test"

Y'a un rapport avec ?

Bonjour

Pour la protection ( ainsi que pour la déprotection) la syntaxe est

Worksheets(i).Unprotect Password:= "test"
ActiveSheet.Protect Password:= "test"

Erreur assez courante : Combien de fois je l'ai faite

Je test !

Ok, ca fonctionne mais la macro que j'utilise déjà en auto_open posse probleme.

je continue de tester avant de revenir ici !

Sub auto_open()
     If Range("M1") = "S01" Then

        ' Déprotection automatique de toutes les feuilles d'un classeur
        Dim nombre As Integer
         Set F = ActiveSheet
         nombre = ActiveWorkbook.Sheets.Count
         Application.ScreenUpdating = False
         For i = 1 To nombre

        ' Déprotection
           Worksheets(i).Unprotect Password:="test"

        ' Selection des cellules a deproteger et a vider
           Sheets(i).Range("C7:C8").Locked = False
            Sheets(i).Range("C7:C8").FormulaHidden = False
            Sheets(i).Range("C7:C8").ClearContents

         ' Protection automatique de toutes les feuilles d'un classeur
           Worksheets(i).Protect Password:="test"
         Next i
         F.Select
    End If
End Sub

Merde, je viens de m'apercoir d'une ÉNORME erreur, j'ai complètement oublié que lorsqu'une feuille est protégée, les macros n'y fonctionnent pas, j'ai complètement mis de cote cette EVIDENCE. Et du coup, je suis VRAIMENT dedans....

Je n'arrive pas a faire en sorte qu'a l'ouverture du classeur, la macro lance de la dé-protection de toutes les feuilles, applique ma macro de rechercher/remplacer puis reverrouille tout. Ca bloque

Sub auto_open()

        ' Déprotection automatique de toutes les feuilles d'un classeur
       Dim nombre As Integer
         Set F = ActiveSheet
         nombre = ActiveWorkbook.Sheets.Count
         Application.ScreenUpdating = False
         For i = 1 To nombre

        ' Déprotection
          Worksheets(i).Unprotect Password:="test"

        'Macro pour (STOCK N-1) via semaine precedente
        Cells.Replace What:="2015\S01", Replacement:=Sheets("calendrier").Range("G14").Value, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

         ' Protection automatique de toutes les feuilles d'un classeur
          Worksheets(i).Protect Password:="test"
         Next i

End Sub

J'ai essayé de mélanger celle que vous m'avez aidé a faire et la mienne mais non, c'est pas bon. Il faut absolument que celle-ci fonctionne afin d'actualiser mes fichiers d'une année sur l'autre mais j'ai oublié cette foutue protection qui empeche toutes sorties de modifs (je travaille en mode non protégé). Je suis en panique totale là !!!

Bonjour

Tes feuilles sont dé-protégés et protégées au fur et à mesure de l'avancement de la macro

Non ca me donne ces erreurs :

une idée?

sans titre sans titre2

Bonjour

Avec des images pas évident de vérifier des variables,de voir quelle page est concernée etc ....

Ton fichier est indispensable dans ce cas

Car moi je ne vois pas, mais ce n'est que moi

Oui, je comprends tout à fait.

Je te fais un RAR ci-joint. Il faut le décompresser à la racine du disque dur (de manière à obtenir la bonne arborescence "C:\ZONE06"), le mot de passe employé est toujours "test"

Comme tu le verras, ce sont les cellules vertes qui sont concernées par ma macro d’actualisation (ce qui permet de dupliquer les feuilles d'une année sur l'autre), et vu que ce sont des cellules avec des liens, je dois les verrouiller pour eviter les agents ne les suppriment!

C'est pour ca que j'ai besoin de la macro qui a l'ouverture de la feuille, déprotège->autorise ma macro a actualiser-> puis reprotége toutes les feuilles.

Concernant la macro dont je parle au début de ce topic, si tu regardes bien, les cellules vertes appellent le classeur de la semaine précédente. Hors la première semaine de l'année, n'a pas de semaine précédente (il faut remonter a l'année N-1),

C'est pourquoi, je souhaite déprotèger les feuilles-> déverrouille les cellules vertes-> y supprimer le contenu->reprotege les feuilles. Comme ca en S01 les agents notent eux même le stock.

edit : je modifie le fichier RAR, il manquait un repertoire.

6zone06.rar (287.42 Ko)

Bonjour

Bizarre bizarre

C'est le fait d'être masqué qui empêche la protection, why - I don't know

En mode pas-à-pas (avec une petite modification cela fonctionnait, mais en mode normal cela plantait)

Testes ces macros car il veut mettre à jour des liens que je n'ai pas

Sub auto_open()
  ' Déprotection automatique de toutes les feuilles d'un classeur
Dim Nombre As Integer

  Set F = ActiveSheet
  Nombre = ActiveWorkbook.Sheets.Count
  Application.ScreenUpdating = False
  Oteprotection
  For I = 1 To Nombre

    'Macro pour (STOCK N-1) via semaine precedente
    Cells.Replace What:="2015\S01", Replacement:=Sheets("calendrier").Range("G14").Value, LookAt:=xlPart, _
                  SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                  ReplaceFormat:=False

  Next I
  Protection
End Sub

Sub Oteprotection()
Dim I As Integer, Nombre As Integer

  Nombre = ActiveWorkbook.Sheets.Count
  Application.ScreenUpdating = False

  For I = 1 To Nombre
    Worksheets(I).Unprotect Password:="test"
  Next I
End Sub

Sub Protection()
Dim Cache As Integer
Dim I As Integer, Nombre As Integer

  Nombre = ActiveWorkbook.Sheets.Count
  Application.ScreenUpdating = False

  For I = 1 To Nombre
    Cache = Sheets(I).Visible
    Sheets(I).Visible = xlSheetVisible
    Worksheets(I).Protect Password:="test"
    Sheets(I).Visible = Cache
  Next I
End Sub

Bonsoir

Impossible de fermer l'oeil, cette histoire me stresse!

J'ai donc pris tes codes, Excel m'a demandé de corriger certains morceaux, voici ce que cela donne :

Sub auto_open()
  ' Déprotection automatique de toutes les feuilles d'un classeur
Dim I As Integer, Nombre As Integer

  Nombre = ActiveWorkbook.Sheets.Count
  Application.ScreenUpdating = False

  For I = 1 To Nombre
    Worksheets(I).Unprotect Password:="test"
  Next I

    'Macro pour (STOCK N-1) via semaine precedente
   Cells.Replace What:="2015\S01", Replacement:=Sheets("calendrier").Range("G14").Value, LookAt:=xlPart, _
                  SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                  ReplaceFormat:=False

  Dim Cache As Integer

  Nombre = ActiveWorkbook.Sheets.Count
  Application.ScreenUpdating = False

  For I = 1 To Nombre
    Cache = Sheets(I).Visible
    Sheets(I).Visible = xlSheetVisible
    Worksheets(I).Protect Password:="test"
    Sheets(I).Visible = Cache
  Next I
End Sub

Et ça semble fonctionner. Je suis trop K.O. pour approfondir le niveau de fonctionnement, je testerai à fond en me levant.

Si j'ai bien compris ce que tu as dis, les lignes cachées bloqueraient le fonctionnement prévu de la macro? C'est ca ?

En tout cas, merci mille fois, j'ai failli faire une attaque en me rendant compte de cet oublie majeur !!!

J'en ai profiter pour bricoler la macro en y ajoutant ce dont j'avais besoin en début de topic, ca donne ca

Sub auto_open()
  ' Déprotection automatique de toutes les feuilles d'un classeur
   Dim I As Integer, Nombre As Integer
   Nombre = ActiveWorkbook.Sheets.Count
   Application.ScreenUpdating = False
    For I = 1 To Nombre
    Worksheets(I).Unprotect Password:="test"
  Next I

   'Si on se trouve en S01 alors on deverouille ces cellules puis on y supprime le contenu
  If Range("M1") = "S01" Then

    Range("C9:C20").Select
    Selection.Locked = False
    Selection.FormulaHidden = False
    Selection.ClearContents
    End If

    'Macro pour (STOCK N-1) via semaine precedente
     Cells.Replace What:="2015\S01", Replacement:=Sheets("calendrier").Range("G14").Value, LookAt:=xlPart, _
                  SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                  ReplaceFormat:=False

     ' Déprotection automatique de toutes les feuilles d'un classeur
  Dim Cache As Integer
  Nombre = ActiveWorkbook.Sheets.Count
  Application.ScreenUpdating = False
  For I = 1 To Nombre
    Cache = Sheets(I).Visible
    Sheets(I).Visible = xlSheetVisible
    Worksheets(I).Protect Password:="test"
    Sheets(I).Visible = Cache
  Next I
End Sub

J'ai rapidement testé, ça a l'air de fonctionner mais je peux me tromper faute de temps pour la tester comme il faut.

Est ce que tu y vois quelquechose qui ne devrait pas s'y trouver? Est-elle améliorable ?

Merci encore!

ps : j'ai uploadé le fichier joint d'hier soir, m’étant aperçu que le répertoire n-1 était manquant mais tu l'avais déjà téléchargé!

Bonjour

Kev a écrit :

Si j'ai bien compris ce que tu as dis, les lignes cachées bloqueraient le fonctionnement prévu de la macro? C'est ca ?

Pas les lignes cachées mais les feuilles

Pourquoi dans cette macro tu ne fais pas e remplacement dans toutes les feuilles l ?

Je ne comprends non plus le test sur M1, de quelle page, si tu as enregistré le fichier en ayant une page (A8 par exemple) à l'ouverture le test de la cellule se fera sur cette page

Pourquoi C8:C20 ?

Et de quelle page ?

Tout est peut-être normal mais je trouve ça un peu bizarre

Pourquoi dans cette macro tu ne fais pas e remplacement dans toutes les feuilles l ?

+++ parceque les cellules a vider se trouvent sur la feuille "AM"

Je ne comprends non plus le test sur M1, de quelle page, si tu as enregistré le fichier en ayant une page (A8 par exemple) à l'ouverture le test de la cellule se fera sur cette page

+++ Ah bien vu, j'avais laissé passer ce détails, il faut que ce soit sur l'onglet "AM" (vu pour un autre département ou la c'est sur plusieurs onglets a cause de leur organisation). Comment fait-on pour spécifier que cela ne se fasse que sur cet onglet ??

Pourquoi C8:C20 ?

+++ car C8:C20 correspondant au stock N-1. Pour la semaine 2 à la 52e de l'année, ca ne pose pas de problème, puisque la semaine précédente existe. Mais pour la première semaine de l'année, il n'y a pas de semaine précédente, il faut remonter à la semaine 52 de l'année précédente. Pour des raisons informatiques du taf, je ne peux pas remonter au répertoire de l'année N-1, donc il faut y virer les liens "stock semaine -1" pour la semaine 1.

Et comme on vire les liens, il faut autoriser du coup une saisie manuelle par les agents, tout en protégeant le reste du document.

C'est se faire des noeuds au cerveau mais j'ai tres peu de marge de manoeuvre (grosse restriction dans le cahier des charges).

Bonjour

Kev a écrit :

parceque les cellules a vider se trouvent sur la feuille "AM"

Oui alors

Pourquoi déprotéger/protéger toutes les feuilles - Seulement la page AM aurait suffit ?

Banzai64 a écrit :

Pourquoi C8:C20 ?

Et de quelle page ?

Pourquoi pas C8:C36 ?

Tu ne fais que sur la page AM cette Recherche/Remplacement - exact ?

Ce n'est juste que pour mon information personnelle, tant que pour toi c'est bien le résultat que tu attendais

Dans cette macro la Recherche/Remplacement ne se fait que dans la page AM et seulement si en M1 il y a S01

On déprotège/protège toutes les pages parce que ?

Sub auto_open()
Dim I As Integer, Nombre As Integer
Dim Cache As Integer

  Nombre = ActiveWorkbook.Sheets.Count
  Application.ScreenUpdating = False

  ' Déprotection automatique de toutes les feuilles d'un classeur
  For I = 1 To Nombre
    Worksheets(I).Unprotect Password:="test"
  Next I

   'Si on se trouve en S01 alors on deverouille ces cellules puis on y supprime le contenu
   With Sheets("AM")
    If .Range("M1") = "S01" Then
      With .Range("C9:C20")
        .Locked = False
        .FormulaHidden = False
        .ClearContents
      End With
    End If

    'Macro pour (STOCK N-1) via semaine precedente
    .Cells.Replace What:="2015\S01", Replacement:=Sheets("calendrier").Range("G14").Value, LookAt:=xlPart, _
                  SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                  ReplaceFormat:=False

   End With

  ' Protection automatique de toutes les feuilles d'un classeur
  For I = 1 To Nombre
    Cache = Sheets(I).Visible
    Sheets(I).Visible = xlSheetVisible
    Worksheets(I).Protect Password:="test"
    Sheets(I).Visible = Cache
  Next I
End Sub
Banzai64 a écrit :

Bonjour

Kev a écrit :

parceque les cellules a vider se trouvent sur la feuille "AM"

Oui alors

Pourquoi déprotéger/protéger toutes les feuilles - Seulement la page AM aurait suffit ?

+++ Alors les fichiers du repertoire "RT", oui tu as raison, car le stock ne se trouve que sur la fiche AM et rien sur les fiches Agents. MAIS, pour les fiches situées dans le répertoire "PREV", il y a un stock sur chaque fiche agent.

Du coup cette macro va me servir pour d'autres fiches et ne sachant pas vraiment coder du VBA, je me dis que partir sur une macro "universelle" sur certaines fonction est la meilleure solution (et ca évite de demander aux gens des forums de m'aider).

Banzai64 a écrit :

Pourquoi C8:C20 ?

Et de quelle page ?

Pourquoi pas C8:C36 ?

+++ Là aussi tu as raison, c’était juste pour un test rapide. J'ai effectivement corrigé ensuite lorsque j'ai vu quela macro fonctionnait.

Tu ne fais que sur la page AM cette Recherche/Remplacement - exact ?

Ce n'est juste que pour mon information personnelle, tant que pour toi c'est bien le résultat que tu attendais

Dans cette macro la Recherche/Remplacement ne se fait que dans la page AM et seulement si en M1 il y a S01

On déprotège/protège toutes les pages parce que ?

+++ Ah, j'ai répondu plus haut! Parceque sur d'autres fiches, les agents ont leur propre stock d'une semaine à l'autre. D'autant plus que pour la direction j'ai des classeurs excel qui eux ont beaucoup d'hyperliens sur différents onglets.

Sub auto_open()
Dim I As Integer, Nombre As Integer
Dim Cache As Integer

  Nombre = ActiveWorkbook.Sheets.Count
  Application.ScreenUpdating = False

  ' Déprotection automatique de toutes les feuilles d'un classeur
  For I = 1 To Nombre
    Worksheets(I).Unprotect Password:="test"
  Next I

   'Si on se trouve en S01 alors on deverouille ces cellules puis on y supprime le contenu
   With Sheets("AM")
    If .Range("M1") = "S01" Then
      With .Range("C9:C20")
        .Locked = False
        .FormulaHidden = False
        .ClearContents
      End With
    End If

    'Macro pour (STOCK N-1) via semaine precedente
    .Cells.Replace What:="2015\S01", Replacement:=Sheets("calendrier").Range("G14").Value, LookAt:=xlPart, _
                  SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                  ReplaceFormat:=False

   End With

  ' Protection automatique de toutes les feuilles d'un classeur
  For I = 1 To Nombre
    Cache = Sheets(I).Visible
    Sheets(I).Visible = xlSheetVisible
    Worksheets(I).Protect Password:="test"
    Sheets(I).Visible = Cache
  Next I
End Sub

Si je veux y ajouter plus d'onglet, je sépare par un ; non, comme ceci :

With Sheets("AM";"A1") ?

et si je veux que sur le classeur "PREVOYANCE", l'onglet STOCK, AM et A1 aie leur propre configuration, je refait 3 blocs différents genre comme ceci ? :

 'Si on se trouve en S01 alors on deverouille ces cellules puis on y supprime le contenu pour l'onglet STOCK
   With Sheets("STOCK")
    If .Range("M1") = "S01" Then
      With .Range("C9:C20")
        .Locked = False
        .FormulaHidden = False
        .ClearContents
      End With
    End If

 'Si on se trouve en S01 alors on deverouille ces cellules puis on y supprime le contenu pour l'onglet AM
   With Sheets("AM")
    If .Range("M1") = "S01" Then
      With .Range("C19:C80")
        .Locked = False
        .FormulaHidden = False
        .ClearContents
      End With
    End If

 'Si on se trouve en S01 alors on deverouille ces cellules puis on y supprime le contenu de l'onglet A1
   With Sheets("A1")
    If .Range("M1") = "S01" Then
      With .Range("B20:B44")
        .Locked = False
        .FormulaHidden = False
        .ClearContents
      End With
    End If

Je peux ajouter ce genre de partie comme ceci ?

Bonjour

Kev a écrit :

Si je veux y ajouter plus d'onglet, je sépare par un ; non, comme ceci :

With Sheets("AM";"A1") ?

Non remplaces la partie correspondante par celle-ci (non testé)

Dim Ws As Worksheet
   'Si on se trouve en S01 alors on deverouille ces cellules puis on y supprime le contenu
   For Each Ws In Sheets(Array("AM", "M1"))
    If Ws.Range("M1") = "S01" Then
      With Ws.Range("C8:C20")
        .Locked = False
        .FormulaHidden = False
        .ClearContents
      End With
    End If

    'Macro pour (STOCK N-1) via semaine precedente
    Ws.Cells.Replace What:="2015\S01", Replacement:=Sheets("calendrier").Range("G14").Value, LookAt:=xlPart, _
                  SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                  ReplaceFormat:=False

   Next Ws
Kev a écrit :

et si je veux que sur le classeur "PREVOYANCE", l'onglet STOCK, AM et A1 aie leur propre configuration, je refait 3 blocs différents genre comme ceci ?

Ok cela n'est pas mal

Top, t'as macro marche sauf qu'Excel a voulu que je rajoute un End With tout à la fin (je trouve ca étrange)

Sub auto_open()
  ' Déprotection automatique de toutes les feuilles d'un classeur
   Dim I As Integer, Nombre As Integer
   Nombre = ActiveWorkbook.Sheets.Count
   Application.ScreenUpdating = False
    For I = 1 To Nombre
    Worksheets(I).Unprotect Password:="test"
  Next I

 'Si on se trouve en S01 alors on deverouille ces cellules puis on y supprime le contenu
  With Sheets("AM")
    If .Range("M1") = "S01" Then
      With .Range("C9:C20")
        .Locked = False
        .FormulaHidden = False
        .ClearContents
      End With
    End If

    'Macro pour (STOCK N-1) via semaine precedente
     Cells.Replace What:="2015\S01", Replacement:=Sheets("calendrier").Range("G14").Value, LookAt:=xlPart, _
                  SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                  ReplaceFormat:=False

     ' Déprotection automatique de toutes les feuilles d'un classeur
  Dim Cache As Integer
  Nombre = ActiveWorkbook.Sheets.Count
  Application.ScreenUpdating = False
  For I = 1 To Nombre
    Cache = Sheets(I).Visible
    Sheets(I).Visible = xlSheetVisible
    Worksheets(I).Protect Password:="test"
    Sheets(I).Visible = Cache
  Next I

End With
End Sub

Une fois le rajout effectué, ça semble fonctionner !

C'était tres bien vu le coup de l'onglet!!! Excellent, j'allais une fois de plus passer à coté de l'évidence!!!

Bon je continue mes différents tests, merci beaucoup pour ton aide, tu n'as pas idée à quel point ton aide m'a été précieuse !

Rechercher des sujets similaires à "imbrication macro"