Macro para crear una nueva hoja, según condición en otra celda

Estoy intentando crear una macro para que me cree una hoja nueva llamada "añadir" si en Hoja1, columna B existe alguna celda en blanco. Funciona... Pero! Si encuentra 40 celdas en blanco me crea la hoja 40 veces :S
Este es el código, no es que no sepa dónde está el error (la instrucción de crear la hoja está dentro del bucle), es que no encuentro otra idea para que me recorra toda la columna y compruebe las celdas en blanco... ¿alguna sugerencia? Gracias!
For i = 2 to ActiveSheet.UsedRange.Rows (ActiveSheet.UsedRange.Rows.Count).Row
If Worksheets("hoja1").Cells(i, "B").Value = "" then
worksheets.add.name = "añadir"
Next

1 respuesta

Respuesta
1

Prueba así:

Sub test()
  Dim i As Long, sHoja As String
  sHoja = "añadir"
  With Worksheets("hoja1")
    For i = 2 To .UsedRange.Rows(.UsedRange.Rows.Count).Row
      If .Cells(i, "B").Value = "" Then
        If Not Evaluate("ISREF('" & sHoja & "'!A1)") Then
          Worksheets.Add.Name = "añadir"
        End If
        Exit For
      End If
    Next
  End With
End Sub

Aquí otra macro con otro enfoque:

Sub test2()
  Dim sHoja As String, fila As Variant
  On Error Resume Next
  fila = Sheets("hoja1").Range("A2", Sheets("hoja1").Range("A" & Rows.Count).End(3)).SpecialCells(xlCellTypeBlanks).Cells(1).Row
  On Error GoTo 0
  If fila <> "" Then
    sHoja = "añadir"
    If Not Evaluate("ISREF('" & sHoja & "'!A1)") Then Worksheets.Add.Name = "añadir"
  End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas