title: VBA loop in change event error
body: <p>I have this macro that creates a textbox in worksheet 2 when I write something in cell A1 of worksheet 1, and when I delete that value it deletes the textbox.
  I want to do that for several cells, but it just is working. If Cell A1 has a value a textbox with that value should appear, if the A2 has a value a textbox with that value should appear, but if I delete A1 it should delete the texbox that refers to A1, not all of the textboxes</p>
  
  <pre><code>Sub RemoveShapes()
  
      Dim shp As Shape
      For Each shp In Worksheets(2).Shapes
          If shp.Type = msoTextBox Then shp.Delete
      Next shp
  
  End Sub
  
  Sub criarcaixastexto()
  
      Dim wsActive As Worksheet
      Dim box As Shape
  
      Set wsActive = Worksheets(2)
      Set box = wsActive.Shapes.AddTextbox(msoTextOrientationHorizontal, 20, 20, 100, 50)
  
      box.TextFrame.Characters.Text = Range("Folha1!A1").value
  
  End Sub
  
  Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address = "$A$1" Then
          Call criarcaixastexto
      End If
  End Sub
  </code></pre>
  
  <p>I tried this but it doesn't work</p>
  
  <pre><code>'macro para apagar
  Sub removercaixas()
  
      Dim shp As Shape
      For Each shp In Worksheets(2).Shapes
          If shp.Type = msoTextBox Then shp.Delete
      Next shp
  
  End Sub
  
  'macro para criar caixas de texto
  Sub criarcaixastexto()
  
     Dim wsActive As Worksheet
     Dim box As Shape
  
     Set wsActive = Worksheets(2)
     Set box = wsActive.Shapes.AddTextbox(msoTextOrientationHorizontal, 20, 20, 100, 50)
  
     box.TextFrame.Characters.Text = Worksheets(1).Cells(i, 1).Value
  
  End Sub
  
  ' macro corre ao escrever texto numa célula
  Private Sub Worksheet_Change(ByVal Target As Range)
  
      For i = 1 To 3
          If Target.Count &gt; 1 Then Exit Sub
          If Not Intersect(Target, Range("A&amp;i")) Is Nothing Then
              removercaixas
          If Len(Target) &gt; 1 Then criarcaixastexto
          End If
      Next
  
  End Sub
  </code></pre>