Debo hacer una macro que busque una fecha en una columna y copie un dato de otra columna de la misma

Debo hacer una macro que busque una fecha en una columna y copie un dato de otra columna de la misma
Hace 1 segundo
Visual Basic
Debo hacer una macro que busque una fecha en una columna A y copie un dato de la columna D de la misma fila de la fecha en la columna A y me pegue ese valor en otro archivo. No la fecha, sino el valor de la columna D.

Respuesta
1

¿En otro archivo?... ¿Qué tipo de archivo? Y en donde reside

Buenos días,

el archivo es de excel, version 2007. el archivo se encuentra en un servidor, pero tengo una macro que abre ese archivo. el problema es que no se cual es el código que me busque la fecha y me traiga un dato en la otra columna de la misma fila de la fecha. Ej

FECHA DATO 1 DATO 2 DATO 3

08/08/2012 5 25 35

Quiero ayuda con el código que busque la fecha que yo desee en la columna A del otro archivo de excel y la deje lista para copiar.

Muchas gracias todo experto

Acá tienes:

Sub buscar(fecha As Date)
Dim r As Range
Dim filas As Long
filas = Application.WorksheetFunction.CountA(Sheets(1).Range("A:A"))
If filas = 0 Then Exit Sub
'4c7569735f50
For Each r In Sheets(1).Range("A:A")
If fecha = r Then r.EntireRow.Select: Exit For
DoEvents
Next
Set r = Nothing
End Sub

Buscara la fecha en la hoja1 columna A y si hay coincidencia seleccionara toda la fila

la llamada al sub es call buscar(fecha)

En donde fecha es con formato dd-mm-yyyy

Muchas gracias, todo experto la macro corre perfectamente.

Me surge otra duda, yo solo deseo seleccionar un dato adyacente a la fecha que me está buscando la macro en la columna A. ese dato se encuentra en la columna C.

A B C

FECHA DATO 1 DATO 2

Es decir, la macro que yo deseo debe buscar la fecha en la columna A y seleccionar el dato 2, que se encuentra en la columna C y en la misma fila que la fecha.

Muchas gracias por tu colaboracion

Entonces así:

Sub buscar(fecha As Date)
Dim r As Range
Dim filas As Long
filas = Application.WorksheetFunction.CountA(Sheets(1).Range("A:A"))
If filas = 0 Then Exit Sub
'4c7569735f50
For Each r In Sheets(1).Range("A:A")
If fecha = r Then r.Offset(0, 2).Select: Exit For
DoEvents
Next
Set r = Nothing
End Sub

De nuevo muchas gracias todoexpertos, la macro hace lo que deseaba....

pero, al momento de aplicar la macro al archivo que yo tengo no ejecuta.

Analice el código y trate de cambiar el nombre de la hoja donde debe buscar, es decir trate de cambiar Sheets (1), por AGO 2012 que es el nombre de la hoja del archivo que poseo y me sale un error en tiempo de ejecución.

Entonces si mi hoja no se llama Sheets (1), sino AGO 2012, como cambio el nombre de la hoja para que la macro se ejecute perfectamente???

¿Supongo qué el maro esta en el mismo libro en que esta tu hoja Ago 2012?

Sub buscar(fecha As Date)
Dim r As Range
Dim filas As Long
filas = Application.WorksheetFunction.CountA(Sheets("AGO_2012").Range("A:A"))
If filas = 0 Then Exit Sub
'4c7569735f50
For Each r In Sheets(1).Range("A:A")
If fecha = r Then r.Offset(0, 2).Select: Exit For
DoEvents
Next
Set r = Nothing
End Sub

Las formas de indicar la hoja puede ser:

Sheets(1) por ubicacion de la pestaña

Sheets("AGO_2012") por nombre de la pestaña, evita usar espacios en el nombre de la pestaña

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas