extraire le chemin de fichiers excel et la valeur d'une de leurs cellules
2 réponses
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
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
'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
Bonsoir,
Ci-dessous ( peut-être ) une solution au problème
Recopier l'ensemble dans le module VBA standard
et voir
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
'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" <c_guillon@yahoo.fr> a écrit dans le message de news:
bce1c3fc.0410120558.27f9d3e1@posting.google.com...
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
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
'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
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
"Claude Trouet" <nospam-claude.trouet@wanadoo.fr> wrote in message news:<O6Oie9GsEHA.2904@TK2MSFTNGP15.phx.gbl>...
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