Saltar al contenido

Macro para rellenar datos hacia abajo


Recommended Posts

Hola buenas tardes a todos, espero puedan ayudarme, tal vez sea algo muy sencillo, pero llevo ya varios días atascado con esto...

Tengo varios archivos(25) con datos de ventas de distintas sucursales, con ayuda de power query y una macro he logrado reducir todos los datos en una estructura que espero convertir en mi base de datos, para lograr esto, me falta rellenar los espacios en blanco de la fecha y el numero de tienda. Esto, sin macro lo hago marcando con ceros el final de los valores en las columnas de fecha(que es muy facil ya que es la misma para todos) y numero de tienda, regresando al inicio, poniendo la celda activa en el valor a rellenar luego shift+tecla hacia abajo, me regreso una celda manteniendo la tecla shift presionada, para no usar el valor siguiente y con Ctrl+J relleno hacia abajo, y así sucesivamente hasta terminar. 

Al tratar de hacer una macro grabada por excel me genera esto:

   Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("B2:B36").Select
    Selection.FillDown
    Selection.End(xlDown).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("B37:B135").Select
    Selection.FillDown
    Selection.End(xlDown).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("B136:B215").Select
    Selection.FillDown
   

el gran detalle es que planeo usar esta macro todos los días, entonces el numero de lineas de cada tienda cambia constantemente, por lo tanto una macro con rangos fijos como la que me genera excel, no sirve.

he buscado solucionarlo con diferentes métodos de selección pero todos guardan un rango que no me servirá al día siguiente que cambien las ventas de las diferentes tiendas.

espero haberme explicado, sino, espero que el archivo ejemplo ayude a que se entienda mejor, alli puse el ejemplo del problema y en otra hoja la base de datos que se espera generar con la macro.

De antemano muchas gracias y excelente Foro!

 

 

ejemplo ayuda.xlsx

Enlace a comentario
Compartir con otras webs

Sub Rellenar()
Application.ScreenUpdating = False
filas = ActiveSheet.UsedRange.Rows.Count
Range("A3").Resize(filas - 2, 1) = Range("A2")
For x = 2 To filas
   If Not Range("B" & x) = "" Then valor = Range("B" & x)
   Range("B" & x) = valor
Next
End Sub

 

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.