If I have two arrays, dates and values, how would I graph the two in VBA? (values on y axis, and dates on x axis).
I have created a userform for this, with inputs Initial Date, Final Date, and Graph Type.
In the code behind the form, I have established a range of dates, and the corresponding range of values.
How would I generate a bar graph with values (y axis) vs. dates (axis)?
How would I generate a line grpah with values (y axis) vs. dates (axis)?
The values are named rOEERange and the dates are labeled rDateRange. Below is my code I used to find the rOEERange and the rDateRange.
I have created a userform for this, with inputs Initial Date, Final Date, and Graph Type.
In the code behind the form, I have established a range of dates, and the corresponding range of values.
How would I generate a bar graph with values (y axis) vs. dates (axis)?
How would I generate a line grpah with values (y axis) vs. dates (axis)?
The values are named rOEERange and the dates are labeled rDateRange. Below is my code I used to find the rOEERange and the rDateRange.
Code:
Dim rInitialDate As Range, rFinalDate As Range, rDateRange As Range
With Worksheets("Calculation")
Set rInitialDate = .Find(What:=DateValue(InitialDate), After:=.Cells(1, 5), LookIn:=xlFormulas, LookAt:=xlWhole, SearchDirection:=xlNext, SearchFormat:=False)
Set rFinalDate = .Find(What:=DateValue(FinalDate), After:=.Cells(1, 5), LookIn:=xlFormulas, LookAt:=xlWhole, SearchDirection:=xlPrevious, SearchFormat:=False)
End With
If rInitialDate Is Nothing Or rFinalDate Is Nothing Then
MsgBox "Not able to find both dates"
Else
Set rDateRange = .Range(rInitialDate, rFinalDate)
End If
End With
Dim startRow As Integer, endRow As Integer, rDateRangeIndex As Integer, rOEERange As Range
Set rInitialDate.Row = startRow
Set rFinalDate.Row = endRow
With Worksheets("Calculation")
Set startOEECell = .Cells(startRow, 45)
Set endOEECell = .Cells(endRow, 45)
Set rOEERange = .Range(startOEECell, endOEECell)
End With
'to create new Range to reflect MC,Shift,Date
With Worksheets("Calculation")
For i = startRow To endRow Step 1
If Cells(i, 7) Is Not MC.Value Or Cells(i, 6) Is Not Shift.Value _
Or DateValue(rDateRange(i - (startRow - 1))) < DateValue(InitialDate) _
Or DateValue(rDateRange(i - (startRow - 1))) > DateValue(FinalDate) Then
rDateRange (i - (startRow - 1)) Is Nothing
rOEERange (i - (startRow - 1)) Is Nothing
End If
Next i
End With