SI A1="" que en B1 ponga "1" (Con macros)

Como puedo poner en una macro esto:
SI A1 = "" (esta vacio) en B1 ponga "1"
SI A3 = "" (esta vacio) en B3 ponga "1"
y así hasta la fila 30 (A1:A30)
Parece una chorrada pero ahora no caigo como puedo hacerlo. Lo he intentado con esto pero me da error:
Private Sub Worksheet_Change(ByVal Target As Range)
If Union(Target, Range("A1:A30")).Address = Range("A1:A30").Address Then
Value = ""
Target.Offset(, 1) = "1"
End If
End Sub
Saludos

1 respuesta

Respuesta
1
Nikelado87 este código te puede echar una mano
Sub PonerFuncion()
'Selecciona la celda A1
Range("A1").Select
'se genera un bucle que correra hasta la celda 30
While ActiveCell.Row <= 30
'evalua la celda activa
    If ActiveCell.Value = "" Then
    'introduce la formula en la celda que esta a la derecha
    ActiveCell.Offset(0, 1).Formula = "=" & 1
    End If
    ''avanza' a la celda que esta abajo
    ActiveCell.Offset(1, 0).Activate
Wend
End Sub
Hola nefese, la verdad es que no me ha servido el código, ¿a ti te funciona? Y podría ser posible hacer el proceso mediante Worksheet_Change.
Gracias y un saludos.
Este código hace que la macro se corra automáticamente CUANDO SE MODIFICA LA CELDA A1
Private Sub worksheet_change(ByVal target As Range)
If target.Address = Range("a1").Address Then
Call PonerFuncion
End If
End Sub
Sub PonerFuncion()
'Selecciona la celda A1
Range("A1").Select
'se genera un bucle que correra hasta la celda 30
While ActiveCell.Row <= 30
'evalua la celda activa
    If ActiveCell.Value = "" Then
    'introduce la formula en la celda que esta a la derecha
    ActiveCell.Offset(0, 1).Formula = "=" & 1
    End If
    ''avanza' a la celda que esta abajo
    ActiveCell.Offset(1, 0).Activate
Wend
End Sub
A mi me funciona cuando tengo el código en el editor VBA pero para la hoja actual (hoja1). Tengo Excel2010 y anda bien. Me cuentas si anda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas