Option Explicit
Option Base 1
' Declare Global Variables
Global BaseInputFile As String
Global BaseOutputPath As String
Global BudFile As String
Global BudSheet As String
Global CreateOutputFiles As String
Global CurrFile As String
Global CurrFYFolder As String
Global CurrHosp As String
Global CurrMonth As String
Global CurrMonthYear As String
Global CurrSheet As String
Global DefaultOPFileName As String
Global DefaultOPPath As String
Global FromCol As String
Global HeaderDate As String
Global Hospname As String
Global i As Integer
Global KPISheet As String
Global NumberOfHospitals As Long
Global PBudFile As String
Global PBudSheet As String
Global PrevFile As String
Global PrevFYFolder As String
Global PrevMonth As String
Global PrevMonthYear As String
Global PrevSheet As String
Global ReviewSheet As String
Global SelfPayIP As Single
Global SelfPayOP As Single
Global SheetName As String
Global ShowYourWork As String
Global Skeleton As String
Global SourceFolder As String
Global TimeStampVal As String
Global ToCol As String
Sub BuildReports()
' Declare local Variables
Dim Hosparray
Dim Response As Long
Dim NewWB As Workbook
Dim OPFileName As Variant
Dim SuggestedFile As String
Dim SaveFilter As Variant
Dim StartTime As Date
Dim EndTime As Date
StartTime = Now()
Application.ScreenUpdating = False
' \/ test only \/
' Application.ScreenUpdating = True
' /\ test only /\
Application.Calculation = xlManual
Application.DisplayAlerts = False
Application.EnableEvents = False
Call ResetSkeleton
Call UnhideSheets
Call SetVariables
If CreateOutputFiles = "N" Then
If UCase(ActiveSheet.Range("F1").Value) = "" Then
ShowYourWork = "No"
Else
ShowYourWork = "Yes"
End If
Else
ShowYourWork = "No"
End If
' Start the processing
If CurrHosp = "All" Then
NumberOfHospitals = 12
Hosparray = Array("Hosp01", "Hosp02", "Hosp03", "Hosp04", "Hosp05", "Hosp06", "Hosp07", "Hosp08", "Hosp09", "Hosp10", "Hosp11", "Hosp12")
Else
NumberOfHospitals = 1
Hosparray = Array(CurrHosp)
End If
' Bring in current and previous data
Application.StatusBar = "Open Current"
Workbooks.Open Filename:=SourceFolder & CurrFYFolder & CurrFile, ReadOnly:=True
Application.StatusBar = "Open Budget"
Workbooks.Open Filename:=SourceFolder & CurrFYFolder & BudFile, ReadOnly:=True
Application.StatusBar = "Open Prior"
Workbooks.Open Filename:=SourceFolder & PrevFYFolder & PrevFile, ReadOnly:=True
Application.StatusBar = "Open Prior Budget"
Workbooks.Open Filename:=SourceFolder & PrevFYFolder & PBudFile, ReadOnly:=True
For i = 1 To NumberOfHospitals
Hospname = Hosparray(i)
CurrSheet = Hospname & " Curr"
BudSheet = Hospname & " Bud"
PrevSheet = Hospname & " Prev"
PBudSheet = Hospname & " PBud"
[COLOR=#ff0000] Windows(CurrFile).Activate
Workbooks(CurrFile).Sheets(Hospname).Copy After:=Workbooks(Skeleton).Sheets(Workbooks(Skeleton).Sheets.Count)
Workbooks(Skeleton).Sheets(Hospname).Name = CurrSheet
Windows(BudFile).Activate
Workbooks(BudFile).Sheets(Hospname).Copy After:=Workbooks(Skeleton).Sheets(Workbooks(Skeleton).Sheets.Count)
Workbooks(Skeleton).Sheets(Hospname).Name = BudSheet
Windows(PrevFile).Activate
Workbooks(PrevFile).Sheets(Hospname).Copy After:=Workbooks(Skeleton).Sheets(Workbooks(Skeleton).Sheets.Count)
Workbooks(Skeleton).Sheets(Hospname).Name = PrevSheet
Windows(PBudFile).Activate
Workbooks(PBudFile).Sheets(Hospname).Copy After:=Workbooks(Skeleton).Sheets(Workbooks(Skeleton).Sheets.Count)
Workbooks(Skeleton).Sheets(Hospname).Name = PBudSheet[/COLOR]
Call BuildKPI
KPISheet = Hospname & " KPI"
Call BuildReview
ReviewSheet = Hospname & " Review"
Call BuildMTDSummary
Call BuildYTDSummary
Next i
Application.DisplayAlerts = False
Workbooks(CurrFile).Close SaveChanges:=False
Workbooks(BudFile).Close SaveChanges:=False
Workbooks(PrevFile).Close SaveChanges:=False
Workbooks(PBudFile).Close SaveChanges:=False
If CurrHosp = "All" Then
Call BuildCorpSummary
Workbooks(Skeleton).Sheets("Corporate Summary").Select
Else
Workbooks(Skeleton).Sheets(CurrHosp & " KPI").Select
End If
' Exit housekeeping
' \/
Application.StatusBar = "Calculating"
Calculate
' Remove the source tabs
If ShowYourWork = "No" Then
For i = 1 To NumberOfHospitals
Hospname = Hosparray(i) & " Curr"
Workbooks(Skeleton).Sheets(Hospname).Delete
Hospname = Hosparray(i) & " Bud"
Workbooks(Skeleton).Sheets(Hospname).Delete
Hospname = Hosparray(i) & " Prev"
Workbooks(Skeleton).Sheets(Hospname).Delete
Hospname = Hosparray(i) & " PBud"
Workbooks(Skeleton).Sheets(Hospname).Delete
Next i
End If
' Create the output file
If CreateOutputFiles = "Y" Then
If CurrHosp = "All" Then
SuggestedFile = DefaultOPPath & "\Corp " & CurrMonth & " " & CurrMonthYear & TimeStampVal & ".xlsx"
Else
SuggestedFile = DefaultOPPath & "\" & CurrHosp & " KPI " & CurrMonth & " " & CurrMonthYear & TimeStampVal & ".xlsx"
End If
SaveFilter = "Excel Workbook (*.xlsx), *.xlsx"
OPFileName = Application.GetSaveAsFilename(InitialFileName:=SuggestedFile, _
fileFilter:=SaveFilter)
If OPFileName = False Then
MsgBox "File WILL NOT Save. User cancelled the Save."
Else
Application.StatusBar = "Creating Output Files"
Application.Workbooks.Add
Set NewWB = ActiveWorkbook
For i = 1 To NumberOfHospitals
Windows(Skeleton).Activate
Sheets(Hosparray(i) & " KPI").Select
Sheets(Hosparray(i) & " KPI").Copy After:=Workbooks(NewWB.Name).Sheets(Workbooks(NewWB.Name).Sheets.Count)
Windows(Skeleton).Activate
Sheets(Hosparray(i) & " Review").Select
Sheets(Hosparray(i) & " Review").Copy After:=Workbooks(NewWB.Name).Sheets(Workbooks(NewWB.Name).Sheets.Count)
Windows(Skeleton).Activate
Sheets(Hosparray(i) & " NPSR-MTD Summary").Select
Sheets(Hosparray(i) & " NPSR-MTD Summary").Copy After:=Workbooks(NewWB.Name).Sheets(Workbooks(NewWB.Name).Sheets.Count)
Windows(Skeleton).Activate
Sheets(Hosparray(i) & " NPSR-YTD Summary").Select
Sheets(Hosparray(i) & " NPSR-YTD Summary").Copy After:=Workbooks(NewWB.Name).Sheets(Workbooks(NewWB.Name).Sheets.Count)
Next i
If CurrHosp = "All" Then
Windows(Skeleton).Activate
Sheets("Corporate Summary").Select
Sheets("Corporate Summary").Copy Before:=Workbooks(NewWB.Name).Sheets(1)
Windows(NewWB.Name).Activate
End If
Windows(NewWB.Name).Activate
Sheets("Sheet1").Delete
Application.StatusBar = "Saving"
NewWB.SaveAs Filename:=OPFileName, FileFormat:=xlWorkbookDefault
Windows(NewWB.Name).Close
End If
End If
Windows(Skeleton).Activate
Call HideSheets
Application.StatusBar = False
Application.EnableEvents = True
Application.DisplayAlerts = True
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
EndTime = Now()
MsgBox (StartTime & " - " & EndTime)
' /\
' Exit housekeeping
End Sub