Lien entre 2 fichies excel
jujutouch
-
santiago69 Messages postés 485 Statut Membre -
santiago69 Messages postés 485 Statut Membre -
Bonjour,
J'ai un dossier"a1" avec plusieurs fichier excel, chaque fichier excel a un nom et contient une date (le nom et la date ont toujours la meme cellule dans tous mes fichiers).
Je souhaiterais prendre chaque nom et chaque date de ces fichiers et de les integrer a un tableau.
Le probleme est que pour un dossier ca reste simple, mais la je dois repeter l'operation pour plus de 100 fois.
Et vu que j'ai pas envie d'y passer toute ma vie, je me demande si il existe une macro ou kelke chose de réalisable dans un temps correct.
Dans le cas present j'ai un dossier "A" avec a l'interieur des dossier "a1" "a2" "a3" "a4" "a5"
et dans chaque fichier "a1" "a2" "a3".. j'ai 8 fichiers excel.
Donc au final je souhaite avoir un tabelau avec la date et le nom de chaque fichier.
(la date du fichier excel evolue donc il faut un lien entre chaque date du tableau et chaque date du fichier concerné.
J'espere avoir eté clair
Merci d'avance pour votre aide
J'ai un dossier"a1" avec plusieurs fichier excel, chaque fichier excel a un nom et contient une date (le nom et la date ont toujours la meme cellule dans tous mes fichiers).
Je souhaiterais prendre chaque nom et chaque date de ces fichiers et de les integrer a un tableau.
Le probleme est que pour un dossier ca reste simple, mais la je dois repeter l'operation pour plus de 100 fois.
Et vu que j'ai pas envie d'y passer toute ma vie, je me demande si il existe une macro ou kelke chose de réalisable dans un temps correct.
Dans le cas present j'ai un dossier "A" avec a l'interieur des dossier "a1" "a2" "a3" "a4" "a5"
et dans chaque fichier "a1" "a2" "a3".. j'ai 8 fichiers excel.
Donc au final je souhaite avoir un tabelau avec la date et le nom de chaque fichier.
(la date du fichier excel evolue donc il faut un lien entre chaque date du tableau et chaque date du fichier concerné.
J'espere avoir eté clair
Merci d'avance pour votre aide
Configuration: Windows XP
7 réponses
-
Allons y par etapes.
Sais tu ecrire une macro en VBA ?
Voila un code a coller dans un module.
Execute le, il devrait t'afficher la liste des fichiers excel contenu dans le repertoire C:\A et tous ses sous repertoires. Dis moi si ca marche et on passe a l'etape suivante
Sub main() scan "C:\A" End Sub Sub scan(Path As String) Dim FSO As Object, Folder As Object, Item As Object Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.getfolder(Path) For Each Item In Folder.Files If Right(Item.Name, 4) = ".xls" Then MsgBox Item.Name Next For Each Item In Folder.subfolders scan Item.Path Next End Sub
-
Nouvelle version de la fonction :
Tu copie colle ca dans ton module (en ecrasant ce que je t'avais file avant).
Tu n'as que 3 valeurs a changer dans les 3 premieres lignes :
Path=Le chemin du repertoire qui va etre scanne
SheetName=Le nom de la feuille ou se trouve la date
CellAddress=L'adresse de la cellule ou se trouve la date
Execute la macro sur une feuille vide, un tableau va etre cree avec en colonne A la liste des feuilles excel trouves dans le repertoire general et en colonne B la liste des date contenues dans ces fichiers.Const Path As String = "C:\A" Const SheetName As String = "Feuil1" Const CellAddress As String = "A1" Sub main() scan Path End Sub Sub scan(Path As String) Static i As Long Dim FSO As Object, Folder As Object, Item As Object Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.getfolder(Path) For Each Item In Folder.Files If Right(Item.Name, 4) = ".xls" Then i = i + 1 Cells(i, 1) = Item.Path Cells(i, 2) = "='" & Left(Item.Path, InStrRev(Item.Path, "\")) & _ "[" & Item.Name & "]" & SheetName & "'!" & CellAddress End If Next For Each Item In Folder.subfolders scan Item.Path Next End Sub
-
ok n'hesite pas a me demander de l'aide si tu n'as jamais fais de macro en vba.
-
Pour tout te dire je suis pas un pro des macros.
J'ai reussi a transferer la macro, mais il me marque erreur 400 et me marque sur ma feuille excel que le chemin de mon dossier.
Si les feuilles de mes fichier excel n'ont pas le meme nom, je serai obliger de relancer la macro en modifiant le nom?
Merci
-
-
La date contenu dans chaque fichier se trouve a quelle adresse (feuille+cellule) ?
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Et la cellule ? est ce toujours la meme ?
Et pour la feuille, est elle toujours a la meme position (premiere ou derniere) ?
Lache le plus possible d'info et donne des exemples, ca ira plus vite.
-
Le programme devient :
En ligne 3, tu peux demander toutes les cellules que tu veux (separees par des virgules)
Si ca t'interesse, c'est en ligne 15 que cette liste est transformee en tableau.
En ligne 21, il est demande de parcourir chaque element du tableau (S8 puis S6)
En lignes 22 et 23, il est demande d'ecrire une formule du style ='chemin[fichier]feuille'!cellule
Const Path As String = "C:\A" Const SheetName As String = "FIO" Const CellAddress As String = "S8,S6" Sub main() scan Path End Sub Sub scan(Path As String) On Error Resume Next Static i As Long Dim FSO As Object, Folder As Object, Item As Object, CellAddressTab Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.getfolder(Path) CellAddressTab = Split(CellAddress, ",") For Each Item In Folder.Files With Item If Right(.Name, 4) = ".xls" Then i = i + 1 Cells(i, 1) = .Path For j = 0 To UBound(CellAddressTab) Cells(i, j + 2) = "='" & Left(.Path, InStrRev(.Path, "\")) & _ "[" & Item.Name & "]" & SheetName & "'!" & CellAddressTab(j) Next End If End With Next For Each Item In Folder.subfolders scan Item.Path Next End Sub
-
OK, dans ce cas, tu dois definir le statut de la conversation comme "resolu"
Il n'y a que toi qui puisse le faire puisque c'est toi qui a demarre le sujet.
Bonne chance pour la suite.