Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

extraire le chemin de fichiers excel et la valeur d'une de leurs cellules

2 réponses
Avatar
c_guillon
Bonjour
j'aurai besoin d'aide pour la chose suivante:
j'ai une centaine de fichier excel, répartis sur 12 dossiers (Janvier
à Decembre) et ayant des noms variables selon les dossiers.

Je voudrais créer un nouveau fichier excel, dans le repertoire racine,
contenant une macro qui extrairait, pour chacun des 100 fichiers, le
nom du fichier, le chemin du fichier et la valeur de la cellule A1 de
cedit fichier.

exemple le fichier bob.xls dans le dossier Janvier a une cellule A1
avec la valeur 23, et dans le dossier février un fichier bab.xls avec
la cellule A1 à 12
cela me donnerait dans mon fichier final situé dans le dosier rcine
"FichiersExcel" les 3 colonnes suivantes:
bob.xls ; C:\FichiersExcel\Janvier ; 23
bab.xls ; C:\FichiersExcel\Février ; 12

Je sais ouvrir un fichier excel dont le nom m'est connu pour y pecher
la valeur de la cellule A1, mais là, je n'arrive pas à m'en sortir
avec les noms de fichiers et noms de dossiers variables:
1- je n'ai pas réussi à ouvrir deux fichiers à la suite dont je ne
connais pas les noms.
2- je n'arrive pas à trouver comment détecter le nom du dosssier ni
permettre d'aller d'un dossier à l'autre.

Quelqu'un a t il des exemples ou des sources d'informations pour
m'aider ?
merci d'avance
Chris

2 réponses

Avatar
Claude Trouet
Bonsoir,
Ci-dessous ( peut-être ) une solution au problème
Recopier l'ensemble dans le module VBA standard
et voir

CT

**************************************
Option Explicit

Sub Fichiers_Excel()
Dim fs As FileSearch
Dim Racine As String
Dim rep(12) As String
Dim chemin As String
Dim fichier As String
Dim i, j As Integer
Dim wbResult As Workbook
Dim wbImport As Workbook
Dim wbMacro As Workbook
Set wbMacro = ThisWorkbook

rep(1) = "Janvier"
rep(2) = "Février"
rep(3) = "Mars"
rep(4) = "Avril"
rep(5) = "Mai"
rep(6) = "Juin"
rep(7) = "Juillet"
rep(8) = "Août"
rep(9) = "Septembre"
rep(10) = "Octobre"
rep(11) = "Novembre"
rep(12) = "Décembre"
'répertoire racine
Racine = "C:FichiersExcel"

'ouvre fichier pour résultat
Workbooks.Add
Set wbResult = ActiveWorkbook
ActiveSheet.Name = "Résultats"
[A1] = "Nom Fichier"
[B1] = "Répertoire"
[C1] = "Valeur A1"
Range("A2").Select

'empêche mise à jour écran
Application.ScreenUpdating = False
'boucle principale
For i = 1 To 12
chemin = Racine & rep(i) & ""
'cherche les fichiers xls dans le répertoire
Set fs = Application.FileSearch
With fs
.LookIn = chemin
.Filename = "*.xls"
If .Execute > 0 Then 'existe des fichiers xls
For j = 1 To .FoundFiles.Count
'ouvre le fichier trouvé
fichier = .FoundFiles(j)
Workbooks.Open fichier
Set wbImport = ActiveWorkbook
'écrire dans fichier résultat
wbResult.Activate
ActiveCell.Value = wbImport.Name
ActiveCell.Offset(0, 1).Value = chemin
ActiveCell.Offset(0, 2).Value =
wbImport.Sheets(1).Range("A1").Value
ActiveCell.Offset(1, 0).Select
'ferme le fichier trouvé
Application.DisplayAlerts = False
wbImport.Close
Next j
End If
End With
Next i
'Retour dans le fichier Résultat et Affichage
wbResult.Activate
Cells.Select
Selection.Columns.AutoFit
Range("A1").Select
Application.ScreenUpdating = True
End Sub

**************************************
"Christophe Guillon" a écrit dans le message de news:

Bonjour
j'aurai besoin d'aide pour la chose suivante:
j'ai une centaine de fichier excel, répartis sur 12 dossiers (Janvier
à Decembre) et ayant des noms variables selon les dossiers.

Je voudrais créer un nouveau fichier excel, dans le repertoire racine,
contenant une macro qui extrairait, pour chacun des 100 fichiers, le
nom du fichier, le chemin du fichier et la valeur de la cellule A1 de
cedit fichier.

exemple le fichier bob.xls dans le dossier Janvier a une cellule A1
avec la valeur 23, et dans le dossier février un fichier bab.xls avec
la cellule A1 à 12
cela me donnerait dans mon fichier final situé dans le dosier rcine
"FichiersExcel" les 3 colonnes suivantes:
bob.xls ; C:FichiersExcelJanvier ; 23
bab.xls ; C:FichiersExcelFévrier ; 12

Je sais ouvrir un fichier excel dont le nom m'est connu pour y pecher
la valeur de la cellule A1, mais là, je n'arrive pas à m'en sortir
avec les noms de fichiers et noms de dossiers variables:
1- je n'ai pas réussi à ouvrir deux fichiers à la suite dont je ne
connais pas les noms.
2- je n'arrive pas à trouver comment détecter le nom du dosssier ni
permettre d'aller d'un dossier à l'autre.

Quelqu'un a t il des exemples ou des sources d'informations pour
m'aider ?
merci d'avance
Chris


Avatar
c_guillon
"Claude Trouet" wrote in message news:...
Bonsoir,
Ci-dessous ( peut-être ) une solution au problème
Recopier l'ensemble dans le module VBA standard
et voir


Nickel, c'est exactement ce que je cherchais. Merci beaucoup !
Chris