Necesito una macro que busque varios registros

Estoy atorado trate de hacer un bucle que busque a un empleado y que actualice sus ventas, es decir tengo un libro en el cual tengo 2 hojas una llamada empleados y otra carga , en carga coloco el numero de empleado y sus ventas lo que necesito es que busque en la hoja empleados y actualice sus ventas trate con un For I pero solo realiza la búsqueda del primer empleado y coloca las ventas del ultimo ojala alguien me pueda ayudar. Gracias por su ayuda mi código es:
vempleado = Range("A4").Value
Set items = Range("A1") For i = 1 To items
Sheets("empleados").Select Cells.Find(What:=vempleado, After:=ActiveCell).Select
ActiveCell.Offset(0, 2).Select Sheets("CARGA").Select Range("B4").Select Application.CutCopyMode = False Selection.Copy Sheets("empleados").Select ActiveSheet.Paste Sheets("CARGA").Select Rows("4:4").Select Range("B4").Activate Application.CutCopyMode = False Selection.Delete Shift:=xlUp Next i End Sub

1 Respuesta

Respuesta
1

Te anexo una macro:
La columna de empleados en ambas hojas deberá estar en la columna A, la de ventas en la columna B.
Revisa que en la hoja empleados los empleados empiecen en la fila 2, en la hoja carga los empleados empiecen en la fila 4.
'***Macro**
Sub ventasemp()
'Acumula ventas por empleado
'Por.dam
Worksheets("empleados").Select
ufila = ActiveCell.SpecialCells(xlLastCell).Row
'Ordenar las columnas por empleado, para tenerlos juntos
Columns("A:B").Select
ActiveWorkbook.Worksheets("empleados").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("empleados").Sort.SortFields.Add Key:=Range( _
"A2:A" & ufila), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("empleados").Sort
.SetRange Range("A1:B" & ufila)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Subtotales por empleado, se obtiene el total de ventas
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(2), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
Worksheets("carga").Select
ufilacarga = ActiveCell.SpecialCells(xlLastCell).Row
For i = 4 To ufilacarga
empleado = Cells(i, 1)
'Busca el total del empleado
'Range("A1").Select
fila = Worksheets("empleados").Cells.Find(What:="TOTAL " & empleado, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row
'Obtiene el total de ventas
totventas = Worksheets("empleados").Cells(fila, 2)
'suma el totventas a las ventas actuales que tiene carga
Cells(i, 2) = Cells(i, 2) + totventas
Next
'quita subtotales
Worksheets("empleados").Columns("A:B").RemoveSubtotal
End Sub
'***Macro**

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas