Bonjour à tous,
Voilà je suis en train de réfléchir à créer un fichier Excel pour afficher le contenu de certaines cellules de plusieurs fichiers, en gros je souhaite regrouper des informations de plusieurs fichiers "BEA100, BEA101, DUP700, DUP800, etc..." sur un seul et même fichier "Récap".
Voici l'organisation:
Mes fichiers sont dans le chemin suivant:
Y:\Excel\BEA100.xlsm
Y:\Excel\BEA101.xlsm
Y:\Excel\DUP700.xlsm
Y:\Excel\DUP800.xlsm
Y:\Excel\etc...
Tous les fichiers dans ce dossier sont issus d'un gabarit identique, ils ont juste des noms différents avec des contenus différents mais sont organisés de la même manière.
Mon fichier récapitulatif est dans :
Y:\Récap.xlsm
Dans le fichier "Récap" j'ai un onglet "BBD" et un onglet "Link"
"Link" contient les liens hypertextes vers chaques fichiers contenu dans le dossier "Y:\Excel\"
le tout étant trié de manière alphanumérique et listé depuis la cellule "D1" via une macro qui se lance à l'ouverture du fichier.
"BBD" doit contenir la valeur de la cellule "F3" de l'onglet "Design" de chaque lien situé dans l'onglet "Link"
Les liens se mettent à jours à l'ouverture car on rajoute des fichiers dans le dossier "Excel" tous les jours.
C'est pour cette raison que je voudrais que les valeurs correspondent aux liens issus de la macro.
Je ne souhaite pas que les fichiers soient ouverts pour obtenir les valeurs car le dossier "Excel" contient plus de 200 fichiers actuellement.
Il est difficle pour moi de vous fournir un exemple de fichier à cause des liens et de la macro qui ne fonctionnera surement pas chez vous.
Voici la macro:
Voici la formule dans la case "D1" de la feuille "Link", cette formule est étirée sur 500 lignes (voir plus).
Merci à tous ceux qui m'ont lu. et à tous ceux qui vont me répondre.
Voilà je suis en train de réfléchir à créer un fichier Excel pour afficher le contenu de certaines cellules de plusieurs fichiers, en gros je souhaite regrouper des informations de plusieurs fichiers "BEA100, BEA101, DUP700, DUP800, etc..." sur un seul et même fichier "Récap".
Voici l'organisation:
Mes fichiers sont dans le chemin suivant:
Y:\Excel\BEA100.xlsm
Y:\Excel\BEA101.xlsm
Y:\Excel\DUP700.xlsm
Y:\Excel\DUP800.xlsm
Y:\Excel\etc...
Tous les fichiers dans ce dossier sont issus d'un gabarit identique, ils ont juste des noms différents avec des contenus différents mais sont organisés de la même manière.
Mon fichier récapitulatif est dans :
Y:\Récap.xlsm
Dans le fichier "Récap" j'ai un onglet "BBD" et un onglet "Link"
"Link" contient les liens hypertextes vers chaques fichiers contenu dans le dossier "Y:\Excel\"
le tout étant trié de manière alphanumérique et listé depuis la cellule "D1" via une macro qui se lance à l'ouverture du fichier.
"BBD" doit contenir la valeur de la cellule "F3" de l'onglet "Design" de chaque lien situé dans l'onglet "Link"
Les liens se mettent à jours à l'ouverture car on rajoute des fichiers dans le dossier "Excel" tous les jours.
C'est pour cette raison que je voudrais que les valeurs correspondent aux liens issus de la macro.
Je ne souhaite pas que les fichiers soient ouverts pour obtenir les valeurs car le dossier "Excel" contient plus de 200 fichiers actuellement.
Il est difficle pour moi de vous fournir un exemple de fichier à cause des liens et de la macro qui ne fonctionnera surement pas chez vous.
Voici la macro:
'Recupere les noms de fichiers d'un répertoire dans un tableau
Sub RecupNomFichier(ByVal Chemin As String, ByRef Tableau As Variant)
Dim Fichier As String
Dim Compteur As Integer
Dim LigneCompteur As Integer
Chemin = Range("A2") + "\*.xlsm"
Compteur = 1
Fichier = Dir(Chemin)
Do While (Len(Fichier) > 0)
ReDim Preserve Tableau(Compteur)
Tableau(Compteur - 1) = Fichier
LigneCompteur = Compteur + 1
ActiveSheet.Range("B" & LigneCompteur).Value = Left(Tableau(Compteur - 1), 100)
Compteur = Compteur + 1
Fichier = Dir()
Loop
End Sub
Sub RecupFichierTableau()
On Error Resume Next
Application.ScreenUpdating = False
Dim Tableau() As String
Sheets("Link").Select
Call RecupNomFichier(Chemin, Tableau)
FiltreAlpha
End Sub
Sub FiltreAlpha()
Columns("B:B").Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
With Selection
.HorizontalAlignment = xlCenter
.Orientation = 0
End With
With Selection
.HorizontalAlignment = xlLeft
.Orientation = 0
End With
End Sub
Voici la formule dans la case "D1" de la feuille "Link", cette formule est étirée sur 500 lignes (voir plus).
=LIEN_HYPERTEXTE($A$2&B1,$A$2&B1)
Merci à tous ceux qui m'ont lu. et à tous ceux qui vont me répondre.
Dernière édition: