Macro no encuentra fecha con Set c = .Find(Fecha, LookIn:=xlValues)

He creado una macro que pegaré al final, que me da el siguiente error

Busca una fecha como resultado del valor de una celda ("F1")

Busca esta en otra hoja del mismo libro

Una vez encontrada, copia todo el rango de la columna hasta la última fila con datos.

Problema:

La sentencia .find, no encuentra la fecha y entonces no hay dirección de celda desde donde seleccionar y copiar los datos a otra hoja mismo libro.

Llevo varios días buscando el error y no soy capaz de verlo.

Pego la macro para que se pueda revisar.

Sub ImportaDatos()

Sheets("Revisión Códigos").Select

range("A2:B25000").Select
Selection.Clear
range("a1").Activate
Fecha = range("f1").Value                 '(de aquí toma la fecha)

Sheets("Balances Gastos Clientes").Select
On Error Resume Next
'
Columns("J:J").Select                    (Es la columna donde tiene que buscar la fecha)
Fecha = Format(Fecha, "dd-mm-yy")         (Le pongo formato por si acaso)
With Worksheets(5).range("j:j")
Set c = .Find(Fecha, LookIn:=xlValues)           (No encuentra la fecha y no asigna el valor a "c").
If Not c Is Nothing Then
firstaddress = c.Address
Else
MsgBox ("No has puesto bien el formato fecha, " & vbCr & " o mira bien el formato de la fecha: (##-##-##)")
Exit Sub
End If
End With

range(firstaddress).Select
ActiveCell.Offset(0, 6).Select
Rango = firstaddress
range(ActiveCell, range("p2").End(xlDown)).Select
Selection.Copy

Sheets("Revisión Códigos").Select
range("a2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'Call Comprobación

End Sub

1 respuesta

Respuesta
1

Declara al principio de la macro la variable fecha

Dim fecha as Date

Prueba y me comentas

H o l a:

Estuve revisando tu macro y no es necesario cambiar el formato de fecha, puedes tener en F1: 25 de octubre de 2015 y en la columna J tener las fechas 25/oct.

Lo importante es buscar la fecha, pero con el parámetro lookin:=xlformulas.

Le hice algunas adecuaciones a la macro, quité algunas líneas que no son necesarias:

Sub ImportaDatos()
'Act.Por.Dante Amor
    Set h1 = Sheets("Revisión Códigos")
    Set h2 = Sheets("Balances Gastos Clientes")
    h1.Range("A2:B25000").Clear
    Set c = h2.Range("J:J").Find(h1.Range("F1"), LookIn:=xlFormulas)
    If Not c Is Nothing Then
        h2.Range(c.Offset(0, 6), h2.Range("P2").End(xlDown)).Copy
        h1.Range("A2").PasteSpecial Paste:=xlPasteValues
        'Call Comprobación
    Else
        MsgBox "No existe la fecha"
    End If
End Sub

Estableciendo en las variables h1 y h2, no es necesario que te cambies de hoja.


Hola Dante, buenos días.

Lo voy a probar y te comento

Muchas gracias.

Claro, cualquier duda avísame. No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas