Como organizar una hoja por fechas?

Para Dante ... Amigo la macro funciona perfectamente, solo que no pasa las fechas en orden

Ejemplo: en Motos 3-2016 tenemos una fecha de vigencia o vencimiento de 01/02/2018

Y en la hoja CDA motos tenemos datos del año 2017 debería organizarme, los datos que trae de Motos 3-2016 bien sea al inicio de la hoja o al final, preferiblemente al inicio de la hoja CDA motos muchas gracias por su apoyo y colaboracion Dios lo bendiga

1 respuesta

Respuesta
1

H o l a:

Envíame tu archivo y me explicas con comentarios y colores lo que está pasando.

En una nueva hoja pon la hoja "CDA motos" con el resultado que esperas

Hola Dante ya le envie el archivo con los comentarios 

Dante que pena con usted pero le envié nuevamente el archivo para haber si se puede hacer algo que quizá no me había echo entender, actualmente el archivo me remplaza en la hoja CDA motos las placas que tengan una fecha vencida con los datos que trae de la hoja MOTOS 3-2016 que es la fecha de vencimiento mas actualizada pero si llegado el caso que yo tenga mas de un dato con una placa X ; es decir si una placa xa31a esta tres veces con diferentes fechas antiguas el archivo me esta remplazando solo una con el dato mas actualizado de la hoja MOTOS 3-2016, lo que hace falta es que una ves remplazado elimine los que ya no estén vigentes en la hoja CDA motos para que no se me siga incrementando la base de datos, mil disculpas y muchas gracias bendiciones

Esta macro es del dam3, creo que es lo que se apega a tu requerimiento:

Sub Motos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.StatusBar = False
    Set h1 = Sheets("MOTOS 03-2016")
    Set h2 = Sheets("CDA motos")
    '
    cols = Array("C", "G", "K", "L", "O", "X", "Y", "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AI", "AJ", "AK", "AL", "AM", "AN", "AO")
    'cols = "C, G, K, "
    u = h1.Range("K" & Rows.Count).End(xlUp).Row
    For i = 2 To u
        Application.StatusBar = "Procesando registro: " & i & " de: " & u
        Set b = h2.Columns("C").Find(h1.Cells(i, "K"), lookat:=xlWhole)
        If Not b Is Nothing Then
            fec1 = h1.Cells(i, "G")
            fec2 = h2.Cells(b.Row, "B")
            If fec2 < Date Then
                n = 1
                If fec1 > fec2 Then
                    'h2.Cells(b.Row, "B") = fec1
                    For j = LBound(cols) To UBound(cols)
                        h2.Cells(b.Row, n) = h1.Cells(i, cols(j))
                        n = n + 1
                    Next
                End If
            End If
        Else
            u = h2.Range("C" & Rows.Count).End(xlUp).Row + 1
            n = 1
            For j = LBound(cols) To UBound(cols)
                h2.Cells(u, n) = h1.Cells(i, cols(j))
                n = n + 1
            Next
        End If
    Next
    Application.ScreenUpdating = True
    Application.StatusBar = False
    MsgBox "Fin"
End Sub

Lo de eliminar registros no estaba en tu requerimiento inicial, tendremos que revisarlo con más ejemplos.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas