Arborescence d'un dossier

gawella38

XLDnaute Nouveau
Bonjour à tous,
d'avance toutes mes excuses si cette question a déjà été résolue mais j'ai eu beau fouiller le forum à grand coup de "rechercher" je n'ai pas trouvé mon bonheur.

Voici donc ce que je recherche :
Je voudrais un fichier excel qui me recréer l'arborescence d'un dossier donné.
Idéalement il y aurait :
- dossier en col A
- sous-dossier en col B, ligne suivante
- sous-sous-dossier en col C, ligne suivante
etc
- fichiers en dernière col, ligne suivante

Le must serait que chaque intitulé permette d'ouvrir le dossier ou fichier mais ne soyons pas trop gourmande, non plus.

Voila !
Si quelqu'un avait l'amabilité de se pencher sur mon cas et/ou de m'indiquer où il aurait déjà été résolu ce serait super sympa.

Merci d'avance
 

Marcaplus

XLDnaute Nouveau
Re : Arborescence d'un dossier

Effectivement, tu avais raison, l'accès approuvé au modèle d'objet du projet vba était désactivé chez moi.
Cela fonctionne comme il faut.
2 choses à voir :
- Peux-tu, dans le UF de Find, mettre en surbrillance ce qui est sélectionné (Select Arborescence ou Select Fichiers) ?
- Il faut maintenant réfléchir à ce qu'il faut faire pour que le serveur lance le xlsm LOAD seul :
Donc supprimer le message d'avertissement lors du Transfert.
- Je peux demander au DSI de l'entreprise d'ouvrir les 2 fichiers chaque matin à 7h00.
Scénario :
1- Ouverture xlsm FIND
2- Ouverture xlsm LOAD
3- A l'ouverture de LOAD :
- Lancement automatique de la macro SupprimerTOUT dans feuille Arborescence
- Lancement automatique de la macro SupprimerTOUT dans feuille Fichiers
- Lancement automatique de la macro LoadArborescence
(pause 1 minute le temps qu'elle s'exécute, ou instruction ne pas lancer étape suivante avant la fin de l'exécution de
cette routine)
- Lancement automatique de la macro LoadFichiers (pause 5 minutes ou instruction)
- Lancement automatique de la macro Transfert vers FIND
- Fermeture de LOAD sans enregistrement
- Fermeture de FIND avec enregistrement

Bon courage cher ami !
Et merci encore
 

Roland_M

XLDnaute Barbatruc
Re : Arborescence d'un dossier

re:

Marc:
- Peux-tu, dans le UF de Find, mettre en surbrillance ce qui est sélectionné (Select Arborescence ou Select Fichiers) ?
Roland:
j'y ai bien sûr pensé mais ce n'est pas fiable !
si on clique en bas de la feuille sur les onglets l'userf qui est activé n'est pas rafraichi !
j'ai essayé avec UserForm_MouseMove, lorsque la souris passe devant je peux réactualiser les infos
mais tant que l'on a pas passé devant il ne se passe rien, donc affichage non fiable !
bon, maintenant, on vois bien les titres de la feuilles ça ne devrait pas poser problème !?

pour le reste, l'automatisme de tout ceci est faisable.
mais sans confirmation c'est une source de problèmes assurés !
tout lancer à l'ouverture sans prévenir et lancer la procédure c'est hyper-scabreux !
il faut au moins une confirmation afin de stopper la procédure afin de prendre la main.
il ne serait plus possible d'ouvrir ce classeur sans que ça lance tout auto !?
ce n'est pas possible de travailler comme ça !

moi je vois ceci:
1' ouvrir en premier le classeur Find ! sinon le classeur s'arrétera !
2' ouvrir en second le classeur Load ! qui lance la procédure après confirmation !

je crée cette routine d'automatisme
j'ajoute un bouton dans l'userform qui peut aussi lancer cette procédure !
il faut garder toutes les possibilité d'accès aux fonctions manuellement !
sinon, ce serait comme les voitures de l'avenir plus de volant tout auto
si ça va dans le ravin c'est bonjour pour le grand saut !

je vais voir à tout ça car le programme n'est conçu pour ça
ensuite on n'a pas de feuille avec des paramètres sauvegardés
donc pas évident de travailler comme ça !?

je vais voir si ça me pose pas trop de problème !?
le déroulement serait, dans le classeur Load:
nettoyage des feuilles
chargement des données dans les feuilles
transfert des feuilles (c'est plus fiable copie des feuilles plutôt que des données j'ai fais l'essai)
sauvegarde du classeur Find !
et fermeture des classeurs !

faudra-il quitter excel ?
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Arborescence d'un dossier

re, bonjour à tous

ci-joint les deux classeurs !

à tester !?

j'ai réussi à mettre les boutons de feuil.select en évidence
plus le nom de la feuille dans le label qui affiche Saisie recherche ...
Saisie recherche sur Fichiers
Saisie recherche sur Arborescence
 

Pièces jointes

  • ListRepFichArboresMarcaplusLoad.xlsm
    86.7 KB · Affichages: 97
  • ListRepFichArboresMarcaplusFind.xlsm
    61.8 KB · Affichages: 92
  • ListRepFichArboresMarcaplusLoad.xlsm
    86.7 KB · Affichages: 103
  • ListRepFichArboresMarcaplusFind.xlsm
    61.8 KB · Affichages: 96
  • ListRepFichArboresMarcaplusLoad.xlsm
    86.7 KB · Affichages: 104
  • ListRepFichArboresMarcaplusFind.xlsm
    61.8 KB · Affichages: 97
Dernière édition:

Marcaplus

XLDnaute Nouveau
Re : Arborescence d'un dossier

Je viens de regarder pendant ma pause déjeûner :
Chez moi, ça fonctionne.
J'ai vu tes nombreux messages d'alerte, c'est clair.
J'ai vu que tu as épuré les macros dans Find.
Je suis d'accord avec toi quand tu dis qu'Excel n'est pas fait pour s’ouvrir et se fermer seul, c'est vrai.
Ça m'oblige à lancer régulièrement le Load et transfert auto Load>Find, mais dans le fond ce n'est pas bien grave, je le ferai régulièrement.
Je trouve aussi que c'est mieux de transférer les feuilles plutôt que d'en copier le contenu.

1-Une solution consisterait cependant à marquer un temps de pause (par exemple 30 secondes) entre l'ouverture de Load et le lancement de "Load et transfert auto". Pendant ce temps, on aurait la possibilité d'arrêter le lancement avant qu'il ne s'effectue.
2-Suite à ta question : oui il faudrait quitter Excel à la fin.
3-Le "termine par ..." ne servira pas, peux-tu le supprimer ?
4-T'est-il possible de continuer à numéroter les versions de fichiers ?
Je ne sais pas comment tu as fait pour que ça fonctionne quel que soit le dossier dans lequel se trouvent les 2 fichiers ...
5-Pourquoi ne pas demander à Load qu'il ouvre Find tout seul ? peut-être pas possible ?
Je suppose que tu as mis le TakeFocusOnClick sur True pour mettre en évidence dans la recherche l'Arborescence oules Fichiers, non ?

A plus (prends ton temps, tu es très réactif !)
 

Roland_M

XLDnaute Barbatruc
Re : Arborescence d'un dossier

re

vu tes questions, as tu bien essayé les dernières modif mises Aujourd'hui à 13h48 ?

Marc:
Une solution consisterait cependant à marquer un temps de pause (par exemple 30 secondes) entre l'ouverture de Load et le lancement de "Load et transfert auto".
Pendant ce temps, on aurait la possibilité d'arrêter le lancement avant qu'il ne s'effectue.

Roland: c'est inutile puisqu'il a la boîte de dialogue avec confirmation !? il suffit de répondre non !?


Marc:
Je suis d'accord avec toi quand tu dis qu'Excel n'est pas fait pour s’ouvrir et se fermer seul, c'est vrai.
Ça m'oblige à lancer régulièrement le Load et transfert auto Load>Find, mais dans le fond ce n'est pas bien grave ...

Roland:
mais je peux fermer un ou les deux classeurs sans fermer Excel !?
toutes les possibilités sont possible ! quel est ton choix ?
je comprends pas bien fermer pour recharger ?


Marc:
Je ne sais pas comment tu as fait pour que ça fonctionne quel que soit le dossier dans lequel se trouvent les 2 fichiers
Roland:
l'enregistrement s'effectue dans le répertoire ou se trouve le classeur au moment du chargement(le path)

Marc:
Pourquoi ne pas demander à Load qu'il ouvre Find tout seul ? peut-être pas possible ?

Roland: SI !
mais à une condition, qu'il se trouve dans le même répertoire(path) que Load !
et aussi qu'il ne change pas de nom !? c'est très délicat !
quand c'est perso c'est facile mais là ce n'est pas le cas !


Marc:
Je suppose que tu as mis le TakeFocusOnClick sur True pour mettre en évidence dans la recherche l'Arborescence ou les Fichiers

Roland: NON !
j'ai mis dans les codes feuilles Worksheet_Activate()
et j'ai créé un sub Public InitButtonSelectFeuil() dans l'userf
j'en profite de te dire que j'ai deux variables très importantes
qui se baladent dans le classeur selon l'état du déroulement !
il s'agit de: TransfertAuto et ErreurAuto as boolean
TransfertAuto = True au lancement de la procédure transfert auto
ErreurAuto = True si une erreur se produit dans les routines stratégiques !
ce qui me permet de gérer les événements !

concernant la mise en évidence dans l'userf de la feuille en cours:
quand la feuille est activée ça déclanche ceci:

Code:
Private Sub Worksheet_Activate()
If TransfertAuto = False Then
   On Error Resume Next: fm_MenuRoland.Show
   fm_MenuRoland.InitButtonSelectFeuil
   On Error GoTo 0: Err.Clear
End If
End Sub

et dans l'userf
Code:
Public Sub InitButtonSelectFeuil() '! Public appel depuis les codes feuilles
If ActiveSheet.Name = NomFeuilArbores$ Then
   ButtonSelectArbores.Font.Bold = True: ButtonSelectFichiers.Font.Bold = False
ElseIf ActiveSheet.Name = NomFeuilFichiers$ Then
   ButtonSelectArbores.Font.Bold = False: ButtonSelectFichiers.Font.Bold = True
End If
LbSaisie.Caption = "Saisie recherche sur " & ActiveSheet.Name
End Sub



Marc: Le "termine par ..." ne servira pas, peux-tu le supprimer ?
Roland: OK

Marc: T'est-il possible de continuer à numéroter les versions de fichiers ?
Roland: Ok ! comme il s'agit de deux nouveaux classeurs je commence par 1
 

Pièces jointes

  • ListRepFichArboresMarcaplus_Load1.xlsm
    83.2 KB · Affichages: 98
  • ListRepFichArboresMarcaplus_Find1.xlsm
    60.6 KB · Affichages: 98
Dernière édition:

Marcaplus

XLDnaute Nouveau
Re : Arborescence d'un dossier

Mises à jour de 13h48 : je ne pense pas, je ne l'avais pas vu et j'avais pris les premières versions du post #78.
Le temps de faire les tests et de poster le message, tu m'avais devancé.
Je repars sur du neuf en version 1 tout de suite.
Je teste puis réponds.
Merci @ plus
P.S. : méfie-toi du nombre d'affichages, ça ne fonctionne pas (j'enregistre puis ouvre chaque fichier)
 

Marcaplus

XLDnaute Nouveau
Re : Arborescence d'un dossier

1-Roland: c'est inutile puisqu'il a la boîte de dialogue avec confirmation !? il suffit de répondre non !?
Marc : effectivement, mais si on décide de lancer Load et transfert et automatique à l'ouverture de LOAD, (pour éviter l'intervention humaine, et on en est tout prêt ...), en mettant un temps de pause cela nous permet, si besoin de changement dans une des macros, d'intervenir avant le lancement de Load et transfert.

2-Tu peux faire fermer les 2 fichiers ET Excel à la fin des opérations, c'est l'idéal.

3- Vu pour les formats de fichiers. Dans ce cas, donnons-leur leur nom définitif :
FIND : Indexation des dossiers et fichiers Technical.xlsm
LOAD : Générateur d'indexation des dossiers et fichiers Technical.xlsm
Entre nous nous continuerons à parler de LOAD et FIND, c'est plus clair ainsi.
Les 2 fichiers seront hébergés dans le même dossier sur le serveur, pas de problème.

4- Dans le ButtonSelectFichiers.Font.Bold on peut peut-être ajouter Police + grande (True) ou plus petite et grisée (False) ?
C'est juste une idée comme ça ...

See you later my friend
 

Roland_M

XLDnaute Barbatruc
Re : Arborescence d'un dossier

re

Marc : effectivement, mais si on décide de lancer Load et transfert et automatique à l'ouverture de LOAD, (pour éviter l'intervention humaine, et on en est tout prêt ...),
en mettant un temps de pause cela nous permet, si besoin de changement dans une des macros, d'intervenir avant le lancement de Load et transfert.

Roland:
pour ce qui est de l'automatisme sans pouvoir prendre la main c'est porte ouverte à des catastrophes !
il y a un minimum, comme ici un seul clic ça me semble difficile de faire moins
et c'est la seule façon d'intervenir dans le classeur ne serait-ce que pour moi accéder au classeur !?

Marc:
en mettant un temps de pause cela nous permet, si besoin de changement dans une des macros, d'intervenir avant le lancement de Load et transfert.

là je comprends rien du tout !? excuse-moi !
il y a aussi une boite avec demande de confirmation !?
>>>>> si besoin de changement dans une des macros !?!?
tu voudrais qu'à chaque étape du déroulement on mette un temps de pause ?
donc quelqu'un surveille le déroulement !
dans ce cas un msgbox pour confirmer chaque étapes !?
puisqu'il il y a bien intervention humaine !?

EDIT:
en attendant j'ai mis en évidence autrement
et j'ai nommé comme ceci (pas trop long !) Est-ce ok !?
avec Technical en premier pour les retrouver dans les dossiers triés c'est mieux !

pour chargement du classeur(Find) automatique,
j'ai aussi ajouté un constante avec le nouveau nom du fichier find !
Public Const NomDuFichierFind$ = "TechnicalIndexDossiersFichiers.xlsm"
à modifier tout comme le nom du répertoire de base !
 

Pièces jointes

  • TechnicalGenerIndexDossiersFichiers.xlsm
    88.1 KB · Affichages: 92
  • TechnicalGenerIndexDossiersFichiers.xlsm
    88.1 KB · Affichages: 93
  • TechnicalGenerIndexDossiersFichiers.xlsm
    88.1 KB · Affichages: 90
  • TechnicalIndexDossiersFichiers.xlsm
    63.7 KB · Affichages: 92
  • TechnicalIndexDossiersFichiers.xlsm
    63.7 KB · Affichages: 97
  • TechnicalIndexDossiersFichiers.xlsm
    63.7 KB · Affichages: 92
Dernière édition:

Marcaplus

XLDnaute Nouveau
Re : Arborescence d'un dossier

Salut Roland
Très bien, ces nouvelles versions de 16h46 ...
Pour le temps de pause, je m'explique :
Hors de question de mettre un temps de pause ou un message à chaque étape ! Au contraire !
L'objectif que j'avais était d'annuler toute intervention humaine. En fait je suis itinérant, je vais rarement au siège, et les macros seront lancées du siège.
J'ai accès au serveur, comme tout le monde, ce qui nous permet de récupérer le FIND pour retrouver un document perdu (on passe nos journées à ça, d'où l'objectif de ce travail).
Si le LOAD se lance seul au démarrage, et qu'il exécute seul les macros vers FIND, on peut demander au serveur que tous les matins à 7h00, il lance le LAOD pour refaire un fichier FIND tout seul.
D'où ma proposition de ne pas confirmer le LOAD+TRANSFERT, et de fermer les fichiers seuls come il le fait actuellement.
Il n'y a pas de craintes pour la sécurité.
Mais en effet, dans tes tests, tu dois pouvoir avoir accès au LOAD : donc si dans la première boîte de dialogue (qui demande confirmation), tu ajoutes un temps de pause de 30 secondes, au bout desquelles le LOAD+TRANSFERT démarre, tu te laisses la possibilité d'arrêter le processus pour faire tes modifs.
J'espère avoir été plus clair cette fois.
Il faudra aussi, si tu peux, demander à LOAD qu'il ouvre FIND en premier, tout seul.
J'ai vu que tu es finalement parvenu à mettre en valeur Fichiers ou Arborescence dans FIND : félicitations !
Bonne soirée Roland

Marc
 

Roland_M

XLDnaute Barbatruc
Re : Arborescence d'un dossier

bonsoir

important ! tu dis de 16h46
mais les toutes dernières sont de 19h55 !
il faut absolument reprendre celles-ci car il y avait une erreur !

je vais voir pour mettre en 100 % auto au lancement !
avec une pause de 3 à 5 secondes qui me permettra de faire un ctrl+break pour stopper !

à tout de suite dans qq minutes !
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Arborescence d'un dossier

re

voici le classeur en auto !
au démarrage il y a une pause de 4 secondes le temps de faire ctrl+break pour stopper !
ou encore renommer le fichier Find qui doit être chargé
pour que la routine stop le processus et avoir accès au classeur !

surtout reprendre les deux classeurs !
 

Pièces jointes

  • TechnicalIndexDossiersFichiers.xlsm
    63.7 KB · Affichages: 96
  • TechnicalIndexDossiersFichiers.xlsm
    63.7 KB · Affichages: 98
  • TechnicalIndexDossiersFichiers.xlsm
    63.7 KB · Affichages: 93
  • TechnicalGenerIndexDossiersFichiers.xlsm
    88 KB · Affichages: 91
  • TechnicalGenerIndexDossiersFichiers.xlsm
    88 KB · Affichages: 94
  • TechnicalGenerIndexDossiersFichiers.xlsm
    88 KB · Affichages: 98
Dernière édition:

Marcaplus

XLDnaute Nouveau
Re : Arborescence d'un dossier

Merci Roland

J'ai testé, c'est fonctionnel à 100 %
Dernier détail pour aujourd'hui : peux-tu dire à LOAD d'ouvrir FIND avant ?
Comme ceci, un seul fichier (LOAD) à lancer automatiquement le matin ...
Merci chef !
 

Marcaplus

XLDnaute Nouveau
Re : Arborescence d'un dossier

Euh non ... ce n'est pas ce que j'ai voulu exprimer.
Je voulais n'avoir à ouvrir que le fichier LOAD : en première étape, il commencerait par m'ouvrir FIND tout seul ...
Actuellement si j'ouvre LOAD, il me réclame FIND par le message "Le classeur FIND doit être chargé!"
Je testerai à nouveau tout depuis le début demain matin.

Bonne nuit cher ami à demain !
Marc
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 897
Membres
101 833
dernier inscrit
sandra25