Macro para completar datos de una columna excel vba

Para Dante

Buen día, tengo la siguiente situación que deseo resolver con una macro de completar los datos de la columna como te muestro, estaré agradecido.

Muestra 1

Resultados

Respuesta
1

.15.12.16

Hola, Adriel

Sé de lo que estás hablando. Y pasa seguido.

Pero hay una forma práctica de hacerlo, en cualquier hoja y para varias columnas si quieres sin necesidad de una macro.

  1. Selecciona el rango que quieres rellenar. (Puede ser más de una columna)
  2. Presiona F5 (atajo de Ir a)
  3. Presiona el botón "Especial..."
  4. Marca la opción "Celdas en blanco"
  5. con ese rango que queda seleccionado presiona el signo igual (=) y sube con la flecha arriba.
  6. Presiona Ctrl + Enter
  7. Listo. Todo el rango tomará el dato de la celda superior
  8. Luego puedes convertir todo a valor y habrás completado los rangos faltantes.

De todos modos, si necesitas una macro, esta hace aquello en el rango que tengas seleccionado antes de ejecutarla:

Sub Rellena()
ElRango = Selection.Address ' "G2:J36"  
'  
    With Range(ElRango)
        .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
        .Copy
        .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    End With
End Sub

Espero que te guste.

Un abrazo

Fer

.

.

Repasando la respuesta, recién noto que era para Dante. En el apuro de ayudar lo omití.

Disculpas a ambos.

Fer

.

H o la :

en mi caso no necesito seleccionar 

.

Ok, por eso verás que la variable te permite indicarle cuál es el rango a completar.

En cualquier solución es importante que se lo indiques para saber hasta donde completar.

Considerar la última celda de una columna es un error conceptual porque es muy probable que también necesites repetir el contenido de esa celda n filas hacia abajo.

En tu ejemplo la otra rutina se detendría en A21 (donde está H601) pero en tu segunda imagen H601 tambien debe repetirse.

Un abrazo

Fer

.

¡Gracias! 

H o l a estimado Fernando necesito me saque de una duda de esta línea

 "=R[-1]C"

sé que R es fila y C columna pero en el uso estoy nulo, en este caso porque -1 y C esta sin ningún valor 

.

Hola, Adriel

Con el -1 le indico que sea una fila arriba de la actual.

C está en cero porque la referencia es a la misma columna.

Esta es la forma de indicarle lo que te había explicado en el paso a paso de la rutina como punto 5:

Con ese rango que queda seleccionado presiona el signo igual (=) y sube con la flecha arriba.

Un abrazo

Fer

.

1 respuesta más de otro experto

Respuesta
1

Te anexo la macro

Sub Macro1()
'Por.Dante Amor
    With Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row)
        .SpecialCells(xlCellTypeBlanks) = "=R[-1]C"
        .Value = .Value
    End With
End Sub

La macro busca la última fila en la columna A, si la última fila depende de otra columna, por ejemplo la B, entonces sería:

With Range("A3:A" & Range("B" & Rows.Count).End(xlUp).Row)

sla u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas