title: Compile Error: Argument not optional error when I call macro from other macro
body: <p>I have a button that when pressed calls some Macros to be done. 
  All my macros are running fine with Exception of the “AddDropDown“ Macro. 
  It keeps giving me an error that says “Compile Error: Argument not optional (Error 449)”. </p>
  
  <p>These run fine if I manually just select them and press Run. </p>
  
  <p>The help page says “The number and types of arguments must match those expected. This error has the following causes and solutions:
  •   Incorrect number of arguments. Supply all necessary arguments. For example, the Left function requires two arguments; the first representing the character string being operated on, and the second representing the number of characters to return from the left side of the string. Because neither argument is optional, both must be supplied.
  •   Omitted argument isn't optional. An argument can only be omitted from a call to a user-defined procedure if it was declared Optional in the procedure declaration. Either supply the argument in the call or declare the parameter Optional in the definition.”</p>
  
  <p>My code is something like this:</p>
  
  <pre><code>    Private Sub Button_Click()
          Macro1
          Macro2
          AddDropDowns
          AddDropDown
          Macro3
      End Sub
  </code></pre>
  
  <p>And the Macro that gives the error is the one below:</p>
  
  <pre><code>Sub AddDropDowns()
  Dim cell As Range
  Dim iDropDown As Long
  
  With Worksheets("SourceSheet")
      For Each cell In .Range("B13", .Cells(13,     .Columns.Count).End(xlToLeft)).SpecialCells(XlCellType.xlCellTypeConstants)
          AddDropDownEnroll Worksheets("DropDownsSheet"), iDropDown, cell.Offset(-1).Value, "='" &amp; .Name &amp; "'!" &amp; cell.Resize(WorksheetFunction.CountA(cell.EntireColumn) - 1).Address 
      Next cell
  End With
  End Sub
  
  
  Sub AddDropDown(sht As Worksheet, dropDownCounter As Long, header As String, validationFormula As String)
  With sht.Range("A1").Offset(, dropDownCounter) '&lt;--| reference passed sheet row 1 passed column
      .Cells(1, 1) = header '&lt;--| write header
      With .Cells(2, 1).Validation '&lt;--| reference 'Validation' property of cell 1 row below currently referenced one
          .Delete            
          .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=validationFormula
          .IgnoreBlank = True
          .InCellDropdown = True
          .InputTitle = ""
          .ErrorTitle = ""
          .InputMessage = ""
          .ErrorMessage = ""
          .ShowInput = True
          .ShowError = True
      End With
  End With
  dropDownCounter = dropDownCounter + 1
  End Sub
  </code></pre>