Copiar una celda a otra hoja dependiendo de una fecha

Que tal expertos de la web, quisiera que me ayuden en crear una macro en la cual me permita copiar un rango de celdas dependiendo de la fecha, es decir,:

Solo copiar los datos recien ingresados, es decir: Si la celda Z:Z es igual a HOY copiar un rango de celdas y pegarla en la hoja2, pero que se ejecute con una macro..., dejo aquí lo que ya tengo solo me faltaría la condición para que copie y pegue de acuerdo a lo indicado ya que no logro hacerlo porque soy nuevo en esto, gracias.

Sub CopiarCeldas ()

Aqui me faltaria la condicion:

SI la celda Z es igual a la fecha de hoy Entonces:

Sheets("Hoja1").Select

Range("B:B,D:D,F:F,I:I,J:J,K:N,T:T,V:V,W:W,Z:Z").Select

Range("Z1").Activate
Selection.Copy
Sheets("Hoja2").Select
Columns("C:C").Select
ActiveSheet.Paste

End Sub

1 Respuesta

Respuesta
1

H o l a:

Tengo varias dudas.

  • ¿Quieres qué la macro funcione en automático cuando pones la fecha en la celda de la columna Z?
  • Supongo que quieres copiar las celdas de las columnas B, D, F, I, J, K:N, T, V, W, ¿Z pero de la fila que en la columna Z se cumple la condición?
  • ¿En cuáles celdas destino quieres pegar el resultado?
  • ¿Quieres pegar el resultado en la primera celda disponible después de la última celda con datos?

E spero tus comentarios en ese orden.

Hola, ante todo gracias por responder, bueno a ver si me explico mejor, 

1. No, quiero que se ejecute al presionar el botón Guardar.

2. Si, ya que en la fila Z se coloca la fecha de ingreso o modificación de un dato.

3. Los datos se copiaran en la hoja2 desde la celda "A2" por que la fila A1 son los encabezados.

4. Si.

Lo que en realidad quiero, es que se muestren solo los datos nuevos, ya que tengo información anterior y no necesito que se copien esas a menos que la fecha sea modificada, y quisiera que esos datos se muestren en otra hoja para poder enviar luego a varios correos electrónicos, en pocas palabras lo que quiero es enviar por medio de excel, un correo electrónico indicando los datos NUEVOS o MODIFICADOS, ya que la información que se ingresa es diaria. te dejo un archivo de lo que logré hacer pero ahí me quede =( 

H o l a:

Te anexo la macro

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    h2.UsedRange.Offset(1, 0).ClearContents
    j = 2
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "Z") = Date Then
            h1.Range("B" & i & ",D" & i & ",F" & i & ",I" & i & "," & _
                     "J" & i & ",K" & i & ":N" & i & ",T" & i & "," & _
                     "W" & i & ",Z" & i).Copy
            h2.Cells(j, "A").PasteSpecial xlValues
            j = j + 1
        End If
    Next
    Application.ScreenUpdating = True
    Application.CutCopyMode = False
    MsgBox "Filas copiadas"
End Sub

Si quieres el código para enviar una hoja por correo crea una nueva pregunta.


' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

Tu si que eres lo máximo mi estimado Dante, muchas gracias por tu tiempo y ayuda. Por lo otro intentaré hacerlo por mi cuenta o si no te pido nuevamente tu apoyo... Felicidades!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas