Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 CODE VBA à modifier pour Lister les fichiers .XLS mais pas .XLSM

Chrystel01

XLDnaute Occasionnel
Bonjour,

J'ai un petit code VBA qui me liste les noms de fichier avec l'extension .xls (du même répertoire que le classeur actif) mais je ne souhaite pas que soient inclus de fichiers .xlsm

Pourriez-vous m'aider svp ?
Voici le fichier joint qu'il faut mettre dans 1 répertoire avec d'autres fichiers.

Je vous remercie par avance

Chrystel
 

Pièces jointes

  • conso.xlsm
    14 KB · Affichages: 8
Solution
bonjour
A tester:
VB:
Sub lister_dossiers()
'Appelle tous les fichiers contenus dans un répertoire

Dim ligne_dossier
ligne_dossier = 5 ' ligne ou on collera les nouveaux dossiers

Dim compteur_dossier
compteur_dossier = Dir(ThisWorkbook.Path & "\*.xls")

While compteur_dossier <> ""

    If InStr(compteur_dossier, ".") Then
       If Right(compteur_dossier, 1) <> "m" Then
      
        ' pas de point, on colle le nom du dossier dans colonne
        ThisWorkbook.Sheets("Datasource").Cells(ligne_dossier, 1).Value = compteur_dossier
        ligne_dossier = ligne_dossier + 1
       End If
    End If
    compteur_dossier = Dir()

Wend

End Sub

pierrejean

XLDnaute Barbatruc
bonjour
A tester:
VB:
Sub lister_dossiers()
'Appelle tous les fichiers contenus dans un répertoire

Dim ligne_dossier
ligne_dossier = 5 ' ligne ou on collera les nouveaux dossiers

Dim compteur_dossier
compteur_dossier = Dir(ThisWorkbook.Path & "\*.xls")

While compteur_dossier <> ""

    If InStr(compteur_dossier, ".") Then
       If Right(compteur_dossier, 1) <> "m" Then
      
        ' pas de point, on colle le nom du dossier dans colonne
        ThisWorkbook.Sheets("Datasource").Cells(ligne_dossier, 1).Value = compteur_dossier
        ligne_dossier = ligne_dossier + 1
       End If
    End If
    compteur_dossier = Dir()

Wend

End Sub
 

Jacky67

XLDnaute Barbatruc
Bonjour,
Il restait certainement des scories des essais précèdent et comme il n'y a pas de Raz de la colonne...
Ceci devrait être suffisant
VB:
Sub lister_dossiers()
'Appelle tous les fichiers contenus dans un répertoire
    Dim ligne_dossier&, compteur_dossier
    ligne_dossier = 5    ' ligne ou on collera les nouveaux dossiers
    With Sheets("Datasource")
        .Range("a" & ligne_dossier & ":a" & .Rows.Count).Clear   ' RAZ
        compteur_dossier = Dir(ThisWorkbook.Path & "\*.xls")
        While compteur_dossier <> ""
            .Cells(ligne_dossier, 1).Value = compteur_dossier
            ligne_dossier = ligne_dossier + 1
            compteur_dossier = Dir()
        Wend
    End With
End
 

Chrystel01

XLDnaute Occasionnel
Bonjour Pierre Jean, Jacky67, Job75,

Je confirme que j'utilise excel 2013 et que le fichiers "xlsm" sont listés.
Je vais reprendre une des proprositions de Pierre Jean ou Job75 qui fonctionnenet parfaitement et ne rapptrient pas les fichiers ".xlsm"

Merci à tous pour votre aide rapide et efficace !

Bonne fin de semaine

Chrystel
 

patricktoulon

XLDnaute Barbatruc
bonjour à tous
juste en passant je suis surpris du résultat sans le test right ".xls"
je viens de faire le test sur 2013 et en effet même sans l'astérisque à la fin tout les xlsm ou xlsx sont listés

si on peut plus faire confiance a une ligne de code des plus basique de DIR je me demande ou on va
par curiosité j'ai testé la macro sur 2007 et en effet on a que les ".xls"
encore une chose que vba 7 change
 

Jacky67

XLDnaute Barbatruc
Hello Patrick
Merci d'avoir testé, du coup je me sens un peu moins seul
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
748
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…