Public Sub correctBugs()
  Dim i As Long
  Dim tmpRow1 As Long, tmpRow2 As Long, tmpColumn1 As Long, tmpColumn2 As Long
  Dim mNoOfRowsPerDay As Integer
  Dim mNoOfTrainingTypes As Integer
  Dim mNoOfDays As Long
  Dim mNoOfWeeks As Long
  Dim mNoOfMonths As Long
  Dim mDayStartRow As Long, mDayStartColumn As Long
  Dim mDayNoOfRows, mDayNoOfColumns As Long
  Dim mWeekStartRow As Long, mWeekStartColumn As Long
  Dim mWeekNoOfRows, mWeekNoOfColumns As Long
  Dim mMonthStartRow As Long, mMonthStartColumn As Long
  Dim mMonthNoOfRows, mMonthNoOfColumns As Long
  Dim mStartDate As Date, mEndDate As Date
  Dim mStartWeek As Long, mEndWeek As Long
  Dim mStartMonth As Long, mEndMonth As Long
  Dim mShowHeartRate As Boolean, mShowOTechnic As Boolean, mShowLegPlaces As Boolean
  Dim chartObjectIndex As Integer

  mStartDate = CDate(shtSetup.Cells(6, 5).Value)
  mEndDate = CDate(shtSetup.Cells(7, 5).Value)

  ' training types
  mNoOfTrainingTypes = 0
  For i = 0 To 9
    If shtSetup.Cells(11 + i, 3).Value <> "" Then
      mNoOfTrainingTypes = mNoOfTrainingTypes + 1
    End If
  Next


  mStartWeek = serialWeek(mStartDate)
  mEndWeek = serialWeek(mEndDate)

  mStartMonth = serialMonth(mStartDate)
  mEndMonth = serialMonth(mEndDate)

  mShowHeartRate = (shtSetup.Cells(24, 5).Value = "Ja")
  mShowOTechnic = (shtSetup.Cells(25, 5).Value = "Ja")
  mShowLegPlaces = (shtSetup.Cells(26, 5).Value = "Ja")

  mNoOfRowsPerDay = 4
  mNoOfDays = CLng(mEndDate) - CLng(mStartDate) + 1
  mNoOfWeeks = mEndWeek - mStartWeek + 1
  mNoOfMonths = mEndMonth - mStartMonth + 1

  mDayStartRow = 5
  mDayStartColumn = 2
  mDayNoOfRows = mNoOfDays * mNoOfRowsPerDay
  mDayNoOfColumns = 17 + IIf(mShowHeartRate, 4, 0) + IIf(mShowOTechnic, 4, 0) + IIf(mShowLegPlaces, 4, 0)

  mWeekStartRow = 4
  mWeekStartColumn = 2
  mWeekNoOfRows = (mEndWeek - mStartWeek + 1) * 2
  mWeekNoOfColumns = 15 + mNoOfTrainingTypes * 2 + IIf(mShowOTechnic, 4, 0) + IIf(mShowLegPlaces, 4, 0)

  mMonthStartRow = 4
  mMonthStartColumn = 2
  mMonthNoOfRows = (mEndMonth - mStartMonth + 1) * 2
  mMonthNoOfColumns = 15 + mNoOfTrainingTypes * 2 + IIf(mShowOTechnic, 4, 0) + IIf(mShowLegPlaces, 4, 0)


  ' DAY GRAPH SHEET
  shtDayGraphs.Activate

  tmpRow1 = mDayStartRow
  tmpRow2 = mDayStartRow + mNoOfRowsPerDay * mNoOfDays - 1
  tmpColumn2 = mDayStartColumn + mDayNoOfColumns + 3 * mNoOfTrainingTypes + 6

  With shtDayGraphs.ChartObjects(2)
    For i = 0 To 3
      .Chart.SeriesCollection(i + 1).Values = "=Dag!" & cellAddressR1C1(tmpRow1, tmpColumn2 + i, tmpRow2, tmpColumn2 + i)
    Next
  End With

  If mShowHeartRate Then
  ' heart rate
    tmpColumn2 = mDayStartColumn + mDayNoOfColumns + 3 * mNoOfTrainingTypes + 10
    With shtDayGraphs.ChartObjects(4)
      For i = 0 To 7
        .Chart.SeriesCollection(i + 1).Values = "=Dag!" & cellAddressR1C1(tmpRow1, tmpColumn2 + i, tmpRow2, tmpColumn2 + i)
      Next
    End With

    ' Borg
    tmpColumn2 = mDayStartColumn + mDayNoOfColumns + 3 * mNoOfTrainingTypes + 18
    With shtDayGraphs.ChartObjects(5)
      For i = 0 To 7
        .Chart.SeriesCollection(i + 1).Values = "=Dag!" & cellAddressR1C1(tmpRow1, tmpColumn2 + i, tmpRow2, tmpColumn2 + i)
      Next
    End With
  End If


  ' WEEK GRAPH SHEET
  shtWeekGraphs.Activate

  tmpRow1 = mWeekStartRow
  tmpRow2 = mWeekStartRow + mNoOfWeeks - 1
  tmpColumn1 = mWeekStartColumn + mWeekNoOfColumns

  ' ill, injury, rest days
  tmpColumn2 = mWeekStartColumn + mWeekNoOfColumns + 1 + 3 * mNoOfTrainingTypes + IIf(mShowOTechnic, 9, 0) + IIf(mShowLegPlaces, 4, 0) + 18
  With shtWeekGraphs.ChartObjects(5)
    For i = 0 To 2
      With .Chart.SeriesCollection(i + 1)
        .Values = "=Vecka!" & cellAddressR1C1(tmpRow1, tmpColumn2 + i, tmpRow2, tmpColumn2 + i)
      End With
    Next
  End With

  ' shape
  tmpColumn2 = mWeekStartColumn + mWeekNoOfColumns + 1 + 3 * mNoOfTrainingTypes + 3 + IIf(mShowOTechnic, 9, 0) + IIf(mShowLegPlaces, 4, 0)
  With shtWeekGraphs.ChartObjects(7)
    With .Chart.SeriesCollection(1)
      .Values = "=Vecka!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 2, tmpRow2, tmpColumn2 + 2)
      shtWeekGraphs.Select
      ActiveSheet.ChartObjects(7).Activate
      ActiveChart.SeriesCollection(1).ErrorBars.Select
      ExecuteExcel4Macro "ERRORBAR.Y(1,5,""=Vecka!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 4, tmpRow2, tmpColumn2 + 4) & """,""=Vecka!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 3, tmpRow2, tmpColumn2 + 3) & """)"
      Selection.EndStyle = xlCap
    End With
  End With

  ' rest heart rate
  tmpColumn2 = mWeekStartColumn + mWeekNoOfColumns + 1 + 3 * mNoOfTrainingTypes + 8 + IIf(mShowOTechnic, 9, 0) + IIf(mShowLegPlaces, 4, 0)
  With shtWeekGraphs.ChartObjects(6)
    With .Chart.SeriesCollection(1)
      .Values = "=Vecka!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 2, tmpRow2, tmpColumn2 + 2)
      shtWeekGraphs.Select
      ActiveSheet.ChartObjects(6).Activate
      ActiveChart.SeriesCollection(1).ErrorBars.Select
      ExecuteExcel4Macro "ERRORBAR.Y(1,5,""=Vecka!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 4, tmpRow2, tmpColumn2 + 4) & """,""=Vecka!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 3, tmpRow2, tmpColumn2 + 3) & """)"
      Selection.EndStyle = xlCap
    End With
  End With

  ' sleep time
  chartObjectIndex = 10 - IIf(Not mShowOTechnic, 2, 0)
  tmpColumn2 = mWeekStartColumn + mWeekNoOfColumns + 1 + 3 * mNoOfTrainingTypes + 13 + IIf(mShowOTechnic, 9, 0) + IIf(mShowLegPlaces, 4, 0)
  With shtWeekGraphs.ChartObjects(chartObjectIndex)
    With .Chart.SeriesCollection(1)
      .Values = "=Vecka!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 2, tmpRow2, tmpColumn2 + 2)
      shtWeekGraphs.Select
      ActiveSheet.ChartObjects(chartObjectIndex).Activate
      ActiveChart.SeriesCollection(1).ErrorBars.Select
      ExecuteExcel4Macro "ERRORBAR.Y(1,5,""=Vecka!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 4, tmpRow2, tmpColumn2 + 4) & """,""=Vecka!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 3, tmpRow2, tmpColumn2 + 3) & """)"
      Selection.EndStyle = xlCap
    End With
  End With


  ' MONTH GRAPH SHEET

  shtMonthGraphs.Activate

  tmpRow1 = mMonthStartRow
  tmpRow2 = mMonthStartRow + mNoOfMonths - 1
  tmpColumn1 = mMonthStartColumn + mMonthNoOfColumns

  ' ill, injury, rest days
  tmpColumn2 = mMonthStartColumn + mMonthNoOfColumns + 1 + 3 * mNoOfTrainingTypes + IIf(mShowOTechnic, 9, 0) + IIf(mShowLegPlaces, 4, 0) + 18
  With shtMonthGraphs.ChartObjects(5)
    For i = 0 To 2
      With .Chart.SeriesCollection(i + 1)
        .Values = "=Månad!" & cellAddressR1C1(tmpRow1, tmpColumn2 + i, tmpRow2, tmpColumn2 + i)
      End With
    Next
  End With

  ' shape
  tmpColumn2 = mMonthStartColumn + mMonthNoOfColumns + 1 + 3 * mNoOfTrainingTypes + 3 + IIf(mShowOTechnic, 9, 0) + IIf(mShowLegPlaces, 4, 0)
  With shtMonthGraphs.ChartObjects(7)
    With .Chart.SeriesCollection(1)
      .Values = "=Månad!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 2, tmpRow2, tmpColumn2 + 2)
      shtMonthGraphs.Select
      ActiveSheet.ChartObjects(7).Activate
      ActiveChart.SeriesCollection(1).ErrorBars.Select
      ExecuteExcel4Macro "ERRORBAR.Y(1,5,""=Månad!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 4, tmpRow2, tmpColumn2 + 4) & """,""=Månad!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 3, tmpRow2, tmpColumn2 + 3) & """)"
      Selection.EndStyle = xlCap
    End With
  End With

  ' rest heart rate
  tmpColumn2 = mMonthStartColumn + mMonthNoOfColumns + 1 + 3 * mNoOfTrainingTypes + 8 + IIf(mShowOTechnic, 9, 0) + IIf(mShowLegPlaces, 4, 0)
  With shtMonthGraphs.ChartObjects(6)
    With .Chart.SeriesCollection(1)
      .Values = "=Månad!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 2, tmpRow2, tmpColumn2 + 2)
      shtMonthGraphs.Select
      ActiveSheet.ChartObjects(6).Activate
      ActiveChart.SeriesCollection(1).ErrorBars.Select
      ExecuteExcel4Macro "ERRORBAR.Y(1,5,""=Månad!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 4, tmpRow2, tmpColumn2 + 4) & """,""=Månad!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 3, tmpRow2, tmpColumn2 + 3) & """)"
      Selection.EndStyle = xlCap
    End With
  End With

  ' sleep time
  chartObjectIndex = 10 - IIf(Not mShowOTechnic, 2, 0)
  tmpColumn2 = mMonthStartColumn + mMonthNoOfColumns + 1 + 3 * mNoOfTrainingTypes + 13 + IIf(mShowOTechnic, 9, 0) + IIf(mShowLegPlaces, 4, 0)
  With shtMonthGraphs.ChartObjects(chartObjectIndex)
    With .Chart.SeriesCollection(1)
      .Values = "=Månad!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 2, tmpRow2, tmpColumn2 + 2)
      shtMonthGraphs.Select
      ActiveSheet.ChartObjects(chartObjectIndex).Activate
      ActiveChart.SeriesCollection(1).ErrorBars.Select
      ExecuteExcel4Macro "ERRORBAR.Y(1,5,""=Månad!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 4, tmpRow2, tmpColumn2 + 4) & """,""=Månad!" & cellAddressR1C1(tmpRow1, tmpColumn2 + 3, tmpRow2, tmpColumn2 + 3) & """)"
      Selection.EndStyle = xlCap
    End With
  End With

  MsgBox "Diagrammen är nu korrekta. Klicka OK och stäng Visual Basic-fönstret genom att trycka Alt+Q. Spara sedan träningsdagboken.", vbInformation, "Träningsdagbok"

End Sub