title: Compile error: Argument not optional vba excel
body: <p>I'm trying to write a code where I input an image after checking the info in each sheet of my workbook. Since I added for each to the code it stopped working and started giving me this compile error message, the code works without the for each but i want it to be automatic. Can you help?</p>
  
  <pre><code>Sub ForEachWs()
  Dim ws As Worksheet
  
      For Each ws In ActiveWorkbook.Worksheets
      Call Worksheet_SelectionChange
      Next ws
  
  End Sub
  </code></pre>
  
  <hr>
  
  <pre><code>Sub Worksheet_SelectionChange(ByVal Target As Range)
  
     On Error Resume Next
  
      If Target.Column = 2 And Target.Row = 1 Then ' onde clicar para buscar imagem
  
          BuscarImagemTavares (Target.Value)
  
      End If
  
  End Sub
  </code></pre>
  
  <hr>
  
  <pre><code>Sub BuscarImagemTavares(Produto As String)
      On Error Resume Next
      'Autor: Tavares
  
      If Range("B2") = "ok" Then 'Verifica se celula B2 tem ok se sim não insere a imagem novamente
      Exit Sub
      End If
  
      Dim Imagem, CaminhoImagem As String
  
      If Len(Produto) = 3 Then 'acrescenta 00 antes do cod do produto
          Produto = "00" &amp; Produto
      End If
      If Len(Produto) = 4 Then 'acrescenta 0 antes do cod do produto
          Produto = "0" &amp; Produto
      End If
  
      Imagem = Dir("\\Clfssrvfar\ENGENHARIA\GESTAO_DE_PROJETOS\04. FOLLOWUP\09. ARQUIVOS PARA FERRAMENTAS\09.1 IMAGENS\09.1.2 IMAGENS PRODUTOS\" &amp; Produto &amp; "*", vbDirectory)
  
      CaminhoImagem = "\\Clfssrvfar\ENGENHARIA\GESTAO_DE_PROJETOS\04. FOLLOWUP\09. ARQUIVOS PARA FERRAMENTAS\09.1 IMAGENS\09.1.2 IMAGENS PRODUTOS\" &amp; Imagem
  
  
  
      With ActiveSheet.Pictures.Insert(CaminhoImagem) 'Mostra Imagem
          'Define tamanho e posição da imagem
  
      With .ShapeRange
          .Width = 75
          .Height = 115
          .Top = 7
          .Left = 715
          '*above it's me trying to make white background transparent*
              'With .PictureFormat
              '.TransparentBackground = True
              '.TransparencyColor = RGB(255, 0, 0)
              'End With
          '.Fill.Visible = True
          'End With
          'ActiveSheet.Shapes.Range(Array("Picture 2")).Select
          'Application.CommandBars("Format Object").Visible = False
      End With
      End With
      If CaminhoImagem &lt;&gt; "" Then 'Após inserir imagem informa "ok" na B2 para não inserir de novo
      Range("B2").Select
      ActiveCell.FormulaR1C1 = "OK"
      End If
  
  End Sub
  </code></pre>