Lister des fichiers Excel avec le nombre de feuille par fichier

Bonjour

Je cherche à savoir comment je pourrais en VBA lister tous les fichiers excel d'un répertoire est connaître le nombre de feuille par fichier sans être obligé d'ouvrir 1 par 1 les fichiers.

Je n'ai malheureusement rien trouvé.

Merci d'avance pour votre précieuse aide.

Cordialement

Jean-Marc

Bonjour,

Lister tous les fichiers d'un répertoire : il serait étonnant que tu n'aies rien trouvé en la matière, les méthodes sont diverses... Le plus simple est sans doute la fonction Dir à partir de laquelle tu pourras boucler sur tous les fichiers souhaités d'un répertoire. Je te conseille donc de voir son utilisation.

Ensuite, tu peux tour à tour ouvrir chaque fichier, prélever le nombre de feuilles, le refermer. Avec inhibition de l'affichage tout se déroulera sans t'obliger à en voir la succession.

Sans les ouvrir, c'est un autre problème, il n'y a pas de fonction VBA pour lire dans un fichier fermé. Mais peut-être qu'une vieille macro Excel4 pourrait te permettre de le faire :

LIRE.CLASSEUR(4, "NomFichier")

Petite recherche à faire pour te documenter et savoir comment l'utiliser en VBA.

Cordialement.

Bonjour

Merci pour votre conseil, cependant pour lister les fichiers j'ai bien une macro, mais ce qui me pause problème c'est l'ouverture de fichier car j'ai plus de 500 fichiers. L'objectif est de détecter ceux qui n'ont qu'une feuille dans le fichier afin que je puisse les exclures pour ma prochaine étape de mon project.

Merci

Salutations

Jean-Marc

Je t'ai indiqué des pistes, tu peux ou non les suivre...

Tu peux aller boire un café en attendant que ta macro ait fini de travailler ou prospecter des solutions alternatives... la décision t'appartient.

Bonjour

Pour faire plus simple

Si-dessous j'ai une code VBA

Qui permet d'extraire le contenue de la feuille 2 de la cellule B à F sur l'ensemble des fichiers XLX qui se trouve dans un répertoire.

Les fichiers en question ont des liens sur d'autres documents, qui lorsque le code VBA ouvre les fichiers 1 par 1 me demande si je dois faire une mise à jours et dans laquelle je réponds non.

Ma question, que dois-je ajouter dans le code pour que

1) 1er condition avec si un fichier comporte une seule feuille, qu'il passe automatiquement au fichier suivant,

2) 2ème condition le fichier comporte une 2ème feuille, alors ouverture du fichier "Set oWBSource = Workbooks.Open(sFichier, , True)" copie de la source de la feuille 2 "oShSource.Range("B2:F100000").Copy" et pour finir s'il demande la mise à jour du fichier que puis-je utiliser comme code pour qu'il réponde automatique non, sans que j'aie à intervenir sur les fichier

Merci d'avance pour votre aide

Jean-Marc

Sub Test()

'''''''''''''''''''''''''''''''

'''Compte nombre de fichier pour la boucle

Dim Chemin As String

Dim i As Integer

Dim FileName As String

Chemin = "fullpath"

Set ofso = CreateObject("Scripting.FileSystemObject")

Set oFolder = ofso.GetFolder(Chemin)

Set oFiles = oFolder.Files

Dim x As Integer

For Each file In oFiles

''''''''''''''''''''''''''''''''''''''

Dim sFichier As String 'chemin du fichier source

Dim oWBSource As Workbook 'fichier source

Dim oShSource As Worksheet 'onglet source

Dim oShCible As Worksheet 'onglet où on récupère

Dim FullName As String

FileName = file.Name

FullName = Chemin + "\" + FileName

'chemin du fichier source

sFichier = FullName

'vérif existe

If Dir(sFichier) = "" Then

MsgBox "Fichier absent : " & vbCrLf & sFichier, vbExclamation

Exit Sub

End If

'cet onglet

Set oShCible = Worksheets(1)

'ouverture en lecture seule

Set oWBSource = Workbooks.Open(sFichier, , True)

'onglet

Set oShSource = Worksheets(2) 'voir quel onglet on veut traiter

'récupération d'une valeur (exemple)

oShSource.Range("B2:F100000").Copy

oShCible.Cells(oShCible.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial (xlPasteValues)

'fermeture sans enregistrer

oWBSource.Close False

Set oShSource = Nothing

Set oWBSource = Nothing

Set oShCible = Nothing

Next

End Sub

Rechercher des sujets similaires à "lister fichiers nombre feuille fichier"