Macro para montar campo calculado con una variable que es una celda

Buenas tardes Dante necesito un favor, estoy montado esta macro pero no me funciona lo que necesito es que el campo calculado se pueda trabajar con una variable la variable es lo que se llama líder.

y Lider es el nombre de la celda.

Sub Macro1()

Dim HOJA As String
HOJA = Hoja5.Name

Dim LIDER1 As Variant
Dim LIDER2 As Variant
Dim LIDER3 As Variant
Dim LIDER4 As Variant
Dim LIDER5 As Variant

LIDER1 = Sheets(HOJA).Range("B4")
LIDER2 = Sheets(HOJA).Range("C4")
LIDER3 = Sheets(HOJA).Range("D4")
LIDER4 = Sheets(HOJA).Range("E4")
LIDER5 = Sheets(HOJA).Range("F4")


ActiveSheet.PivotTables("Tabla dinámica1").CalculatedFields("Total General"). _
StandardFormula = LIDER1 + LIDER2 + LIDER3 + LIDER4 + LIDER5
End Sub

Quedo atento a su pronta ayuda.

Gracias

1 Respuesta

Respuesta

Quedaría de esta forma:

Sub CampoCalculado()
'Por.Dante Amor
    lider1 = Hoja5.[B4]
    lider2 = Hoja5.[C4]
    lider3 = Hoja5.[D4]
    lider4 = Hoja5.[E4]
    lider5 = Hoja5.[F4]
    cad = "=" & lider1 & "+" & lider2 & "+" & lider3 & "+" & lider4 & "+" & lider5
    On Error Resume Next
    ActiveSheet.PivotTables("Tabla dinámica1").CalculatedFields("Total General").Delete
    On Error GoTo 0
    ActiveSheet.PivotTables("Tabla dinámica1").CalculatedFields.Add _
        "Total General", cad, True
    ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Total General").Orientation = _
        xlDataField
End Sub

Revisar que la tabla dinámica se llame "Tabla dinámica1", si el nombre de la tabla dinámica cambia, pero solamente tienes una tabla, entonces utiliza así:

Sub CampoCalculado()
'Por.Dante Amor
    lider1 = Hoja5.[B4]
    lider2 = Hoja5.[C4]
    lider3 = Hoja5.[D4]
    lider4 = Hoja5.[E4]
    lider5 = Hoja5.[F4]
    cad = "=" & lider1 & "+" & lider2 & "+" & lider3 & "+" & lider4 & "+" & lider5
    On Error Resume Next
    ActiveSheet.PivotTables(1).CalculatedFields("Total General").Delete
    On Error GoTo 0
    ActiveSheet.PivotTables(1).CalculatedFields.Add _
        "Total General", cad, True
    ActiveSheet.PivotTables(1).PivotFields("Total General").Orientation = _
        xlDataField
End Sub

Revisa que los valores que tienes en las celdas B4, C4, D4, E4 y F4, coincidan con los nombres de los campos de la tabla dinámica.


Te anexo mi archivo para que veas el funcionamiento, los datos están en la hoja1 y la tabla y los "lideres" en la hoja5.

https://www.dropbox.com/s/i6uyindamcs5tju/td%20campo%20calculado.xlsm?dl=0 


Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas