Tengo dos libros de trabajo. Uno se envía por correo electrónico y tiene un gráfico con una columna con las fechas, es decir, del 01/11/10 al 30/11/10. Para ese día, el gráfico se completa con una fila de datos.
El segundo libro también tiene un gráfico con una columna llena de fechas. Lo que necesito ayuda es crear una macro que mire la fecha del libro2 y haga coincidir esa fecha con el libro1, enviada por correo electrónico, copie la fila de datos del libro1 y pegue la fila en el libro2 en la fila que tiene la misma fecha. . Nunca creé una macro, por lo que cualquier ayuda sería muy apreciada.
Respuesta1
Me imagino que VLOOKUP
en este caso una fórmula sería más fácil que una macro. Después de completar la fórmula en la columna, haga COPIAR Y PEGAR. Valores para eliminar la fórmula.
Editado en el ejemplo BUSCARV: Deberá crear una tabla de las fechas de su libro de trabajo idéntica a las fechas del libro de trabajo enviado por correo electrónico. ajuste lo siguiente para adaptarlo a su situación
A1 = es el valor de búsqueda (¿fecha?) de la tabla donde desea los valores en el correo electrónico
[Ejemplo.xlsx] = es el nombre de su libro de trabajo
Hoja1 enviado por correo electrónico. = el nombre de la hoja de cálculo en el libro enviado por correo electrónico que tiene la tabla de datos
$A$1:$B$30 = el rango completo de datos en el libro enviado por correo electrónico
2 = la columna en el rango de datos que queremos obtener valor de (columna 2 en A y B)
FALSO = queremos una coincidencia exacta del valor de búsqueda en los datos del correo electrónico
=VLOOKUP(A1,[Example.xlsx]Sheet1!$A$1:$B$30,2,FALSE)
Sin embargo, para que sea sencillo, si no desea mantener un libro de trabajo como plantilla para recibir los datos, lo siguiente funcionará. Simplemente colóquelo en un módulo del libro de plantilla y guárdelo. Cuando reciba un nuevo correo electrónico, abra la plantilla, abra el libro de correo electrónico y luego active la macro desde el libro de correo electrónico.
Supuestos en el código:
1: En el libro enviado por correo electrónico, los datos comienzan en la celda A1
2: En el libro de macro/plantilla, los datos comienzan en la celda A1
Si cualquiera de estos supuestos es incorrecto, ajuste los valores iniciales para L1 y/o las celdas objetos (el primer valor, L1, es la fila y el segundo número es la columna; A = 1)
Sub CopyData()
Dim All As New Collection
Dim One As Variant, L1 As Integer, L2 As Integer
Dim TW As Workbook, EW As Workbook
Set TW = ThisWorkbook
Set EW = ActiveWorkbook
L1 = 15
Do Until Cells(L1, 2).Value = ""
ReDim One(0 To 1)
One(0) = Cells(L1, 2).Value
One(1) = Cells(L1, 3).Value
All.Add One
Erase One
L1 = L1 + 1
Loop
TW.Activate
L1 = 15
Do Until Cells(L1, 2).Value = ""
For L2 = 1 To All.Count
One = All(L2)
If One(0) = Cells(L1, 2).Value Then
Cells(L1, 3).Value = One(1)
Erase One
Exit For
Else
Erase One
End If
Next L2
L1 = L1 + 1
Loop
End Sub