Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

Completar celdas en blanco con el primer dato

| Sin comentarios

En una consulta que observe recientemente encontré un desafío interesante, se requiere que analizando una columna de datos, se llegue a completar las celdas en blanco con el primer dato que se encuentra dentro del bloque previo.

 

Es decir en el ejemplo de la siguiente imagen la celda C9 (que se encuentra en blanco) debe tener el dato de C3,  C13 el dato de C10 y así sucesivamente. 

Completar celdas en blanco con primer dato

Para poder resolver este ejercicio, con el código mostrado a continuación necesitamos los siguientes conceptos: 

última fila con datos en VBA, para identificar cual es la última fila de la columna 3 que tiene datos. 

Combinamos contar blanco con Resize en Excelpara identificar cuantos bloques de encuentran involucrados:

WorksheetFunction.CountBlank(Cells(3, 3).Resize(ult - 1, 1))  

El For en Excel para ejecutar la tarea repetitiva

Offset en VBA para escribir el resultado y pasar al siguiente bloque 

 

Sub llenar()

ult = Cells(Rows.Count, 3).End(xlUp).Row

repetir = WorksheetFunction.CountBlank(Cells(3, 3).Resize(ult - 1, 1))

'  c3 es la celda donde empiezan los datos

Range("C3").Select

 

For x = 1 To repetir

dato = ActiveCell.Value

Selection.End(xlDown).Select

ActiveCell.Offset(1, 0).Value = dato

ActiveCell.Offset(2, 0).Select

Next

 

End Sub

 

Dato: es la variable que sirve para almacenar el valor que se completará en la celda en blanco siguiente.

 

En el siguiente archivo se encuentra el código completo para "completar celdas en blanco con el primer dato":  Completar celdas en blanco con primer dato

 

 

Deja una respuesta

Los campos requeridos estan marcados con *.