Macro para Buscar y Pegar datos en otro Hoja
Necesitaría modificar la macro "Resumen" ya que la misma pasa la información desde la hoja "Facturas" a la "Resumen".
Lo que pretendo de ser factible que al pasar la información a la hoja "Resumen" al no tener el importe del servicio que coloque la fecha del mismo.
Yo lo realice manualmente, pero al sumar los importe, la fecha ( que es una cifra ) también la totaliza.
Es por tal motivo que acudo a uds. Para modificar dicha macro:
Primero: lograr pasar la fecha
Segundo: que a totalizar ignore la fecha y sume lo que es importe solamente.
Sub resumen()
Dim uFo&, uFd&
Dim servO As New Collection
Dim celO As Range, servD As Range, servN As Range, mes As Range
Dim item
Dim primer$, servicio$
uFo = Range("C" & Rows.Count).End(xlUp).Row 'última fila con datos
'Llenamos la colección con los servicios sin repetidos
For Each celO In Range("C5:C" & uFo)
On Error Resume Next
servO.Add celO, CStr(celO)
Next celO
'Trabajamos sobre la hoja3
With Sheets("Resumen")
uc = .Cells(1, Columns.Count).End(xlToLeft).Column 'Última columna con datos
uFd = .Range("A" & Rows.Count).End(xlUp).Row + 1 'Última fila con datos
.Range(.Cells(3, "A"), .Cells(uFd, uc)).ClearContents 'Limpiamos los datos anteriores
'Pasamos la colección de los servicios
i = 3
For Each item In servO
.Cells(i, "A") = item
i = i + 1
Next item
'Recorremos los servicios
j = 3
Do While .Cells(j, "A") <> ""
For Each celO In Range("C5:C" & uFo) 'Buscamos el servicio en la hoja facturas
If Trim(celO) = Trim(.Cells(j, "A")) And celO.Offset(, -2) <> "" Then 'Si encontramos el servicio y está al lado del mes...
Set mes = .Range(.Cells(1, 1), .Cells(1, uc)).Find(celO.Offset(, -2), lookat:=xlWhole) 'Buscamos el mes en la fila 1 de la hoja3
.Cells(j, mes.Column) = celO.Offset(0, 3) 'Pasamos el dato de importe de la hoja facturas
ElseIf Trim(celO) = Trim(. Cells(j, "A")) And celO. Offset(, -2) = "" Then 'Si encontramos el servicio y esta entre los mmeses...
Set mes = Sheets("Facturas").Range(Cells(celO.Row, 1), Cells(2, 1)).Find("*", after:=Range(celO.Offset(, -2).Address), searchdirection:=xlPrevious) 'Buscamos el mes, desde la columna A del servicio y hacia arriba
Set mes = .Range(.Cells(1, 1), .Cells(1, uc)).Find(mes, lookat:=xlWhole)
.Cells(j, mes.Column) = celO.Offset(0, 3)
End If
Next celO
j = j + 1 'Seguimos recorriendo los servicios de la hoja3
Loop
uFd = .Range("A" & Rows.Count).End(xlUp).Row + 1 'Ultima fila con datos
For k = 2 To uc + 0
.Cells(uFd, k) = WorksheetFunction.Sum(.Range(.Cells(3, k), .Cells(uFd - 1, k)))
Next k
End With
Sheets("Resumen").Select
ultimafila
End Sub