Como copiar datos a celdas en blanco

Me puedes ayudar, tengo valores no continuos, es decir con intervalos o espacios en blanco entre filas necesito autorrellenar estos espacios con el valor que le precede, es decir, si se encuentra un nuevo valor que sea diferente debe cambiar y rellenar con el nuevo valor.
Aquí mi problema es que lo quiero rellenar de abajo hacia arriba.
Ya se aplicar esta forma, pero esta me funciona solo cuando es de manera descendente es decir de arriba para abajo y yo quiero hacerlo al revés es decir de abajo hacia arriba..
Rellenar en la columna A las celdas vacías con el dato de cada celda previa
- Selecciona toda la columna (clic sobre la etiqueta de la columna)
- (menu) edicion / ir a... O pulsa ctrl+i o pulsa {F5}
- Pulsa el botón especial...
- Marca la opción "celdas en blanco" y acepta (se seleccionaran todas las celdas vacías)
- Escribe =a2 (a2 es la refeerncia a la celda inmediata superior a la primer celda en blanco seleccionada)
- pulsa simultaneas las teclas {ctrl} y {enter}

1 Respuesta

Respuesta
1
todo bien salvo.... cuando escribres =a2 debe ser =$a$2 de esta manera "anclas" la referencia
Si te sirve CIERRA la pregunta
Lo que quiero hacer es:
Las fechas que están marcadas en negro copiarlas como se muestra en la imagen
19/02/2010
19/02/2010
19/02/2010
22/02/2010
22/02/2010
22/02/2010
25/02/2010
25/02/2010
25/02/2010

Mmmm... ya veo
Mira probemos otro enfoque
Prueba este macro:
Sub precedente()
Dim anterior As String
Dim i As Long
Dim total As Long
total = Application.WorksheetFunction.Count(Range(Selection.Address)) + Application.WorksheetFunction.CountBlank(Range(Selection.Address))
anterior = Cells(total, Selection.Column)
For i = 1 To total
If total = i Then Exit For
If Cells((total - i), Selection.Column) = "" Then
Cells((total - i), Selection.Column) = anterior
Else
anterior = Cells((total - i), Selection.Column)
End If
DoEvents
Next
End Sub
Selecciona el rango en el que quieres que corra, ( evita seleccionar la columna completa si es que los datos en realidad no llenan toda la columna, solo selecciona la data)
Bien. El bucle recorrerá todo el rango en forma ascendente. Y rellenara las celdas vacías con el valor precedente sea lo que sea que allí este alojado, cuando encuentra una celda "no vacía", pues entonces asume que existe un nuevo valor y entonces toma este valor como nuevo precedente y ontinua la ejecución.
Esto lo pegas en el editor de Visual basic, se activa así ALT +F11, inerta un nuevo modulo ( no modulo de clase, solo modulo)
Das sobre click en el modulo y pegas el macro,
Lo grabas y listo
Lo invocas como cualquier macro ALT + F8 se llama "precedente" y como lo alojaras en un modulo queda disponible para todo el libro.
Si te sirve CIERRA la pregunta
Bye
Muchas gracias si me funciono a la perfección.
Por último y abusando de tu amabilidad, como puedo guardar este macro para usarlo en otros archivos porque cuando lo guarde, solo lo deja para efectos de el archivo que estoy manejando.
Gracias.
Puedes exportar el modulo como objeto independiente, lo alojas al alguna carpeta y cuando quieras aplciarlo en otro libro, lo importas desde el editor de Visual basic.
Te sitúas sobre el modulo, botón derecho del mouse y están las utilidades Exportar e importar Archivo.
Bye
Favor CERRAR pregunta
Muchísimas gracias me ayudo mucho la solución que me diste y quiero comentarte que muchos de mis problemas los he solucionado con sus respuestas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas