Cambiar la fuente de los TCD con macro vba Excel
Sam2021
-
yg_be Mensajes publicados 23437 Fecha de registro Estado Colaborador Última intervención -
yg_be Mensajes publicados 23437 Fecha de registro Estado Colaborador Última intervención -
Hola
Con el grabador de macros, vi que para cambiar la fuente de datos el código era el siguiente
el problema es que en lugar de la ruta "R:\10. RECETTES\10.12. RESTES A RECOUVRER\2020\10_RAR au 31 decembre 2020\test vba\
me gustaría usar "ThisWorkbook.Path". que si no estoy equivocado, permite usar la macro en cualquier directorio. pero no consigo hacerlo
Además, quiero modificar el nombre del archivo "Reste à recouvrer_BAA_2021_DAJEP.xlsx" poniendo un nombre que cambie dependiendo del nombre del archivo. porque esta macro la incrusto en otra que me crea muchos archivos. hasta ahora usaba para crear el nombre del archivo esto cell.Value & ".xlsx"
Ejecutaré esta macro en un archivo, y quiero cambiar la fuente de datos de las tablas dinámicas en otro archivo....
Esperando que esto esté claro..
te agradezco por tu ayuda.
Con el grabador de macros, vi que para cambiar la fuente de datos el código era el siguiente
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) el problema es que en lugar de la ruta "R:\10. RECETTES\10.12. RESTES A RECOUVRER\2020\10_RAR au 31 decembre 2020\test vba\
me gustaría usar "ThisWorkbook.Path". que si no estoy equivocado, permite usar la macro en cualquier directorio. pero no consigo hacerlo
Además, quiero modificar el nombre del archivo "Reste à recouvrer_BAA_2021_DAJEP.xlsx" poniendo un nombre que cambie dependiendo del nombre del archivo. porque esta macro la incrusto en otra que me crea muchos archivos. hasta ahora usaba para crear el nombre del archivo esto cell.Value & ".xlsx"
Ejecutaré esta macro en un archivo, y quiero cambiar la fuente de datos de las tablas dinámicas en otro archivo....
Esperando que esto esté claro..
te agradezco por tu ayuda.
7 respuestas
-
yg_be Mensajes publicados 23437 Fecha de registro Estado Colaborador Última intervención Ambassadeur 1 588
hola,
¿está el archivo fuente de datos en la misma carpeta que el archivo que contiene la macro?
si es así, tal vez:ActiveSheet.PivotTables("Tabla dinámica2").ChangePivotCache _ ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _ SourceData:= _ ThisWorkbook.Path + "\[" + cstr(cell.Value) + ".xlsx]Hoja1!C1:C27" _ , Version:=6) -
Hola
lamento la demora en la respuesta...
funciona de maravilla, le agradezco
¿sería posible, en lugar de Feuil1!C1:C27, indicar que se seleccione hasta la última celda no vacía?
Atentamente
Sandie -
c1:c27 corresponde a la columna A a AA (27 columnas). C:C no me ayudará porque quiero que la selección se haga de A1 hasta AA con la última fila no vacía.
¿Es esto más claro? ¿Alguien puede ayudarme? -
el archivo es demasiado voluminoso
he hecho esto pero me da error de compilación desde la línea ActiveSheet.PivotTable. ¿dónde está mi error?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) -
-
A1: AA no parece ser adecuado. Así que he probado esto
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)
pero tengo un error de código, la referencia no es válida.-
¿Hay alguien que podría indicarme qué significa "imposible leer la propiedad pivotTable de la clase worksheet"?
- montre tu código, utilizando las etiquetas de código (https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code, y indica en qué línea ocurre el error.
-
-
Voici ma traduction : ```html
Workbooks(cell.Value & ".xlsx").Activa
Dim ultimaFila As Integer
ultimaFila = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
Workbooks(cell.Value & ".xlsx").Sheets("Monto por servicio").Select
ActiveSheet.PivotTables("Tabla dinámica2").ChangePivotCache _
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:= _
ThisWorkbook.Path + "\[" + CStr(cell.Value) + ".xlsx]Feuil1!R1C1:R & ultimaFila & C27" _
, Version:=6)
El error ocurre a partir de ActiveSheet.PivotTables
Le agradezco ```