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