Changer la source des TCD avec macro vba Excel

Signaler
-
Messages postés
14481
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 mars 2021
-
Bonjour

Avec l'enregistreur de macro, j'ai vu que pour changer la source de données le code était le suivant

   Windows("Reste à recouvrer_BAA_2021_DAJEP.xlsx").Activate
Range("C14").Select
Sheets("Montant par service").Select
Range("C8").Select
ActiveSheet.PivotTables("Tableau croisé dynamique2").ChangePivotCache _
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"R:\10. RECETTES\10.12. RESTES A RECOUVRER\2021\01 BAA\[Reste à recouvrer_BAA_2021_DAJEP.xlsx]Feuil1!C1:C27" _
, Version:=6)


le problème c'est qu'à la place du chemin "R:\10. RECETTES\10.12. RESTES A RECOUVRER\2020\10_RAR au 31 decembre 2020\test vba\
j'aimerai utiliser "ThisWorkbook.Path". qui si j'ai bien compris, permet d'utiliser la macro dans n'importe quel répertoire. mais je n'y arrive pas

Egalement j'aimerai modifier le nom du fichier "Reste à recouvrer_BAA_2021_DAJEP.xlsx" en mettant un nom qui change en fonction du nom du fichier. car cette macro je l’imbrique dans une autre qui me créé plein de fichiers. jusque là j'utilisais pour créé le nom du fichier ceci cell.Value & ".xlsx"

J'éxécute cette macro dans un fichier, et je veux changer la source de données des TCD dans un autre fichier....


En espérant que cela soit clair..
je vous remercie pour votre aide

3 réponses

Messages postés
14481
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 mars 2021
809
bonjour,
le fichier source des données est-il dans le même dossier que le fichier contenant la macro?
si oui, peut-être:
ActiveSheet.PivotTables("Tableau croisé dynamique2").ChangePivotCache _
        ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
        SourceData:= _
        ThisWorkbook.Path + "\[" +  cstr(cell.Value) + ".xlsx]Feuil1!C1:C27" _
        , Version:=6)
bonjour
je suis désolée pour le temps de réponse...
cela fonctionne super je vous remercie
serait il possible au lieu de Feuil1!C1:C27" d'indiquer de sélectionner jusqu'à la dernière cellule non vide ?

Cordialement

Sandie
Messages postés
14481
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 mars 2021
809
as-tu essayé C:C au lieu de C1:C27?
c1:c27 correspond à la colonne A à AA (27 colones). C:C ne va pas m'aider car je souhaite que la sélection soit faite de A1 jusqu'à AA avec dernière lignes non vides.
Est ce que cela est plus clair ? Quelqu'un peut il m'aider ?
Messages postés
14481
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 mars 2021
809
la pivot table prend en compte les lignes vides?
>
Messages postés
14481
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 mars 2021

oui et je ne veux pas
Messages postés
14481
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 mars 2021
809 > Sam21
n'est-ce pas une option du TCD?
>
Messages postés
14481
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 mars 2021

non cela ne fonctionne pas pour les lignes.
je me disais de sélectionner tant que cellule non vide par une boucle
Messages postés
14481
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 mars 2021
809 > Sam21
peux-tu partager ton fichier?