Changer la source des TCD avec macro vba Excel
Sam2021
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour
Avec l'enregistreur de macro, j'ai vu que pour changer la source de données le code était le suivant
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
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
A voir également:
- Changepivotcache vba
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Dépassement de capacité vba ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
7 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
le fichier source des données est-il dans le même dossier que le fichier contenant la macro?
si oui, peut-être:
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
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
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 ?
Est ce que cela est plus clair ? Quelqu'un peut il m'aider ?
le fichier est trop volumineux
j'ai fais ceci mais cela me met erreur de compilation depuis la ligne Activesheet.pivottable. où est mon erreur ?
j'ai fais ceci mais cela me met erreur de compilation depuis la ligne Activesheet.pivottable. où est mon erreur ?
Workbooks(cell.Value & ".xlsx").Activate
Dim derniereLigne As Long,
derniereLigne = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
MsgBox derniereLigne
Workbooks(cell.Value & ".xlsx").Sheets("Montant par service").Select
ActiveSheet.PivotTables("Tableau croisé dynamique2").ChangePivotCache _
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:= _
ThisWorkbook.Path + "\[" + CStr(cell.Value) + ".xlsx]Feuil1("A1:AA" & derniereLigne)"
, Version:=6)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
A1:AA n'a pas l'air de convenir. j'ai donc essayé ceci
mais j'ai un code erreur la référence n'est pas valide
Workbooks(cell.Value & ".xlsx").Activate
Dim derniereLigne As Long, donnees As Worksheet
derniereLigne = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
MsgBox derniereLigne
Workbooks(cell.Value & ".xlsx").Sheets("Montant par service").Select
ActiveSheet.PivotTables("Tableau croisé dynamique2").ChangePivotCache _
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:= _
ThisWorkbook.Path + "\[" + CStr(cell.Value) + ".xlsx]Feuil1!R1C1:R & derniereLigne & C27" _
, Version:=6)
mais j'ai un code erreur la référence n'est pas valide
montre ton code, en utilisant les balises de code (https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code, et indique à quelle ligne se produit l'erreur.
voici mon code :
l'erreur se produit à partir de Activesheet.pivotTables
Je vous remercie
Workbooks(cell.Value & ".xlsx").Activate
Dim derniereLigne As Integer
derniereLigne = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
Workbooks(cell.Value & ".xlsx").Sheets("Montant par service").Select
ActiveSheet.PivotTables("Tableau croisé dynamique2").ChangePivotCache _
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:= _
ThisWorkbook.Path + "\[" + CStr(cell.Value) + ".xlsx]Feuil1!R1C1:R & derniereLigne & C27" _
, Version:=6)
l'erreur se produit à partir de Activesheet.pivotTables
Je vous remercie