OVH Cloud OVH Cloud

nom de fichier

3 réponses
Avatar
TT
Bonjours,
J'ai construit un TCD qui utilise les donn=E9es situ=E9es dans=20
un autre ficher.
Je souhaite pouvoir modifier le nom de ce fichier source=20
ext=E9rieur, en le saissant dans une cellule du fichier dans=20
lequel se trouve le TDC.
Quelqu'un autait-il d=E9j=E0 r=E9solu ce probl=E8me (je souhaite=20
=E9viter la macro...)?
D'avance, merci.
TT

3 réponses

Avatar
Chris Michel
Bonjour!

Qu'est-ce qui t'empèche d'aller changer le nom du fichier
directement dans l'étape 2 sur 4 (" où se trouvent vos
données?") à laquelle tu peux accéder via l'assistant?

Sinon, je ne veux pas m'avancer mas tu vas devoir toucher
à du code. Voici une macro qui normalement marche. Il faut
simplement changer dans le code le nom du tableau croisé
(tu le trouveras dans les options du TCD). Ensuite, il
suffit d'écrire le nom du fichier en E1, le nom de
l'ongelt en E2 et la plage en E3. Ex:

Base.xls
data
A1:F567

Sub changer_source()
'

Dim chemin As String

chemin = "[" & [E1] & "]" & [E2] & "!" & [E3]

ActiveSheet.PivotTables("Tableau croisé
dynamique5").PivotSelect "", _
xlDataAndLabel
ActiveSheet.PivotTableWizard SourceType:=xlDatabase,
SourceData:= _
chemin, TableDestination:="RC", TableName:= _
"Tableau croisé dynamique5"

End Sub

Voila!
-----Message d'origine-----
Bonjours,
J'ai construit un TCD qui utilise les données situées
dans

un autre ficher.
Je souhaite pouvoir modifier le nom de ce fichier source
extérieur, en le saissant dans une cellule du fichier
dans

lequel se trouve le TDC.
Quelqu'un autait-il déjà résolu ce problème (je souhaite
éviter la macro...)?
D'avance, merci.
TT
.



Avatar
Merci,
Je ne veux pas aller modifier le nom dans la zone de
l'assistant car :
- j'ai de nombreux tableaux dynamiques à modifier ainsi
régulièrement,
- je souhaite voir apparaître le nom du fichier source
lors de l'impression du TDC : il suffit que les cellules
dans lesquelles je saisi l'adresse soient proches du TDC
pour pouvoir imprimer le tout sur la même page.


-----Message d'origine-----
Bonjour!

Qu'est-ce qui t'empèche d'aller changer le nom du fichier
directement dans l'étape 2 sur 4 (" où se trouvent vos
données?") à laquelle tu peux accéder via l'assistant?

Sinon, je ne veux pas m'avancer mas tu vas devoir toucher
à du code. Voici une macro qui normalement marche. Il
faut

simplement changer dans le code le nom du tableau croisé
(tu le trouveras dans les options du TCD). Ensuite, il
suffit d'écrire le nom du fichier en E1, le nom de
l'ongelt en E2 et la plage en E3. Ex:

Base.xls
data
A1:F567

Sub changer_source()
'

Dim chemin As String

chemin = "[" & [E1] & "]" & [E2] & "!" & [E3]

ActiveSheet.PivotTables("Tableau croisé
dynamique5").PivotSelect "", _
xlDataAndLabel
ActiveSheet.PivotTableWizard SourceType:=xlDatabase,
SourceData:= _
chemin, TableDestination:="RC", TableName:= _
"Tableau croisé dynamique5"

End Sub

Voila!
-----Message d'origine-----
Bonjours,
J'ai construit un TCD qui utilise les données situées
dans

un autre ficher.
Je souhaite pouvoir modifier le nom de ce fichier source
extérieur, en le saissant dans une cellule du fichier
dans

lequel se trouve le TDC.
Quelqu'un autait-il déjà résolu ce problème (je souhaite
éviter la macro...)?
D'avance, merci.
TT
.

.





Avatar
Chris MICHEL
Bon, voici une version corrigée de la macro de toute à
l'heure.

pour que cela fonctionne, il te faut créer un onglet avec
un tableau faisant la liste de tes TCDs. Avec en première
colonne le nom de chacun des TCDS, en deuxième l'onglet
dans lequel ils se situent à l'intérieur du fichier, en
troisième, le nom du fichier source du TCD, en 4ème le nom
de l'onglet dans lequel se situent les données source du
TCD et en 5ème la zone de données source, au format
américain (ex: A1:D6 devient R1C1:R6C4). Pour t'aider à
remplir ça facilement, je tai mis une petite macro "recup"
qui t'indiquera l'adresse des données source.

ex:

tab test feuil1 Base ventes.xls nov R1C1:R590C12

Il suffira alors de sélectionner la cellule contenant le
nom d'un TCD et de lancer la macro suivante:

Sub changer_source2()

Dim nom_feuille, nom_tab, nom_fichier, nom_onglet_source _
, nom_zone, chemin As String

nom_tab = ActiveCell.Value
nom_feuille = ActiveCell.Offset(0, 1).Value
nom_fichier = ActiveCell.Offset(0, 2).Value
nom_onglet_source = ActiveCell.Offset(0, 3).Value
nom_zone = ActiveCell.Offset(0, 4).Value

chemin = "[" & nom_fichier & "]" & nom_onglet_source _
& "!" & nom_zone

Sheets(nom_feuille).Select

ActiveSheet.PivotTables(nom_tab).PivotSelect "",
xlDataAndLabel
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, _
SourceData:=chemin

End Sub

Au cas où tu ne saches pas: pour inclure une macro dans un
fichier, il faut lancer Visual Basic Editor depuis ton
fichier Excel, insérer un module, puis se placer sur le
module et coller le code.

Voici aussi la petite macro de récup. Dans le tableau
listant les TCDs, il faut au moins remplir les colonnes
indiquant les noms et les emplacements des TCDs. Puis,
place-toi sur lenom d'un TCD et lance la macro suivante:

Sub recup_source()

Dim nom_feuille, nom_tab, chemin, feuilledep As String

feuilledep = ActiveSheet.Name

nom_tab = ActiveCell.Value
nom_feuille = ActiveCell.Offset(0, 1).Value

Sheets(nom_feuille).Select

chemin = ActiveSheet.PivotTables(nom_tab).SourceData

Sheets(feuilledep).Select

ActiveCell.Offset(0, 5).Value = chemin

End Sub

Dernière précision (promis!!), cette petite macro te
donnera des adresse en L1C1:L34C6 par exemple, mais dans
ton tablea, tu devras bien taper R1C1:R34C6.

Voila! Dis-moi si ça marche comme tu veux!

Chris.




-----Message d'origine-----
Bonjours,
J'ai construit un TCD qui utilise les données situées
dans

un autre ficher.
Je souhaite pouvoir modifier le nom de ce fichier source
extérieur, en le saissant dans une cellule du fichier
dans

lequel se trouve le TDC.
Quelqu'un autait-il déjà résolu ce problème (je souhaite
éviter la macro...)?
D'avance, merci.
TT
.