Extraer columnas por fechas

Buenas:

Resulta que tengo un libro X que tiene fechas Ej en la columna

A1

01-01-2013

02-01-2013

...

...

...

01-02-2013

02-02-2013

...

...

..

Y asi va creciendo ...

Tengo otro libro Principal que en celda A1 escribo una fecha y se abre el libro X en la Hoja1

Como puedo hacer para sacar todo un mes y sus filas hasta un rango que desee aplicar y pasarlo a otra hoja del libro principal Hoja2

Ej

Si escribo 10-01-2013 en A1 libro Principal se va a ir al libro X Hoja1 quiero que saque los datos y las filas desde el primer dia 01-01-2013 hasta el 31-01-2013 y los copie en la Hoja2 del libro Principal..

Muchas gracias de antemano

1 Respuesta

Respuesta
1

Habría que modificar la macro que ya tienes para abrir el archivo, por lo que necesitaría esa parte de tus códigos para adaptar la nueva macro.

Además tengo unas preguntas:

1) Las fechas siempre están en orden

2) Siempre van a aparecer todos los días(del 1 al 30 o 31), o puede suceder que no aparezca alguna fecha

3) Se copiaría toda la fila como valores o tienes alguna fórmula que quisieras que se mantenga como formula.

Hola gracias por responder

-Si están en orden las fechas en la columna A

-EL libro se va a ir actualizando hay meses que están completos y el mes actual que es Junio no hasta que llegue el fin de mes

- Quiero copiar toda las filas que correspondan a la fecha extraída de inicio a fin de mes

Tengo este código que esta en el libro Principal en la hoja13 se llama Total

Lo que hace este código es ingresar en M5 una fecha Ej 04-02-2013 en el libro Principal y me toma solo el año y se va a buscar el libro 2013.xlsx a la ruta indicada quiero que en el momento que abra el libro 2013.xlsx me filtra los datos desde el 01-02-2013 hasta 28-02-2013 y los copie en la hoja12 que se llama Base datos del Libro Principal con los datos ya filtrados..

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim l1 As Worksheet
Application.ScreenUpdating = False
On Error GoTo x
Dim formato

Dim fecha

Application.DisplayAlerts = False
ChDir "\\ newton\users \ 9Produc \ Caracterizaciones\"
If Target.Text = "" Then Exit Sub
formato = Format(Range("M5"), "yyyy")
Workbooks.Open ("\\ newton\users \ 9Produc \ Caracterizaciones \ " & formato & ".xlsx")
Application.DisplayAlerts = True
ActiveWorkbook.Save

ActiveWorkbook.Close
Hoja13.Select
Exit Sub x:
fecha = Range("M5").Value
Sheets("Base dato").Range("B50:AR1000").ClearContents MsgBox "Por el momento no existen datos manuales con Fecha ( " & fecha & " ) ", 64, "Información"
End Sub

Por favor

Gracias

No entiendo bien para que hace esto:

ActiveWorkbook. Save
ActiveWorkbook. Close

Por eso creo que mejor te paso los códigos para lo que necesitas y tu lo adaptas.

Sub Copia_Pega()
Sheets("Total").Select
mes = Month(Range("M5").Value)
Sheets("2013").Select ' Como no sabía el nombre de la hoja de tu libro 2013 he colocado este nombre
Dim Comprobar, Contador
Comprobar = True: fila_inicio = 0 ' Inicializa variables.
Do ' Bucle externo.
Do While Contador < 366 ' Bucle interno.
fila_inicio = fila_inicio + 1 ' Incrementa el contador.
If Month(Range("A" & fila_inicio).Value) <> mes Then ' Si la condición es verdadera.
Else
Comprobar = False ' Establece el valor a False.
Exit Do ' Sale del bucle interno.
End If
Loop
Loop Until Comprobar = False ' Sale inmediatamente del bucle externo.
Comprobar = True: fila_fin = fila_inicio ' Inicializa variables.
Do ' Bucle externo.
Do While Contador < 366 ' Bucle interno.
fila_fin = fila_fin + 1 ' Incrementa el contador.
If Month(Range("A" & fila_fin).Value) = mes Then ' Si la condición es verdadera.
Sheets("2013").Select
Rows(fila_inicio & ":" & fila_fin - 1).Select
Selection.Copy
Windows("Principal").Activate
Sheets("Base Datos").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Rows(fila_fin & ":" & fila_fin + 31).Select
Selection.Delete Shift:=xlUp
End Sub

No olvides finalizar la pregunta

Hola

ActiveWorkbook.Save

ActiveWorkbook.Close

Es para guardar y cerrar le libro que busco en M5

Ok, estos deberían ser los códigos fusionados:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim l1 As Worksheet
Application.ScreenUpdating = False
On Error GoTo x
Dim formato
Dim fecha
Application.DisplayAlerts = False
ChDir "\\ newton\users \ 9Produc \ Caracterizaciones\"
If Target.Text = "" Then Exit Sub
formato = Format(Range("M5"), "yyyy")
mes = Month(Range("M5").Value)
Workbooks.Open ("\\ newton\users \ 9Produc \ Caracterizaciones \ " & formato & ".xlsx")
Application.DisplayAlerts = True
ActiveWorkbook.Save
Sheets("2013").Select ' Como no sabía el nombre de la hoja de tu libro 2013 he colocado este nombre
Dim Comprobar, Contador
Comprobar = True: fila_inicio = 0 ' Inicializa variables.
Do ' Bucle externo.
Do While Contador < 366 ' Bucle interno.
fila_inicio = fila_inicio + 1 ' Incrementa el contador.
If Month(Range("A" & fila_inicio).Value) <> mes Then ' Si la condición es verdadera.
Else
Comprobar = False ' Establece el valor a False.
Exit Do ' Sale del bucle interno.
End If
Loop
Loop Until Comprobar = False ' Sale inmediatamente del bucle externo.
Comprobar = True: fila_fin = fila_inicio ' Inicializa variables.
Do ' Bucle externo.
Do While Contador < 366 ' Bucle interno.
fila_fin = fila_fin + 1 ' Incrementa el contador.
If Month(Range("A" & fila_fin).Value) = mes Then ' Si la condición es verdadera.
Else
Comprobar = False ' Establece el valor a False.
Exit Do ' Sale del bucle interno.
End If
Loop
Loop Until Comprobar = False ' Sale inmediatamente del bucle externo.
Sheets("2013").Select
Rows(fila_inicio & ":" & fila_fin - 1).Select
Selection.Copy
Windows("Principal").Activate
Sheets("Base Datos").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Rows(fila_fin & ":" & fila_fin + 31).Select
Selection.Delete Shift:=xlUp
Windows(formato).Activate
ActiveWorkbook.Close
Hoja13.Select
Exit Sub x:
fecha = Range("M5").Value
Sheets("Base dato"). Range("B50:AR1000"). ClearContents MsgBox "Por el momento no existen datos manuales con Fecha ( " & fecha & " ) ", 64, "Información"
End Sub

Buenas

Resulta que me da errores no sa han definido variables

no se como hacer que filtre..

El error de no se ha definido variables se debe a que yo regularmente no defino las variables(una mala costumbre), pero en todo caso esta sería la corrección de los códigos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas