Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Tabla dinámica de consumo de materiales médicos por pacientes

| Sin comentarios

Tabla Dinámica: Consumo de materiales médicos por paciente

Para el presente reporte en tabla dinámica se utilizó una base de datos con información de pacientes, los materiales médicos y el costo que se utilizaron con cada uno de ellos en una clínica. Este reporte es utilizado para poder realizar la planificación de compras de materiales para los siguientes meses así como la revisión de lo desembolsado para la revisión del presupuesto planeado por la clínica.

La dinámica de este reporte es que a partir de ir ingresando nuevos pacientes, nuevos meses y los materiales que consumen, la tabla dinámica irá consolidando y emitiendo el reporte mensual.

A continuación detallo lo programado para este reporte en tabla dinámica

Sub CrearTabla()
Dim WSD1 As Worksheet
Dim WSD2 As Worksheet
Dim PTCache As PivotCache
Dim PT As PivotTable   Dim PRange As Range
Dim FinalRow As Long
Set WSD1 = Worksheets("Hoja2")
For Each PT In WSD1.PivotTables
PT.TableRange2.Clear
Next PT
Set WSD2 = Worksheets("Consumo")
FinalRow = WSD2.Cells(Rows.Count, 1).End(xlUp).Row
Set PRange = WSD2.Cells(1, 1).Resize(FinalRow, 10)
Sheets("Consumo").Select
Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=PRange.Address)
Set PT = PTCache.CreatePivotTable(TableDestination:=Worksheets("Hoja2").Range("B3"), TableName:="Consumo")
PT.Format xlReport9
PT.ManualUpdate = True
PT.AddFields RowFields:=Array("Mes", "Paciente", "Materiales médicos")

With PT.PivotFields("Cantidad")
.Orientation = xlDataField
.Function = xlSum
.Position = 1
.NumberFormat = "0"
.Name = "Cantidad_Materiales"
End With

With PT.PivotFields("Total")
.Orientation = xlDataField
.Function = xlSum
.Position = 2
.NumberFormat = "0.00"
.Name = "Costo_Total"
End With

PT.ManualUpdate = False
Sheets("Hoja2").Select

End Sub

Elaborado por : Rosa Romero Matos

Deja una respuesta

Los campos requeridos estan marcados con *.