Home Foros Foro dudas Foro de Excel VBA para excel. Respuesta a: VBA para excel.

Respuesta a: VBA para excel.

Home Foros Foro dudas Foro de Excel VBA para excel. Respuesta a: VBA para excel.

#19011

joan
Participante

El error que me salio en el video 55 por no actualizar el nombre de Cálculo cambiando de nombre acda vez en el formulario y lo solvente creando en el modulo de calculos_em_dinamica el siguiente procedimiento :

(Nota a mi me aparecia alguna veces precio en minuscula i otras en mayuscula, por esto esta duplicado)

Sub nom_calculo_dinamica(micelda As Range)

If micelda = “Suma de Precio” Then

ActiveSheet.PivotTables(“TablaDinámica4”).PivotFields(“Suma de Precio”). _

Caption = “Cálculo”

ElseIf micelda = “Promedio de Precio” Then

ActiveSheet.PivotTables(“TablaDinámica4”).PivotFields(“Promedio de Precio”). _

Caption = “Cálculo”

ElseIf micelda = “Máx. de Precio” Then

ActiveSheet.PivotTables(“TablaDinámica4”).PivotFields(“Máx. de Precio”). _

Caption = “Cálculo”

ElseIf micelda = “Mín. de Precio” Then

ActiveSheet.PivotTables(“TablaDinámica4”).PivotFields(“Mín. de Precio”). _

Caption = “Cálculo”

ElseIf micelda = “Cuenta de Precio” Then

ActiveSheet.PivotTables(“TablaDinámica4”).PivotFields(“Cuenta de Precio”). _

Caption = “Cálculo”

‘ no se perque a vedgades sortien minuscules el PRECIO

ElseIf micelda = “Promedio de PRECIO” Then

ActiveSheet.PivotTables(“TablaDinámica4”).PivotFields(“Promedio de PRECIO”). _

Caption = “Cálculo”

ElseIf micelda = “Máx. de PRECIO” Then

ActiveSheet.PivotTables(“TablaDinámica4”).PivotFields(“Máx. de PRECIO”). _

Caption = “Cálculo”

ElseIf micelda = “Mín. de PRECIO” Then

ActiveSheet.PivotTables(“TablaDinámica4”).PivotFields(“Mín. de PRECIO”). _

Caption = “Cálculo”

ElseIf micelda = “Cuenta de PRECIO” Then

ActiveSheet.PivotTables(“TablaDinámica4”).PivotFields(“Cuenta de PRECIO”). _

Caption = “Cálculo”

ElseIf micelda = “Suma de PRECIO” Then

ActiveSheet.PivotTables(“TablaDinámica4”).PivotFields(“Suma de PRECIO”). _

Caption = “Cálculo”

End If

End Sub

PD hay campos de celdas A1. i B1 al cambiar de horizontal a verical varia la localizacion del rotulo

 

Y en pPrivate Sub cal_dinamica_Click()

Private Sub cal_dinamica_Click()

Dim micelda As Range

If Range(“b1”) = “Etiquetas de columna” Then       ‘pregunto si la tabla es horizotal

Call nom_calculo_dinamica(Range(“a1”))           ‘pone nombre de “Cálculo” a la celda

Else

Call nom_calculo_dinamica(Range(“B1”))

End If

A continuacion viene el código que ya tenemos:

If cal_dinamica.Value = “Suma” Then  i etc  …

Asi me ha funcionado