Hello à tous,
J'ai un petit souci que je vous expose ici.
' j'ai un répertoire contenant THIS woorkbook et 6 fichiers
'sachant que je veux faire une boucle sur tous les fichiers de mon répertoire SAUF THIS WORKBOOK
'ces autres fichiers contiennent une feuille dont l'intitulé CONTIENT TCD RETARD (et d'autres mots spécifiques à chaque classeur cad TCD RETARD...")
' je veux modifier la source de données du TCD de la feuille qui contient TCD RETARD dans chaque classeur
'la source de données étant la deuxième page contenue dans chaque classeur qui s'intitule BDD... (il faut donc pr la boucle que la feuille qui CONTIENT les mots BDD soit sélectionnées
' je souhaite éviter de donner un nom aux tableaux pour éviter les erreurs potentielles et je préfere utiliser list object(1)
si quelqu'un a une idée de la méthode à utiliser pour adapter mon code qui ne fonctionne pas a l'heure actuelle...
merci
Sub test()
Dim Fso As Object, MonRepertoire As String
Dim fichiers As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
MonRepertoire = ThisWorkbook.Path & "\"
For Each fichiers In Fso.GetFolder(MonRepertoire).SubFolders 'pour tous les fichiers contenus dans le répertoire
Sheets("*TCD RETARD*").Select 'sélectionner la feuille dont l'intitulé contient les mots "TCD RETARD"
Range("D24").Select 'se positionne sur le TCD
ActiveSheet.PivotTables(1).PivotSelect _
"Entité_Code[All;Total]", xlDataAndLabel, True
'est censé prendre le premier TCD qui est sur la feuille (pour éviter de donner un nom au TCD lequel changera probablement
ActiveSheet.PivotTables(1).ChangePivotCache _
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
Worksheets("*BDD*").ListObjects(1), Version:=14)
' redéfinir la source de données - recherche la feuille contenant le mot BDD et prend le premier tableau comme source (idem pour éviter de donner un nom)
ActiveWorkbook.Save
ActiveWindow.Close 'enregistrer et fermer le classeur
' j'ai un répertoire contenant THIS woorkbook et 6 fichiers
'sachant que je veux faire une boucle sur tous les fichiers de mon répertoire SAUF THIS WORKBOOK
'ces autres fichiers contiennent une feuille dont l'intitulé CONTIENT TCD RETARD (et d'autres mots spécifiques à chaque classeur cad TCD RETARD...")
' je veux modifier la source de données du TCD de la feuille qui contient TCD RETARD dans chaque classeur
'la source de données étant la deuxième page contenue dans chaque classeur qui s'intitule BDD... (il faut donc pr la boucle que la feuille qui CONTIENT les mots BDD soit sélectionnées
' je souhaie éviter de donner un nom aux tableaux pour éviter les erreurs potentielles et je préfere utiliser list object(1)
Next fichiers
End Sub
J'ai un petit souci que je vous expose ici.
' j'ai un répertoire contenant THIS woorkbook et 6 fichiers
'sachant que je veux faire une boucle sur tous les fichiers de mon répertoire SAUF THIS WORKBOOK
'ces autres fichiers contiennent une feuille dont l'intitulé CONTIENT TCD RETARD (et d'autres mots spécifiques à chaque classeur cad TCD RETARD...")
' je veux modifier la source de données du TCD de la feuille qui contient TCD RETARD dans chaque classeur
'la source de données étant la deuxième page contenue dans chaque classeur qui s'intitule BDD... (il faut donc pr la boucle que la feuille qui CONTIENT les mots BDD soit sélectionnées
' je souhaite éviter de donner un nom aux tableaux pour éviter les erreurs potentielles et je préfere utiliser list object(1)
si quelqu'un a une idée de la méthode à utiliser pour adapter mon code qui ne fonctionne pas a l'heure actuelle...
merci
Sub test()
Dim Fso As Object, MonRepertoire As String
Dim fichiers As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
MonRepertoire = ThisWorkbook.Path & "\"
For Each fichiers In Fso.GetFolder(MonRepertoire).SubFolders 'pour tous les fichiers contenus dans le répertoire
Sheets("*TCD RETARD*").Select 'sélectionner la feuille dont l'intitulé contient les mots "TCD RETARD"
Range("D24").Select 'se positionne sur le TCD
ActiveSheet.PivotTables(1).PivotSelect _
"Entité_Code[All;Total]", xlDataAndLabel, True
'est censé prendre le premier TCD qui est sur la feuille (pour éviter de donner un nom au TCD lequel changera probablement
ActiveSheet.PivotTables(1).ChangePivotCache _
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
Worksheets("*BDD*").ListObjects(1), Version:=14)
' redéfinir la source de données - recherche la feuille contenant le mot BDD et prend le premier tableau comme source (idem pour éviter de donner un nom)
ActiveWorkbook.Save
ActiveWindow.Close 'enregistrer et fermer le classeur
' j'ai un répertoire contenant THIS woorkbook et 6 fichiers
'sachant que je veux faire une boucle sur tous les fichiers de mon répertoire SAUF THIS WORKBOOK
'ces autres fichiers contiennent une feuille dont l'intitulé CONTIENT TCD RETARD (et d'autres mots spécifiques à chaque classeur cad TCD RETARD...")
' je veux modifier la source de données du TCD de la feuille qui contient TCD RETARD dans chaque classeur
'la source de données étant la deuxième page contenue dans chaque classeur qui s'intitule BDD... (il faut donc pr la boucle que la feuille qui CONTIENT les mots BDD soit sélectionnées
' je souhaie éviter de donner un nom aux tableaux pour éviter les erreurs potentielles et je préfere utiliser list object(1)
Next fichiers
End Sub