title: VBA EXCEL: How to call a subroutine in another subroutine?
body: <pre><code>Sub LoopAllExcelFilesInFolder()
  'PURPOSE: To loop through all Excel files in a user specified folder and perform a set task on them
  
  Dim wb As Workbook
  Dim myPath As String
  Dim myFile As String
  Dim myExtension As String
  Dim FldrPicker As FileDialog
  
  'Optimize Macro Speed
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.Calculation = xlCalculationManual
  
  'Retrieve Target Folder Path From User
    Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
  
      With FldrPicker
        .Title = "Select A Target Folder"
        .AllowMultiSelect = False
          If .Show &lt;&gt; -1 Then GoTo NextCode
          myPath = .SelectedItems(1) &amp; "\"
      End With
  
  'In Case of Cancel
  NextCode:
    myPath = myPath
    If myPath = "" Then GoTo ResetSettings
  
  'Target File Extension (must include wildcard "*")
    myExtension = "*.xls*"
  
  'Target Path with Ending Extention
    myFile = Dir(myPath &amp; myExtension)
  
  'Loop through each Excel file in folder
    Do While myFile &lt;&gt; ""
      'Set variable equal to opened workbook
        Set wb = Workbooks.Open(Filename:=myPath &amp; myFile)
  
      'Ensure Workbook has opened before moving on to next line of code
        DoEvents
  
     'Here I want my code
     Sub Licenses()
  Dim transientLicense As Integer
      Dim steadyLicense As Integer
      Dim staticLicense As Integer
      Dim arr1 As Variant, arr2 As Variant, elem As Variant
  
      arr1 = Array("radial vibration", "acceleration", "acceleration2", "velocity", "velocity2") '&lt;--| set your first values list
      arr2 = Array("axial vibration", "temperature", "pressure") '&lt;--| set your 2nd values list
      With Worksheets("Rack Properties") '&lt;-| reference your relevant worksheet
          With .Range("D1", Cells(Rows.Count, "AH").End(xlUp)) '&lt;--| reference its columns D to AH range from row 1 down to column AH last not empty row
              For Each elem In arr1 '&lt;--| loop through 1st array list
                  transientLicense = transientLicense + WorksheetFunction.CountIfs(.Columns(1), "active", .Columns(20), "yes", .Columns(31), elem) '&lt;-- update 'transientLicense' for every record matching: "active" in referenced range column 1(i.e. "D"), "yes" in referenced range column 20 (i.e. "W") and current list element in referenced range column 31 (i.e. "AH")
                  steadyLicense = steadyLicense + WorksheetFunction.CountIfs(.Columns(1), "active", .Columns(20), "no", .Columns(31), elem) '&lt;-- update 'steadyLicense' for every record matching: "active" in referenced range column 1(i.e. "D"), "no" in referenced range column 20 (i.e. "W") and current list element in referenced range column 31 (i.e. "AH")
              Next elem
              For Each elem In arr2 '&lt;--| loop through 2nd array list
                  staticLicense = staticLicense + WorksheetFunction.CountIfs(.Columns(1), "active", .Columns(31), elem) '&lt;-- update 'staticLicense' for every record matching: "active" in referenced range column 1(i.e. "D") and current list element in referenced range column 31 (i.e. "AH")
              Next elem
          End With
      End With
  
   With Worksheets.Add
          .Name = "Results"
          .Columns("B:D").ColumnWidth = 20
          .Range("B2:D2").Value = Array("Transient Licenses", "Steady Licenses", "Static Licenses")
          .Range("B3:D3").Value = Array(transientLicense, steadyLicense, staticLicense)
      End With
  End Sub
  
  
  
      'Save and Close Workbook
        wb.Close SaveChanges:=True
  
      'Ensure Workbook has closed before moving on to next line of code
        DoEvents
  
      'Get next file name
        myFile = Dir
    Loop
  
  'Message Box when tasks are completed
    MsgBox "Task Complete!"
  
  ResetSettings:
    'Reset Macro Optimization Settings
      Application.EnableEvents = True
      Application.Calculation = xlCalculationAutomatic
      Application.ScreenUpdating = True
  
  End Sub
  </code></pre>
  
  <p>I want to open all the excel sheets in a given folder and count the total no of licenses in each sheet and display the output in another workbook.
  I have just started learning VBA and I am not able to use it in a macro.
  A little help is really appreciated.
  thank you so much in advance :)</p>