Compile error: Argument not optional when calling sub
<p>So, while I have read some of the many questions on here about similar errors, I haven't found one which helped me understand my problem, so far. If their is a similar question with an appropriate answer, please link it and I shall remove this one.</p>

<p>Now, I am using a small sub <code>Refresh_Activesheet()</code> to look at the name of the WorkSheets and according to that name run the appropriate sub. Most of the subs are in the same module as <code>Refresh_Activesheet()</code>. However, two are in their separate module, for the moment. Now the problem is that when I run <code>Refresh_Activesheet</code> vba returns the argument not optional error and I can't fathom why.</p>

<p><code>Refresh_Activesheet</code></p>

<pre><code>Sub Refresh_Activesheet()

    If IsNumeric(Left(ActiveSheet.Name, 1)) Then
        Emissions_Calculation
    ElseIf ActiveSheet.Name = "Voyages List" Then
        Refresh_Table
    ElseIf ActiveSheet.Name = "Émission Total" Then
        Call Refresh_Emissions.Emission_Total
    ElseIf ActiveSheet.Name = "Consommation Total" Then
    Exit Sub
End If

End Sub
</code></pre>

<p><code>Refresh_Emissions</code> which is the module that contains <code>Emission_Total</code></p>

<pre><code>Option Explicit
Option Base 1

Public j, i, k, n, m, p, l, info, mation, Total As Variant
Public AverageEmission, TotalEmission As String

Sub Emission_Total(ByVal ws As Worksheet)

Application.ScreenUpdating = False
On Error Resume Next

Dim SoxRevenue, SoxGross, MilesTotal, MilesLaden, CargoMT As Double

ThisWorkbook.Sheets("Émission total").Range("A7 : M200").Clear
j = 7
k = 1
For Each ws In ActiveWorkbook.Sheets
    If IsNumeric(Left(ws.Name, 1)) Then
        ws.Unprotect ("12345")

        ThisWorkbook.Sheets("Émission Total").Range("A" &amp; j).Value = ws.Range("C5").Value
        ThisWorkbook.Sheets("Émission Total").Range("B" &amp; j).Value = ws.Range("T2").Value
        ThisWorkbook.Sheets("Émission Total").Range("C" &amp; j).Value = ws.Range("T3").Value
        ThisWorkbook.Sheets("Émission Total").Range("D" &amp; j).Value = ws.Range("G2").Value
        ThisWorkbook.Sheets("Émission Total").Range("E" &amp; j).Value = ws.Range("J2").Value

        info = ThisWorkbook.Sheets("Émission total").Range("F7 : M200").Address
        mation = ws.Range("D6:D8").Address

        SoxRevenue = WorksheetFunction.Sum(ws.Range("V28:V30").Value)
        SoxGross = ws.Range("V43").Value
        MilesLaden = ws.Range("M4").Value
        MilesTotal = ws.Range("M6").Value
        CargoMT = ws.Range("O5").Value

        With ThisWorkbook.Sheets("Émission total").Range(info)
            If (ws.Range(mation).Cells(1, 1).Value) = "" Then
             .Cells(k, 1).Value = ws.Range("W49").Value
             .Cells(k, 2).Value = ws.Range("W50").Value
             .Cells(k, 3).Value = ws.Range("W54").Value
             .Cells(k, 4).Value = ws.Range("W56").Value
             .Cells(k, 5).Value = ws.Range("V43").Value
             .Cells(k, 6).Value = SoxRevenue
             .Cells(k, 7).Value = SoxGross * 1.852 * 1000 * 1000 / (CargoMT * MilesTotal)
             .Cells(k, 8).Value = SoxRevenue * 1.852 * 1000 * 1000 / (CargoMT * MilesLaden)

             .Cells(k, 1).NumberFormat = "?0.00"
             .Cells(k, 2).NumberFormat = "?0.00"
             .Cells(k, 3).NumberFormat = "?0.00"
             .Cells(k, 4).NumberFormat = "?0.00"
             .Cells(k, 5).NumberFormat = "?0.0000"
             .Cells(k, 6).NumberFormat = "?0.0000"
             .Cells(k, 7).NumberFormat = "?0.0000"
             .Cells(k, 8).NumberFormat = "?0.0000"

            ElseIf (ws.Range(mation).Cells(1, 1).Value) = 0 Then
             .Cells(k, 1).Value = ws.Range("W49").Value
             .Cells(k, 2).Value = ws.Range("W50").Value
             .Cells(k, 3).Value = 0
             .Cells(k, 4).Value = 0
             .Cells(k, 5).Value = ws.Range("V43").Value
             .Cells(k, 6).Value = ws.Range("V43").Value
             .Cells(k, 7).Value = 0
             .Cells(k, 8).Value = 0

             .Cells(k, 1).NumberFormat = "?0.00"
             .Cells(k, 2).NumberFormat = "?0.00"
             .Cells(k, 3).NumberFormat = "?0.00"
             .Cells(k, 4).NumberFormat = "?0.00"
             .Cells(k, 5).NumberFormat = "?0.0000"
             .Cells(k, 6).NumberFormat = "?0.0000"
             .Cells(k, 7).NumberFormat = "?0.0000"
             .Cells(k, 8).NumberFormat = "?0.0000"

             ElseIf (ws.Range(mation).Cells(2, 1).Value) = 0 And (ws.Range(mation).Cells(3, 1).Value) = 0 Then
             .Cells(k, 1).Value = ws.Range("W49").Value
             .Cells(k, 2).Value = ws.Range("W50").Value
             .Cells(k, 3).Value = (ws.Range("W49").Value) / ((ws.Range(mation).Cells(1, 1).Value) * ((ws.Range(mation).Cells(2, 1).Value) + (ws.Range(mation).Cells(3, 1).Value))) * 1000 * 1000 / 1.853
             .Cells(k, 4).Value = 0
             .Cells(k, 5).Value = ws.Range("V43").Value
             .Cells(k, 6).Value = ws.Range("V43").Value
             .Cells(k, 7).Value = (ws.Range("V43").Value) / ((ws.Range(mation).Cells(1, 1).Value) * ((ws.Range(mation).Cells(2, 1).Value) + (ws.Range(mation).Cells(3, 1).Value))) * 1000 * 1000 / 1.853
             .Cells(k, 8).Value = 0

             .Cells(k, 1).NumberFormat = "?0.00"
             .Cells(k, 2).NumberFormat = "?0.00"
             .Cells(k, 3).NumberFormat = "?0.00"
             .Cells(k, 4).NumberFormat = "?0.00"
             .Cells(k, 5).NumberFormat = "?0.0000"
             .Cells(k, 6).NumberFormat = "?0.0000"
             .Cells(k, 7).NumberFormat = "?0.0000"
             .Cells(k, 8).NumberFormat = "?0.0000"

             ElseIf (ws.Range(mation).Cells(2, 1).Value) = "" And (ws.Range(mation).Cells(3, 1).Value) = "" Then
             .Cells(k, 1).Value = ws.Range("W49").Value
             .Cells(k, 2).Value = ws.Range("W50").Value
             .Cells(k, 3).Value = (ws.Range("W49").Value) / ((ws.Range(mation).Cells(1, 1).Value) * ((ws.Range(mation).Cells(2, 1).Value) + (ws.Range(mation).Cells(3, 1).Value))) * 1000 * 1000 / 1.853
             .Cells(k, 4).Value = 0
             .Cells(k, 5).Value = ws.Range("V43").Value
             .Cells(k, 6).Value = ws.Range("V43").Value
             .Cells(k, 7).Value = (ws.Range("V43").Value) / ((ws.Range(mation).Cells(1, 1).Value) * ((ws.Range(mation).Cells(2, 1).Value) + (ws.Range(mation).Cells(3, 1).Value))) * 1000 * 1000 / 1.853
             .Cells(k, 8).Value = 0

             .Cells(k, 1).NumberFormat = "?0.00"
             .Cells(k, 2).NumberFormat = "?0.00"
             .Cells(k, 3).NumberFormat = "?0.00"
             .Cells(k, 4).NumberFormat = "?0.00"
             .Cells(k, 5).NumberFormat = "?0.0000"
             .Cells(k, 6).NumberFormat = "?0.0000"
             .Cells(k, 7).NumberFormat = "?0.0000"
             .Cells(k, 8).NumberFormat = "?0.0000"

            Else
             .Cells(k, 1).Value = ws.Range("W49").Value
             .Cells(k, 2).Value = ws.Range("W50").Value
             .Cells(k, 3).Value = (ws.Range("W49").Value) / ((ws.Range(mation).Cells(1, 1).Value) * ((ws.Range(mation).Cells(2, 1).Value) + (ws.Range(mation).Cells(3, 1).Value))) * 1000 * 1000 / 1.853
             .Cells(k, 4).Value = (ws.Range("W50").Value) / ((ws.Range(mation).Cells(1, 1).Value) * ((ws.Range(mation).Cells(2, 1).Value))) * 1000 * 1000 / 1.853
             .Cells(k, 5).Value = ws.Range("V43").Value
             .Cells(k, 6).Value = ws.Range("V43").Value
             .Cells(k, 7).Value = (ws.Range("V43").Value) / ((ws.Range(mation).Cells(1, 1).Value) * ((ws.Range(mation).Cells(2, 1).Value) + (ws.Range(mation).Cells(3, 1).Value))) * 1000 * 1000 / 1.853
             .Cells(k, 8).Value = (ws.Range("V43").Value) / ((ws.Range(mation).Cells(1, 1).Value) * ((ws.Range(mation).Cells(2, 1).Value))) * 1000 * 1000 / 1.853

             .Cells(k, 1).NumberFormat = "?0.00"
             .Cells(k, 2).NumberFormat = "?0.00"
             .Cells(k, 3).NumberFormat = "?0.00"
             .Cells(k, 4).NumberFormat = "?0.00"
             .Cells(k, 5).NumberFormat = "?0.0000"
             .Cells(k, 6).NumberFormat = "?0.0000"
             .Cells(k, 7).NumberFormat = "?0.0000"
             .Cells(k, 8).NumberFormat = "?0.0000"

            End If

         End With

        k = k + 1
        j = j + 1

        ws.Protect ("12345")

    ElseIf ws.Name = "Émission total" Then
        ws.Unprotect ("12345")

    End If

Next ws
    k = k + 7
    p = k - 1

    ThisWorkbook.Sheets("Émission total").Range("D" &amp; k).Value = "AverageEmission"
    ThisWorkbook.Sheets("Émission total").Range("F" &amp; k).Value = Application.Average(ThisWorkbook.Sheets("Émission total").Range("F7 : F" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("G" &amp; k).Value = Application.Average(ThisWorkbook.Sheets("Émission total").Range("G7 : G" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("H" &amp; k).Value = Application.Average(ThisWorkbook.Sheets("Émission total").Range("H7 : H" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("I" &amp; k).Value = Application.Average(ThisWorkbook.Sheets("Émission total").Range("I7 : I" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("J" &amp; k).Value = Application.Average(ThisWorkbook.Sheets("Émission total").Range("J7 : J" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("K" &amp; k).Value = Application.Average(ThisWorkbook.Sheets("Émission total").Range("K7 : K" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("L" &amp; k).Value = Application.Average(ThisWorkbook.Sheets("Émission total").Range("L7 : L" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("M" &amp; k).Value = Application.Average(ThisWorkbook.Sheets("Émission total").Range("M7 : M" &amp; p))

    ThisWorkbook.Sheets("Émission total").Range("F" &amp; k).NumberFormat = "?0.00"
    ThisWorkbook.Sheets("Émission total").Range("G" &amp; k).NumberFormat = "?0.00"
    ThisWorkbook.Sheets("Émission total").Range("H" &amp; k).NumberFormat = "?0.00"
    ThisWorkbook.Sheets("Émission total").Range("I" &amp; k).NumberFormat = "?0.00"
    ThisWorkbook.Sheets("Émission total").Range("J" &amp; k).NumberFormat = "?0.0000"
    ThisWorkbook.Sheets("Émission total").Range("K" &amp; k).NumberFormat = "?0.0000"
    ThisWorkbook.Sheets("Émission total").Range("L" &amp; k).NumberFormat = "?0.0000"
    ThisWorkbook.Sheets("Émission total").Range("M" &amp; k).NumberFormat = "?0.0000"

    l = k + 2

    ThisWorkbook.Sheets("Émission total").Range("D" &amp; l).Value = "TotalEmission"
    ThisWorkbook.Sheets("Émission total").Range("F" &amp; l).Value = Application.Sum(ThisWorkbook.Sheets("Émission total").Range("F7 : F" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("G" &amp; l).Value = Application.Sum(ThisWorkbook.Sheets("Émission total").Range("G7 : G" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("H" &amp; l).Value = Application.Sum(ThisWorkbook.Sheets("Émission total").Range("H7 : H" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("I" &amp; l).Value = Application.Sum(ThisWorkbook.Sheets("Émission total").Range("I7 : I" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("J" &amp; l).Value = Application.Sum(ThisWorkbook.Sheets("Émission total").Range("J7 : J" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("K" &amp; l).Value = Application.Sum(ThisWorkbook.Sheets("Émission total").Range("K7 : K" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("L" &amp; l).Value = Application.Sum(ThisWorkbook.Sheets("Émission total").Range("L7 : L" &amp; p))
    ThisWorkbook.Sheets("Émission total").Range("M" &amp; l).Value = Application.Sum(ThisWorkbook.Sheets("Émission total").Range("M7 : M" &amp; p))

    ThisWorkbook.Sheets("Émission total").Range("F" &amp; l).NumberFormat = "?0.00"
    ThisWorkbook.Sheets("Émission total").Range("G" &amp; l).NumberFormat = "?0.00"
    ThisWorkbook.Sheets("Émission total").Range("H" &amp; l).NumberFormat = "?0.00"
    ThisWorkbook.Sheets("Émission total").Range("I" &amp; l).NumberFormat = "?0.00"
    ThisWorkbook.Sheets("Émission total").Range("J" &amp; l).NumberFormat = "?0.0000"
    ThisWorkbook.Sheets("Émission total").Range("K" &amp; l).NumberFormat = "?0.0000"
    ThisWorkbook.Sheets("Émission total").Range("L" &amp; l).NumberFormat = "?0.0000"
    ThisWorkbook.Sheets("Émission total").Range("M" &amp; l).NumberFormat = "?0.0000"

ThisWorkbook.Sheets("Émission Total").Protect ("12345")
ThisWorkbook.Protect ("12345")
Application.ScreenUpdating = True

End Sub
</code></pre>