Comparar dos rangos de fechas? Como comparo dos fecha de dos libros diferentes, si fecha de hoja1 ya existe en hoja1

¿Comparar dos rangos de fechas? La fechas son de este tipo " viernes, 15 de mayo de 2015"

Como comparo dos fecha de dos libros diferentes:

Tengo dos libros: ¿Libro1(hoja1)columna(A) y libro2(hoja1)columna(A)?

Si la fechas son iguales: que me indique por mensaje, LA fecha de este rango ya EXISTE, SI NO EXISTE que copie el rango que no existe automatica en el libro2 de la hoja1, columna(A), que se haga por macro de excel.

1 respuesta

Respuesta
1

¿Y cuáles fechas de cuál libro se tienen que buscar?

O la macro debe buscar las del libro1 en el libro2, ¿y después buscar las del libro2 en el libro1?

Si NO la encuentra, ¿qué rango se debe copiar y en dónde se debe pegar?

Si la encuentra, en lugar de un mensaje, que te ponga en alguna celda "Ya Existe", ¿pero en cuál celda?

En el libro1, hoja1, columna(A) tengo un rango de fechas: se deben selecionar, y comparar con las del libro2, hoja1, columna(A)

Si NO  encuentra, el  rango que selecciono se debe copiar debajo de la ultima fila del libro2, hoja1, columna(A)

si lo encuentra informar por un msgbox

que ya existe y termina la macro

Te anexo la macro, deberás tener los 2 libros abiertos, cambia en la macro "Libro2.xlsx" por el nombre y extensión del libro2.

Sub BuscarFecha()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")
    Set l2 = Workbooks("Libro2.xlsx")
    Set h2 = l2.Sheets("Hoja1")
    '
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        Set b = h2.Columns("A").Find(h1.Cells(i, "A"), lookat:=xlWhole)
        If Not b Is Nothing Then
            'h1.Cells(i, "C") = "Ya existe"
            MsgBox "Ya existe"
            'Exit Sub
        Else
            h1.Rows(i).Copy h2.Rows(h2.Range("A" & Rows.Count).End(xlUp).Row + 1)
        End If
    Next
    MsgBox "Terminado"
End Sub

Cada que no encuentre una fecha te enviará un msgbox, si quieres que se detenga la macro, cambia esto:

'Exit Sub

Por esto

Exit Sub


Saludos. Dante Amor

Recuerda valorar la respuesta.

¡Gracias! , revisando...

Gracias por su ayuda, pero solo me copió una celda, yo quiero es que copie el rango revisado, por ej. si la macro revisa o hace la busqueda en el Libro1, Hoja1 Columna(A) el rango A2:A11, quiero es que me copie ese rango, siempre y cuando ese rango de fechas NO este en el LIBRO2, Si esta pues que indique rango de fechas ya se encuentra y la macro termina.

Creo no entendí bien, revisando tu imagen tienes varios registros con 2 fechas

15 de mayo y 31 de mayo

Lo que hace la macro es buscar la fecha 15 de mayo, si la encuentra no la copia.

Después revisa la fecha 31 de mayo, no la encuentra, entonces la copia, pero tu tienes varios registros con la fecha 31 de mayo, pero todos tienes la fecha 31 de mayo, como la fecha 31 de mayo ya fue copiado, pues no la vuelve a copiar.

¿Qué es lo que necesitas?

¿Solamente copio todas la columna A del libro1 en la columna B del libro2?

Para eso no es necesario revisar fecha por fecha o por rangos.

¿O reviso fila por fila y deben coincidir las filas?

1. En el Libro1 existe un rango de fecha en la hoja1 columna(a), la fecha esta desde A2 a A11 que en este caso de la imagen aparece: " viernes, 15 de mayo de 2015", lo que quiero es que me verifique si estan este rango de fecha en el libro2, si estan que no haga nada solamente indique rango de fecha ya existe y que termina la macro, pero si el rango de fecha no estan en el Libro2, entonces si que copie ese rango en el libro2 hoja1 columna (a) debajo, como esta en la imagen. muchas gracias...

Te anexo la macro actualizada

Sub BuscarFecha()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")
    Set l2 = Workbooks("Libro2.xlsx")
    Set h2 = l2.Sheets("Hoja1")
    '
    Set b = h2.Columns("A").Find(h1.Cells(2, "A"), lookat:=xlWhole)
    If Not b Is Nothing Then
        MsgBox "Ya existe"
    Else
        h1.Rows("2:11").Copy h2.Rows(h2.Range("A" & Rows.Count).End(xlUp).Row + 1)
        MsgBox "Rango copiado"
    End If
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas