Macro de repetición

Hola fejoal:
Tengo un archivo con valores por columna, separados por casillas vacías, Necesito una macro que repita el valor de una casilla hacia abajo, hasta el otro valor. Por ejemplo, en la casilla A1 hay un 34, luego hay cinco espacios en blanco y luego hay un 56, así sucesivamente. Necesito que la macro repita el 34 en los cinco espacios siguientes, que pare en 56, que repita el 56 hasta el siguiente numero y así sucesivamente. Se que se puede hacer sin una macro, pero necesito imperiosamente una.
¡Ayudame! Gracias

1 respuesta

Respuesta
1
Es cierto. Lo que pides se puede hacer rápidamente sin una macro, pero no pienso convencerte de ello.
Aquí sigue el código que hace lo pides.
Sub LlenaBlnk()
'==Ingresa aquí el área
' Range("I37:J67").Select
'o anula la linea anterior y hazlo sobre una selección previa
'a la ejecución de la macro
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
Selection.CurrentRegion.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Select
End Sub
Este procedimiento sirve aún para más de una columna (adyacentes)
Pruébalo y dime.
Un abrazo!
Fernando
Estimado Fernando:
Hice lo que me escribiste y resulto, pero la idea es que "no" tenga que seleccionar las casillas en donde se repetirán los números, es decir, que "corra" solo. La razón es que es una base de datos grande.
Si no es mucha la molestia ¿La macro podría estar implementada, por ejemplo para la columna 1, para poder cambiarla a la columna 2, 3, etc.?
OK, la siguiente instrucción hará la selección del rango que necesitas. Para hacerlo aplicable a cualquier columna, solo necesito que antes de dispararlo, se seleccione la primer celda del rango.
Con esta modificación la macro será:
Sub LlenaBlnk()
ActiveSheet. Range(Cells(ActiveCell. Row, ActiveCell. Column), Cells(ActiveCell. SpecialCells(xlLastCell). Row, ActiveCell. Column)).Select
On Error GoTo ControlError:
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
Selection.CurrentRegion.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Select
Exit Sub
ControlError:
MsgBox "Esta columna ya tiene sus celdas con dato", vbInformation, "Rango completo"
Err.clear
ActiveCell.Select
End Sub
Le agregué además un control en caso de columnas ya completas...
Pruébalo y dime.
Un gran abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas