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

cacher dossier

5 réponses
Avatar
Izmi
Bonjour ;

Est-il possible de cacher un dossier par code VBA et ne pouvoir y
acc=E9der que par code ?

Merci

5 réponses

Avatar
michdenis
Bonjour Izmi,

Tu peux masquer un classeur à partir de la barre des menus /
fenêtre / maquer

Tu peux aussi transformer ton classeur en xla. Pour se faire,
si ce classeur est ouvert, tu sélectionnes le ThisWorkbook de
ce classeur et dans la fenêtre des propriétés tu affectes à
la propriété "isaddin = True" et le classeur sera masqué,
inaccessible par l'usager à partir de l'interface de la feuille de
calcul.

Maintenant pour y avoir accès, il existe au moins 3 façons :

A ) en utilisant par exemple ce type de syntaxe :
1 ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro

2 ) Si la macro appelée est dans un module feuille du classeur
au lieu d'être dans un module Standard :

Dans la ligne de commande, tu dois insérer le nom de l'objet
"Feuille" que tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et
non de l'onglet de la feuille

Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"

B ) Tu peux passer en référence le classeur que tu veux cacher.
1 ) Sélectionne ton projet VBA et par la fenetre des propriétés
tu modifie la propriété "NAME" : "VBAProject"
par un NOM significatfif.
2 ) tu ne dois pas oublier de mettre la propriété isaddin = true
3 ) tu enregistres ton fichier
4 ) tu ouvres à partir du menu vba, outils / référence / et si le nom
que tu viens de donner n'apparaît pas, tu utilises le bouton "parcourir"
et dans l'arborescences des fichiers, tu remontes jusqu'au fichier lui-même.
5 ) tu coches de ton fichier la case avant de quitter la fenêtre des références.
Toutes tes fonctions et procédures vont être directement accesibles dans le
code de ton projet.

C ) Tu peux aussi passer ton classeur comme macro complémentaire.
c'est sensiblement la même chose qu'en 2 mais cette fois, tu utilises
le menu de la feuille de calcul / outils / macro complémentaires /
le bouton parcourir... juste qu'à ton fichier que tu coches avant de
refermer la fenêtre.
Toutes les fonctions seront accesibles directement dans la feuille de calcul.


Amuse toi bien !


Salutations!

"Izmi" a écrit dans le message de news:
Bonjour ;

Est-il possible de cacher un dossier par code VBA et ne pouvoir y
accéder que par code ?

Merci
Avatar
Izmi
Merci Michel ;

Bravo pour serviabilité.
Je ne suis pas tout à fait en état de comprendre tout ce que tu m'as
écrit, mais je constate déjà que tu parles de classeur alors que moi
je parle de dossier qui peut comprendre des classeurs excel ou des
documents word.
Alors si tu es encore éveillé, bon courage :)))
Avatar
PMO
Bonjour,

Une piste avec le code suivant

FAIRE AU PREALABLE
1) Créez un répertoire dans C: et nommez le essai
2) Créez un classeur dans c:essai et nommez le test.xls
3) Entrez des données quelconques dans ce classeur et enregistrez
4) Fermez le classeur test.xls

DANS UN AUTRE CLASSEUR copiez le code suivant
'***************************
'### Constantes à adapter ###
Const CHEMIN As String = "c:essai"
Const CLASSEUR As String = "c:essaitest.xls"
'############################

Sub masqueDir()
SetAttr CHEMIN, vbHidden
End Sub

Sub demasqueDir()
SetAttr CHEMIN, vbNormal
End Sub

Sub Acceder()
'--- Accéde au classeur qu'il ---
'--- soit caché ou non caché ---
Dim Myxls As Workbook
Set Myxls = GetObject(CLASSEUR)
Myxls.Windows(1).Visible = True
Set Myxls = Nothing
End Sub
'***************************

Les procédures masqueDir et demasqueDir font ce que leur nom
indique.

TEST
1) Lancez la procédure masqueDir. Vous pourrez vous rendre
compte, en allant dans C, que le directory "essai" est caché.
2) Lancez la procédure Acceder et le classeur "test.xls" est
affiché dans l'instance d'Excel.
3) Procédez à divers changements dans ce classeur, enregistrez
et fermez le classeur.
4) Lancez la procédure demasqueDir
5) Rendez vous dans C:essai et ouvrez le classeur "test.xls"
pour y constater les changements.

Cordialement.
--
PMO
Patrick Morange



Bonjour ;

Est-il possible de cacher un dossier par code VBA et ne pouvoir y
accéder que par code ?

Merci




Avatar
Izmi
Bonjour tout le monde ;
Bonjour Michel ;

Le code que tu m'as proposé est efficace, mais il faut pour qu'il soit
au niveau que je souhaite, que le dossier puisse être caché sans que
j'aie au préalable coché dans "option des dossiers" la case "ne pas
afficher les dossiers cachés".
Lorsque l'option "afficher tous les dossiers" est activée le code ne
cache plus le dossier.
Y aurait-il moyen de remédier à ce problème.

Merci beaucoup
Avatar
Izmi
Bonjour ;

Je crois que je me suis trompé sur le nom de l'auteur du deuxième
code. C'est PMO qui me l'a proposé et non michdenis.

Mes excuses pour les deux.