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

Bonsoir Roland

C’est excellent !
J’ai testé tous les modules sur de très gros dossiers, pas un plantage (sur une machine monocore en plus).
Le module Arborescence constitue tout ce dont j’avais besoin et répond parfaitement à mes attentes.
Il servira à indexer la totalité des dossiers d’un serveur.
Cependant, puis-je vous demander encore un peu d’aide pour adapter votre travail à mes besoins ?
Idéalement pourriez-vous :
- Simplifier la macro au seul module Arborescence (avec les liens, comme actuellement) ? (macro à exécuter en Alt-F8 seulement)
- Supprimer le message d’avertissement concernant le grand nombre de répertoires (cette seule macro sera lancée automatiquement 1X/24h)
- Ajouter un titre en ligne 1 : « Arborescence réseau » en Arial 18 Gras
- Formater toutes les lignes en Arial 10 normal NOIR
- Supprimer les soulignements des liens hypertextes
Voilà, ce sont de petites choses, pour une adaptation parfaite.
Je trouve que cette présentation à la manière de l’explorateur Windows est très claire, bravo.

Je vous remercie d’avance, mais j’espère que les haies sont taillées malgré tout.
Bonne soirée à vous et à bientôt.
 

Roland_M

XLDnaute Barbatruc
Re : Arborescence d'un dossier

re

Tes questions avec mes réponses et questions:
----------------------------------------------------
- Simplifier la macro au seul module Arborescence (avec les liens, comme actuellement) ? (macro à exécuter en Alt-F8 seulement)
> là je comprends pas très bien !? est-ce la seule macro sur l'arborescence(soit uniquement les dossiers) sans les fichiers ni autre macro ? il s'agirait donc du premier choix uniquement ?

- Supprimer le message d’avertissement concernant le grand nombre de répertoires (cette seule macro sera lancée automatiquement 1X/24h)
> Ok ! tout à fait possible ! excepté pour l'automatisme par 24h !

- Ajouter un titre en ligne 1 : « Arborescence réseau » en Arial 18 Gras
> Ok ! tout à fait possible !

- Formater toutes les lignes en Arial 10 normal NOIR
> Ok ! tout à fait possible !

- Supprimer les soulignements des liens hypertextes
> Ok ! tout à fait possible !
 
Dernière édition:

Marcaplus

XLDnaute Nouveau
Re : Arborescence d'un dossier

Cher Roland
Mes réponses à tes questions sur mes questions :eek:
1- C'est tout à fait ça, seul le module Arborescence peut être utilisé chez nous, si tu pouvais ne récupérer que le code correspondant ... Donc premier choix uniquement.
2- Suppression du message : si possible, sachant que du code supplémentaire sera ajouté pour lancer ta macro chaque matin à 6h30, de manière automatique, pour ré-indexer les dossiers chaque jour.
En réalité, la macro ne devra se lancer que dans le dossier "c:\Documents boucherie" qui contient 12000 dossiers et sous-dossiers.
3- Pour le reste, ça serait formidable.

J'ajouterai un module de recherche d'un dossier de la forme :
Recherche : -- procédure charcuterie (ex) -- avec boutons Suivant et Précédent, sur le résultat de ce qu'extrait ta macro.

Merci d'avance pour ton aide désintéressée !
A bientôt
 

Roland_M

XLDnaute Barbatruc
Re : Arborescence d'un dossier

Bonsoir à tous,

Voilà:
j'ai donc tout simplifié en un seul module que j'ai renommé 'ModuleRoland'
avec les macros nécessaires à la routine que j'ai nommée 'LoadArborescence_Marcaplus'

cette macro sera donc exécutée via les touches Alt+F8
(on peut bien entendu modifier ce nom puisqu'elle sera exécutée par Alt+F8 (à condition qu'elle reste Public !)

voir dans le module les constantes adaptables !
Code:
'                                                .
'ICI LES PARAMETRES PERSO EN CONSTANTE ADAPTABLES.
'                                                .
Public Const InclusSousRep As Variant = vbYes 'vbYes sinon mettre vbNo
Public Const SizePremiereLigne = 18 'taille caractères 1'ligne
Public Const TitrePremiereLigne$ = "Arborescence Réseau" 'titre dans la 1'ligne
Public Const RepertoireParDefaut$ = "C:\Documents\Boucherie" 'le répertoire par defaut modifiable
'ne pas modifier ci-dessous
Dim RepDeBaseObject As Object, SourceFolder As Object, SubFolder As Object, FileItem As Object


Public Sub LoadArbores_Marcaplus()
...
...

vérifier et me dire si tout est ok et comme souhaité !?
 

Pièces jointes

  • ListRepFichArboresMarcaplus.xls
    60.5 KB · Affichages: 88
Dernière édition:

Marcaplus

XLDnaute Nouveau
Re : Arborescence d'un dossier

Bonsoir Roland
Comme je te l'ai exprimé en MP, je renouvèle mes félicitations pour le travail complexe réalisé qui correspond en tout point à l'objectif initial.
J'ai déjà abusé de ton temps, mais j'ai quelques idées pour apporter d'autres fonctions.
Mais bien sûr, je comprendrai si tu t'arrêtais là !
Voilà :
1- Après test sur le serveur, le temps de génération de la liste des dossiers est très raisonnable, de l'ordre de quelques secondes.
Du coup, je me demandais s'il serait possible, avec la même routine que celle du fichier ListRepFichArboresMarcaplus.xls‎, d'ajouter les fichiers en bout de chaque ligne du dernier sous dossier :
Dossier père
Dossier fille 1 Fichier A

Fichier B

Fichier C
Ta macro est déjà écrite dans le module LoadFichiers, il s'agirait de la coller dans le module 'loadArborescence_Marcaplus'.


2- Un champ de recherche (ou plutôt un filtre) par mot-clé serait des plus utiles.
J'ai essayé de chercher une macro existante, mais rien de convaincant car ici la recherche doit être effectuée sur plusieurs colonnes.
Éventuellement, des boutons Précédent et Suivant seraient les bienvenus.
Enfin, si on pouvait récupérer avant le nom de fichier, une fois le filtre appliqué, les noms des dossiers et sous-dossiers parents du fichier, ça serait le rêve.
Mais est-ce faisable ?

De toute façon, merci et félicitations

Marcaplus
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Arborescence d'un dossier

Bonsoir,

mon état de santé ne me permet malheureusement plus de trop m'engager !
j'ai fais un AIT (début d'AVC) et la mémoire en a pris un coup !
les données sont toujours dans le disque dur mais j'ai des difficultés à les retrouver !
ça me demande beaucoup plus d'efforts ! pour le coup j'apprécie et remercie Google pour les recherches !

maintenant concernant ton problème il me semble que c'est plutôt la routine 'LoadFichiers' qui convient !
en adaptant et avec les liens aussi sur les dossiers plus un filtre !

voir déjà exemple ci-joint et me dire quoi !?
 

Pièces jointes

  • ListRepFichArboresMarcaplus2.xls
    61.5 KB · Affichages: 72
Dernière édition:

Marcaplus

XLDnaute Nouveau
Re : Arborescence d'un dossier

Cher Roland

Tout d'abord une fois de plus, un grand merci.
C'est impeccable, le but est atteint.
On peut en conclure que les neurones sont restés intacts, quel niveau !
De prim'abord, je n'avais pas vu la présentation des fichiers comme ça, mais au final ton idée est meilleure que la mienne.
C'est clair, et il est facile de rechercher un fichier en utilisant le champ de recherche du filtre.
Maintenant, je vais essayer de m'en sortir avec tout ça :
Voici mes intentions :
En Feuil1 je vais lancer ta première macro, celle avec les dossiers seuls, et ajouter un bouton pour ouvrir une boîte permettant d'effectuer une recherche sur toute la feuille.
En Feuil2 je vais lancer la macro avec les fichiers, trier par date descendante, et ajouter un bouton pour ouvrir le champ de filtre sur Nom.
Un dernier problème : le fichier ainsi généré pèse 9 Mo pour 10 000 fichiers :eek:

Le projet était compliqué au départ, mais quand je vois le résultat ...
Je te souhaite un excellent week-end, encore merci ...
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Arborescence d'un dossier

re:

voir note avec modif vars :
(E:\Documents c'est mon dossier pour les essais)

Public Const RepertoireParDefaut$ = "E:\Documents" 'REPERTOIRE à adapter(avec ou sans \ au bout il sera ajouté)
Public Const InclusSousRep As Variant = vbYes 'vbYes ou vbNo
Public Const NomFeuilArborescence$ = "Arborescence" 'nom feuil.arbo
Public Const NomFeuilFichiers$ = "Fichiers" 'nom feuil.fich
Public Const SizePremiereLigne% = 14 'pour prem.ligne
Public Const TitrePremLigArborescence$ = "Arborescence Réseau"
Public Const TitrePremLigFichier$ = "Fichiers Réseau"


remarques:
peut importe la feuille qui est en cours au moment de faire Alt+F8,
la feuille sera sélectionnée automatiquement !

ensuite, je sais pas si tu as vu, mais il y a aussi des codes feuilles !

j'attend réponse si ok à ce niveau (en version 3!)
j'ai juste fait qq essais ... je vais encore vérifier !?

EDIT: j'ai eu bien fait, petite rectification !
RE EDIT: petite amélioration rajoutée ce matin !
 

Pièces jointes

  • ListRepFichArboresMarcaplus3.xls
    79 KB · Affichages: 65
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Arborescence d'un dossier

re bonjour à tous,

suite ton message privé ...
voir ci-joint avec un cadre explications !
(version 4)
 

Pièces jointes

  • ListRepFichArboresMarcaplus4.xls
    95 KB · Affichages: 74
Dernière édition:

Marcaplus

XLDnaute Nouveau
Re : Arborescence d'un dossier

Cher Roland

Je viens de passer 1h à tout tester … tout ce qui a été fait fonctionne sans bug.
1- J’ai aussi désactivé le « ceci cache la barre » dans le module Fichiers : sans problème.
2- Curieusement, les macros s’exécutent un peu plus rapidement.
Le fichier ainsi généré (en supprimant les liens sur les fichiers, mais comme tu l’as fait, en autorisant le lien sur le dossier-père en colonne D) pèse exactement la moitié.
J’ai eu une idée pour alléger au maximum :
Ajouter un bouton « Lien » sur chaque ligne du module Fichiers, avec toujours le même code du type :
OnClick(button)=hypertext(TEXTE($D2)
Ce qui supprimerait dans le fichier la totalité des liens hypertextes, qui seraient créés sur demande.
Reste à savoir si c’est faisable en VBA …
3- Pour le filtre de recherche, serait-il possible d’ouvrir automatiquement le filtre comme ceci :
Exemple filtre déroulé.jpg
… dès l’ouverture dès l’accès à la feuille Fichiers ?

4- Dans l’onglet Arborescence, as-tu une idée pour effectuer simplement une recherche (par exemple un filtre) sur le nom des dossiers/sous-dossiers ?

Merci pour ta patience, je crois que nous nous sommes passionnés tous deux pour ce travail !
Bon dimanche sous le soleil !
 

Roland_M

XLDnaute Barbatruc
Re : Arborescence d'un dossier

re

juste une question !?
Est-ce bien la version 4 que je viens de mettre en ligne !?

sinon j'ai une idée qui pourrait tout simplifier concernant la feuille fichiers sans aucun lien !
un truc du genre, que je vais peaufiner pour les fichiers et chemins . . .
exemple:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Col = Target.Column: Lig = Target.Row
If Col = 4 Then '(D)chemin
ActiveSheet.Hyperlinks.Add Anchor:=Cells(Lig, Col), Address:=Target.Value
End If
End Sub

et pour supprimer tout lien créé et inutile il y a la routine quu supprime tout !
 
Dernière édition:

Marcaplus

XLDnaute Nouveau
Re : Arborescence d'un dossier

Oui, bien sûr, je suis parti de la version 4 (fichier ListRepFichArboresMarcaplus4.xls).
Ais-je dit quelque chose qui t'en fait douter ? Peut-être n'ais-je pas tout compris ?
J'ai gardé toutes les versions depuis le début !
J'ai vu ton code : en gros s'il fonctionne, ça divise le poids du fichier par 10 ou 20 ... sans supprimer de fonctions.
Excellent ! A plus ...
 

Discussions similaires