Parcourir fichiers dossier test si lecture seule
Résolu
cycytoulouse
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaite demander à ma macro de parcourir tous les Fichiers XL d'un dossier (il n'y a que des fichiers excel dans ce dossier ) afin de savoir s'il y en a un ou plus qui sont en lecture seule. S'il y en a en lecture seule alors affiche les dans un message. J'aimerais aussi savoir s'il est possible de faire ce test sans ouvrir le dit fichier afin de gagner du temps de traitement.
Merci encore pour votre aide, et désolé si la question parait niaise, mais je ne suis pas trés bon en VBA...
Je souhaite demander à ma macro de parcourir tous les Fichiers XL d'un dossier (il n'y a que des fichiers excel dans ce dossier ) afin de savoir s'il y en a un ou plus qui sont en lecture seule. S'il y en a en lecture seule alors affiche les dans un message. J'aimerais aussi savoir s'il est possible de faire ce test sans ouvrir le dit fichier afin de gagner du temps de traitement.
Rep = "K:\GVA\P1\P1O\P1O_All\Marketing\" Fichier = Dir(Rep) Do While Fichier <> "" si le fichier est en cours d'utilisation par qq'un d'autre alors dis le moi MsgBox Fichier & "est déjà ouvert" Fichier = Dir Loop
Merci encore pour votre aide, et désolé si la question parait niaise, mais je ne suis pas trés bon en VBA...
A voir également:
- Parcourir fichiers dossier test si lecture seule
- Test performance pc - Guide
- Dossier appdata - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test steam deck oled - Guide
- Test composant pc - Guide
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, ne confonds-tu pas "en lecture seule" et "en cours d'utilisation par qq'un d'autre"?
peux-tu clarifier?
peux-tu clarifier?
Bonjour,
pour parcourir un répertoire:
https://silkyroad.developpez.com/vba/boucles/#LVI
pour vérifier si un classeur est ouvert
https://excel-malin.com/codes-sources-vba/vba-verifier-si-un-classeur-est-ouvert/
pour connaitre les propriétés d'un classeur (Attribut: lecture seule)
https://silkyroad.developpez.com/VBA/ProprietesClasseurs/#LIV-C
Voilà a adapter à tes besoins
pour parcourir un répertoire:
https://silkyroad.developpez.com/vba/boucles/#LVI
pour vérifier si un classeur est ouvert
https://excel-malin.com/codes-sources-vba/vba-verifier-si-un-classeur-est-ouvert/
pour connaitre les propriétés d'un classeur (Attribut: lecture seule)
https://silkyroad.developpez.com/VBA/ProprietesClasseurs/#LIV-C
Voilà a adapter à tes besoins
Une méthode efficace pour fermer tous les classeurs d'un coup c'est:
ensuite pour enlever lecture seule à tous les classeurs concernés faire une boucle sur le répertoire et mettre ceci:
mais tu ne sauras pas ceux qui étaient en lecture seule pour les rétablir.
Voilà une autre solution plus rapide à toi de voir!
@+ Le Pivert
Application.Quit
ensuite pour enlever lecture seule à tous les classeurs concernés faire une boucle sur le répertoire et mettre ceci:
F.Attributes = F.Attributes + ReadOnly = False
mais tu ne sauras pas ceux qui étaient en lecture seule pour les rétablir.
Voilà une autre solution plus rapide à toi de voir!
@+ Le Pivert
Je me suis amusé a faire ce programme en me servant des sites que je t'ai indiqués.
Les classeurs ouverts affiche VRAI en rose et les classeurs en lecture seule RA en rose aussi.
Tu pourras adapter ton code à tes besoins:
https://www.cjoint.com/c/HJflZAIS0PQ
Ne pas oublier avant la 1ère utilisation:
'Dans l'éditeur de macros (Alt+F11):
'Menu Outils
'Références
'Cochez la ligne "Microsoft Scripting RunTime".
'Cochez la ligne "Microsoft Shell Controls and Automation".
'Cluquez sur le bouton OK pour valider.
@+ Le Pivert
Les classeurs ouverts affiche VRAI en rose et les classeurs en lecture seule RA en rose aussi.
Tu pourras adapter ton code à tes besoins:
https://www.cjoint.com/c/HJflZAIS0PQ
Ne pas oublier avant la 1ère utilisation:
'Dans l'éditeur de macros (Alt+F11):
'Menu Outils
'Références
'Cochez la ligne "Microsoft Scripting RunTime".
'Cochez la ligne "Microsoft Shell Controls and Automation".
'Cluquez sur le bouton OK pour valider.
@+ Le Pivert
Ma macro devant effectuer des modifs sur differents fichiers utilisateurs , elle sera dans l'impossibilité de le faire sur un fichier en cours d'utilisation par un de ces utilisateurs. donc l objectif est de ne lancer ma macro que si tous les fichiers sont disponibles à la modification.
Pour ce faire, au lancement de ma macro, j aimerais qu elle parcours le dossier dans lequel sont stockés tous les fichiers utilisateurs afin de vérifier qu ils soient tous disponibles à la modification.
A moins que vous ayez une meilleure idée à proposer ??
Je ne sais pas si je me fais comprendre !