Microsoft 365 Afficher et débloquer un onglet masqué et protégé pour faire la macro

  • Initiateur de la discussion Initiateur de la discussion MOA_Excel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MOA_Excel

XLDnaute Nouveau
Bonjour !

Malgré mes recherches et tentatives de codage, je n'arrive pas à faire fonctionner les codes liés à l'affichage/masque et "déprotection"/protection des onglets

Ainsi, auriez-vous svp l'amabilité de m'aider à compléter le code ci-dessous afin de me permettre de :

1 - Afficher l'onglet "CONFIDENTIEL1" qui est masqué et protégé
2 - Masquer et protéger à nouveau l'onglet "CONFIDENTIEL1" à l'issue de la macro

Comme vous le verrez dans le code ci-dessous, la macro permet de copier un onglet d'un fichier dans un autre fichier créé pour l'occasion et enregistré
Je vous remercie par avance de votre aide !

Bien cordialement
JA

Sub GENERER_NOUVEAU_FICHIER_IMPORT_CLIENT()
Dim ChDir As String
Dim nmFich As String

ChDir = "Chemin d'accès confidentiel"
nmFich = Sheets("Confidentiel0").Range("X29").Value & ".xlsx"

Sheets("CONFIDENTIEL1").Copy
Range("A1").CurrentRegion.Copy

Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

ActiveWorkbook.SaveAs Filename:=ChDir & nmFich _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close

End Sub
 
Solution
Re
Plutôt que prévu !!
J'ai plus simple pour le résultat que tu m'as présenté au #6
En fait tu veux prendre les données de Feuil2 pour les enregistrer dans un nouveau fichier nommé par la cellule C8 oui ?
en Vba pas besoin de masquer / cacher seul Protect et unpro.
Conseil : évite de nommer des variables avec des mots clé de VBA > ChDir en est un !!
Bonjour
T'as pas dû bien cherché ? .. rien de compliqué
Sheets("Confidentiel0").visible= true
Sheets("Confidentiel0").unprotect
et l'inverse
Sheets("Confidentiel0"). Protect Password:="***" si t'as un Mdp
Sheets("Confidentiel0").visible= false

Un bout de fichier aurait été plus judiciable car on peut tester la solution !!!
 
Bonjour
T'as pas dû bien cherché ? .. rien de compliqué
Sheets("Confidentiel0").visible= true
Sheets("Confidentiel0").unprotect
et l'inverse
Sheets("Confidentiel0"). Protect Password:="***" si t'as un Mdp
Sheets("Confidentiel0").visible= false

Un bout de fichier aurait été plus judiciable car on peut tester la solution !!!
Bonjour,

Merci de votre message et le temps consacré à mon post.
Je veux bien vous croire sur la facilité du codage, mais je n'ai pas le niveau requis, raison pour laquelle je demande modestement de l'aide

J'ai en effet tenté de coder de cette manière, mais il y a quelque chose que je fais mal puisque la macro ne s'exécute pas correctement

Ci-joint un fichier de test pour me montrer cette fois-ci davantage judicieux*

Merci par avance de votre aide
Bien cordialement
JA
 

Pièces jointes

oui yups !! j'ai vu après
Bon vite fait , je reviens vers 17h !!
donc ce qui ne va pas c'est ton copy special paste
Je ne vois pas ce que tu veux faire , COPY de A1 ... mais ensuite paste en A1 ?? de quelle feuille ?
Tu es dans un module donc il faut préciser l'onglet à chaque fois !!
Déjà une erreur en moins en faisant :
Sheets("Feuil2").Range("A1").CurrentRegion.Copy
supprimer le : Sheets("Feuil2").copy
 
oui yups !! j'ai vu après
Bon vite fait , je reviens vers 17h !!
donc ce qui ne va pas c'est ton copy special paste
Je ne vois pas ce que tu veux faire , COPY de A1 ... mais ensuite paste en A1 ?? de quelle feuille ?
Tu es dans un module donc il faut préciser l'onglet à chaque fois !!
Déjà une erreur en moins en faisant :
Sheets("Feuil2").Range("A1").CurrentRegion.Copy
supprimer le : Sheets("Feuil2").copy
Merci à nouveau pour la réponse

Ci-joint le fichier avec le code exact qui me permet d'exécuter la macro et également ci-joint le fichier qui est créé et sauvegardé automatiquement (le seul truc modifié dans le code est mon nom que j'ai remplacé par "Nom_utilisateur")

Merci par avance. Aucun pb pour 17h, si je trouve une solution grâce à vous d'ici cette fin d'aprem ça sera déjà top !!
Bien cordialement
JA
 

Pièces jointes

Re bonjour,

Après mes différente recherches et différentes aides, j'ai obtenu ce code :

VB:
Sub GENERER_NOUVEAU_FICHIER_IMPORT_CLIENT()
Dim ChDir As String, nmFich As String
ChDir = "CHEMIN CONFIDENTIEL"
nmFich = Sheets("Confidentiel0").Range("X29").Value & ".xlsx"
With ThisWorkbook
    AfficheDebloque .Sheets("Confidentiel1"), "MDP"
    .Sheets("Confidentiel1").Copy
    With ActiveWorkbook
        .Sheets(1).Range("A1:DC10000").Value = .Sheets(1).Range("A1:DC10000").Value
        'application.displayalerts = false 'si besoin
        .SaveAs Filename:=ChDir & nmFich, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        'application.displayalerts = true
        .Close
    End With
    CacheBloque .Sheets("Confidentiel1"), "MDP"
End With
End Sub

Sub AfficheDebloque(Feuille As Worksheet, Optional Password As String)
With Feuille
    .Unprotect Password
    .Visible = True
End With
End Sub

Sub CacheBloque(Feuille As Worksheet, Optional Password As String)
With Feuille
    .Visible = False
    .Protect Password
End With
End Sub

Merci pour le temps que vous avez consacré pour m'aider
Bien cordialement
JA
 
Re
Plutôt que prévu !!
J'ai plus simple pour le résultat que tu m'as présenté au #6
En fait tu veux prendre les données de Feuil2 pour les enregistrer dans un nouveau fichier nommé par la cellule C8 oui ?
en Vba pas besoin de masquer / cacher seul Protect et unpro.
Conseil : évite de nommer des variables avec des mots clé de VBA > ChDir en est un !!
 

Pièces jointes

Re
Plutôt que prévu !!
J'ai plus simple pour le résultat que tu m'as présenté au #6
En fait tu veux prendre les données de Feuil2 pour les enregistrer dans un nouveau fichier nommé par la cellule C8 oui ?
en Vba pas besoin de masquer / cacher seul Protect et unpro.
Conseil : évite de nommer des variables avec des mots clé de VBA > ChDir en est un !!
Très propre, j'ai modifié avec mes infos et ça marche
Merci pour la macro !
A bientôt sur le forum
Bien cordialement
JA
 
De rien ; Tu étais parti sur mauvaise piste
Je viens de remettre le fichier actualisé au #8
le screenupdating permet de ne pas voir les étapes intermédiaires surtout quand on passe de feuille en feuille ou active autre classeur , cel évite les "Flash"
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour