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
A voir également:
- Lien entre 2 fichies excel
- Lien url - Guide
- Créer un lien pour partager des photos - Guide
- Liste déroulante excel - Guide
- Fiche de pointage excel - Télécharger - Tableur
- Word et excel gratuit - Guide
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
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.
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
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
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.
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
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