Macro para copiar valores a partir de una fecha

Necesitaría ayuda para crear una macro para que me copie un rango de valores a partir de una fecha, por ejemplo en una celda de la Hoja 2 pongo 25/08/2008, la macro debería ir a la columna A de la Hoja1 buscar donde se encuentra esa fecha y copiar los valores fila a fila de la columna A, B y C apartir del 25/08/2008 hasta la última fecha existente (por ejemplo 02/10/2014). No se si lo habre dejado claro o no y si es posible hacer una macro así.

1 Respuesta

Respuesta
1

Te anexo la macro. Escribe en la celda A1 de la hoja2 la fecha inicial.

La fila inicial de la hoja2 es la fila 3.

Sub copiar()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    If u < 3 Then u = 3
    h2.Range("A3:C" & u).ClearContents
    j = 3
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "A") >= h2.Range("A1") Then
            h1.Range("A" & i & ":C" & i).Copy h2.Range("A" & j & ":C" & j)
            j = j + 1
        End If
    Next
End Sub

Sigue las Instrucciones para ejecutar la macro

  1. Abre tu archivo de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Para ejecutarla presiona F5

Saludos. Dante Amor

No olvides valorar la respuesta.

Muchas gracias Dante, la macro funciona de maravilla, me ha sido de gran utilidad.

Yo soy ingeniero civil especialista en hidrología e hidráulica, así que si en alguno de estos temas te puedo ayudar no dudes en preguntarme.

Saludos

Hola de nuevo, necesito adaptar la macro anterior a unas nuevas condicones de trabajo que os comento a continuación:

A los datos a copiar en la hoja 1 le he añadido formulas y cinco columnas extra (he añadido cuatro nuevas columnas D,E,F,J,H y fórmulas en F, J y H ).

Necesitaría adaptar la macro para que me copie la columna A, F, J y H pero no la columna B, C y D, y además que los datos que pegue en la hoja 2 sean valores y no formulas.

¿Es posible hacer esto?.

Muchas gracias de antemano y saludos

Prueba así

Sub copiar()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    If u < 3 Then u = 3
    h2.Range("A3:C" & u).ClearContents
    j = 3
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "A") >= h2.Range("A1") Then
            h1.Range("A" & i & ":C" & i).Copy 
            h2.Range("A" & j & ":C" & j).pastespecial paste:=xlvalues
            j = j + 1
        End If
    Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas