Formato de número en tabla dinámica VBA
Tengo una macro que crea una tabla dinámica y funciona perfecto. El único problema está en que no me toma el formato de número que deseo y no encuentro cual puede ser la falla, ya que a pesar de que lo cambio en el código, cuando se genera, el formato de número es el general.
el formato de número que deseo es .NumberFormat = "#.##0,00;[Rojo]-#.##0,00", así lo coloco y no lo toma. Si hay algo que yo no estoy viendo, por favor me ayudan.
Sub CrearTablaDinamica() Dim PCache As PivotCache Dim TDinamica As PivotTable Dim Reporte As Worksheet, Datos As Worksheet Dim PRange As Range Dim FinalRow As Long, FinalCol As Long Application.ScreenUpdating = False Application.DisplayAlerts = False Set Datos = Worksheets("Datos") FinalRow = Datos.Cells(Application.Rows.Count, 1).End(xlUp).Row FinalCol = Datos.Cells(1, Application.Columns.Count).End(xlToLeft).Column Set PRange = Datos.Cells(1, 1).Resize(FinalRow, FinalCol) 'Eliminar Hoja TablaDinamica (Si Existe) On Error Resume Next Worksheets("Reporte de cierre").Delete 'Crear Hoja TablaDinamica Worksheets.Add(after:=Sheets(2)).Name = "Reporte de cierre" Set Reporte = Sheets("Reporte de cierre") Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRange) Set TDinamica = PCache.CreatePivotTable(Reporte.Range("A1"), TableName:="TablaDinámica") With TDinamica.PivotFields("Mes") .Orientation = xlPageField .Position = 1 End With With TDinamica.PivotFields("Empresa") .Orientation = xlColumnField .Position = 1 End With With TDinamica.PivotFields("Registro") .Orientation = xlRowField .Position = 1 End With With TDinamica.PivotFields("Sucursal") .Orientation = xlRowField .Position = 2 End With With TDinamica.PivotFields("Importe") .Orientation = xlDataField .Position = 1 .Function = xlSum .NumberFormat = "#.##0,00;[Rojo]-#.##0,00" End With ActiveWindow.DisplayGridlines = False Columns("B:G").Select Selection.ColumnWidth = 23.57 Range("A4:G4").Select With Selection .HorizontalAlignment = xlCenter End With With TDinamica .HasAutoFormat = False .TableStyle2 = "PivotStyleMedium10" End With Range("B1").Select Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
1 Respuesta
Respuesta de Dante Amor
2