Coipiar datos y dejar registro de la fecha y hora

Tengo en la hoja 1 un rango de datos, lo copio los datos de están el la columna A (mientras existan datos) y los pego desde la primera celda vacía de la columna A de la hoja 2, pero necesito ayuda. Para hacer que:
No me deje copiar valor repitido y me deje la fecha y hora now() en la columna B
La idea es saber que datos copié y en qué fecha y no duplicarlos

    Sheets("Hoja 1").Select
    Range("A10").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Hoja 2").Select
    Range("A1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("b1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Value = Now() ---> esto tiene que hacerlo con todos los valores que acabo de pegar en la columna A
    ActiveCell.Offset(1, 0).Select
    Sheets("Hoja 1").Select
    Selection.End(xlUp).Select
    Range("A9").Select

MsgBox "Datos ingresados exitosamente", vbInformation, "Felicitaciones"

End Sub

1 Respuesta

Respuesta
2

H o l a:

Te anexo la macro para revisar si ya existe el dato en la hoja2 columna A, si no existe entonces lo copia y pone la fecha y la hora.

Sub CopiarDatos()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    For i = 10 To h1.Range("A" & Rows.Count).End(xlUp).Row
        Set b = h2.Columns("A").Find(h1.Cells(i, "A"), lookat:=xlWhole)
        If b Is Nothing Then
            u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
            h2.Cells(u, "A") = h1.Cells(i, "A")
            h2.Cells(u, "B") = Now()
        End If
    Next
    MsgBox "Datos ingresados exitosamente", vbInformation, "Felicitaciones!!!"
End Sub

Hola, Gracias, pero ahora se les ocrurrio copiar desde la columna A a la H, no sólo la columna A

Y supongo que en la columna I va la fecha.

Sub CopiarDatos()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    For i = 10 To h1.Range("A" & Rows.Count).End(xlUp).Row
        Set b = h2.Columns("A").Find(h1.Cells(i, "A"), lookat:=xlWhole)
        If b Is Nothing Then
            u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
            h1.Range("A" & i & ":H" & i).Copy
            h2.Cells(u, "A").PasteSpecial xlValues
            h2.Cells(u, "I") = Now()
        End If
    Next
    MsgBox "Datos ingresados exitosamente", vbInformation, "Felicitaciones!!!"
End Sub

¡Gracias! 

super! esto me salvó mucho, pero de seguro que seguiré inventando cosas con este archivo! porque van a utilizarlos múltiples usuarios, y de seguro que haran copias y será un desastre.

será posible que en vez de "copiarlo" en una hoja 2, que de inmediato haga un insert into en una tabla de sql? estuve revisando y  subí la hoja 2 a una tabla de SQL con el asistbte del SQL, lo hice con poco eficiencia, porque subí los datos duros de la hoja 2 a una tabla de mi SQL , luego borré los datos del excel, dejando la hoja 2 vacia, conecté la tabla del SQL a la nueva hoja 2, descarga todo lo que hay respaldado del mes, luego ejecuté el código que me facilitaste, y moví los datos desde la hija 1 a la Hoja 2, y con otro código que conseguí de unos archivos que me heredaron,  subí esos datos devuelta a la tabla de SQL., es largo peo funciona, supongo que hay una mejor forma de hacerlo, no sé si me expliqué.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas