Lien entre 2 fichies excel
Fermé
jujutouch
-
30 mai 2008 à 15:31
santiago69 Messages postés 477 Date d'inscription mercredi 7 mars 2001 Statut Membre Dernière intervention 12 septembre 2016 - 2 juin 2008 à 10:16
santiago69 Messages postés 477 Date d'inscription mercredi 7 mars 2001 Statut Membre Dernière intervention 12 septembre 2016 - 2 juin 2008 à 10:16
A voir également:
- Lien entre 2 fichies excel
- Liste déroulante excel - Guide
- Formule excel - Guide
- 2 comptes whatsapp - Guide
- Déplacer une colonne excel - Guide
- Verifier un lien - Guide
7 réponses
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
208
30 mai 2008 à 16:09
30 mai 2008 à 16:09
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
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
208
30 mai 2008 à 17:07
30 mai 2008 à 17:07
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
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
208
31 mai 2008 à 18:16
31 mai 2008 à 18:16
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
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
208
2 juin 2008 à 08:58
2 juin 2008 à 08:58
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
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
208
2 juin 2008 à 09:07
2 juin 2008 à 09:07
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.
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
208
2 juin 2008 à 09:48
2 juin 2008 à 09:48
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
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
208
2 juin 2008 à 10:16
2 juin 2008 à 10:16
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.
Il n'y a que toi qui puisse le faire puisque c'est toi qui a demarre le sujet.
Bonne chance pour la suite.