XL 2013 lister les fichier d'une archive dans dossier et sous dossier

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
j'avais ça dans le temps mais je ne m'en souviens plus comment on fait
je sais lister les fichiers ou dossiers enfants directs de l'archive mais je ne me souviens plus comment on liste dans les sous dossiers

est ce que qu'elqu'un aurait cela sous la main
merci d'avance
 
Solution
bon ben j'ai encore trouvé tout seul
remplacer le test if not right(fl.path,4).......
par
VB:
   If FL.Type = "Dossier de fichiers" Then ZipSearchLisT FL.Path, PartString, False
et voilà là on a un vrai test "Isfolder" pour dossier d'archive
Merci a tous

dysorthographie

XLDnaute Accro
Bonjour.
Tu as suffisamment répondus à ce genre de question pour figurer dans les moteurs de recherche !

Rassures moi c'est ton PC qui est alzheimer ou une rupture d'anévrisme pas toi?


 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Patrick, dysorthographie, le Forum :)
@patrick : voici quelques fichiers (y en a 2 qui fonstionnent pas). J'espère que tu y trouvera ton bonheur.
Sinon, j'en ai peut-être d'autres mais va me falloir chercher lol,
Amicalement,
lionel :)
 

Pièces jointes

  • fichiers liste2.xlsm
    73.9 KB · Affichages: 10
  • fichiers_lister.xlsm
    30.7 KB · Affichages: 11
  • liste dossier fichier DIR récursive 2021 dudu2 patricktoulon.xlsm
    75.7 KB · Affichages: 7
  • LISTE_REPFichArborescence_V3.xlsm
    54 KB · Affichages: 8
  • Fichiers_yeahou.xlsm
    23.2 KB · Affichages: 6
  • ListerLesFichiers.xlsm
    39.4 KB · Affichages: 11

patricktoulon

XLDnaute Barbatruc
re
merci a tous
lionel non ce n'est pas ça

kiki29 je l'ai vu celui là
si je ne me trompe pas il y a extraction dans un folder et un list dans ce folder
c'est pas ce modele que j'avais
je ne me rapelle plus comment on fait pour les sub item
puré je regrette de l'avoir perdu ce fichier j'avais tant galérer a le faire
d'autant plus que j'avais trouver ça dans les vieux trux vba et vbs
je sais meme plus si je vais le retrouver
 

patricktoulon

XLDnaute Barbatruc
bon finalement je me suis refait une fonction tout seul
c'est une fonction récursive qui peut
  1. lister Tout les dossiers fichiers d'une archive
  2. lister des fichiers avec une partie du nom et ou avec une extension
  3. chercher un dossier dont on connais le nom mais on sait pss ou il est
  4. lister tout les fichier d'un dossier dont on connait le nom mais on sait pas ou il est
pour lancer un appel recursif j'utilise le test ".*" sur le right(4) du path pour etre honnete c'est moyen
si vous avez des idées je suis preneur
je vous la donne en primeur
VB:
 '**************************************************************
'                Fonction  ZipSearchLisT
'Fonction pour lister le contenu d'une archive ZIP (!!!RECURSIVE!!!)(dossiers et sous dossiers)
'Version 1.0
'Date Version:28/08/2022
'Auteur:patricktoulon
'liste tout des fichier avec  part of string
'liste fichier avec extension
'liste les fichier d'un dossier precis
'*************************************************************

Option Explicit

Function ZipSearchLisT(fichierZiP, Optional ByVal PartString$ = "*", Optional start As Boolean = True)
    Dim Archiveur, FL
    Static texte$
    If start = True Then texte = ""
    Set Archiveur = CreateObject("Shell.Application")
    For Each FL In Archiveur.Namespace(fichierZiP).Items
        If FL.Path Like PartString Then texte = texte & FL.Path & vbCrLf
        If Not Right(FL.Path, 4) Like ".*" Then ZipSearchLisT FL.Path, PartString, False
    Next
    Set Archiveur = Nothing
    ZipSearchLisT = Split(texte, vbCrLf)
End Function
'-------------------------------------------------------------------------------------

'                                                   ci dessous ;Les subs de Tests

Sub ListeToutLeFichieZip()    'arborescence complete
    Dim Lst
    Lst = ZipSearchLisT("C:\Users\patrick\Desktop\Archive.zip", "*")
    MsgBox Join(Lst, vbCrLf)
End Sub


Sub ListeToutLesFichier()    'les fichiers  ayant l'extension ".png" dans le path complet
    Dim Lst
    Lst = ZipSearchLisT("C:\Users\patrick\Desktop\Archive.zip", "*.png")
    MsgBox Join(Lst, vbCrLf)
End Sub


Sub ListeToutLesFichier2()    'les fichiers  ayant le nom terminant  par "2" avec  l'extension ".png"
    Dim Lst
    Lst = ZipSearchLisT("C:\Users\patrick\Desktop\Archive.zip", "*2.png")
    MsgBox Join(Lst, vbCrLf)
End Sub


Sub Un_dossier_precis()
    Dim Lst
    Lst = ZipSearchLisT("C:\Users\patrick\Desktop\Archive.zip", "*\media")
    MsgBox Join(Lst, vbCrLf)
End Sub


Sub fichiers_dans_dossier_precis()
    Dim Lst
    Lst = ZipSearchLisT("C:\Users\patrick\Desktop\Archive.zip", "*\media\*")
    MsgBox Join(Lst, vbCrLf)
End Sub

pour le test Not right(4) si vous avez une solution pour le tester en folder je suis preneur
merci a tous les participants
 

patricktoulon

XLDnaute Barbatruc
bon ben j'ai encore trouvé tout seul
remplacer le test if not right(fl.path,4).......
par
VB:
   If FL.Type = "Dossier de fichiers" Then ZipSearchLisT FL.Path, PartString, False
et voilà là on a un vrai test "Isfolder" pour dossier d'archive
Merci a tous
 

Discussions similaires

Réponses
11
Affichages
247

Membres actuellement en ligne

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 185
dernier inscrit
salhit