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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
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?


 
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

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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
696
Retour