Problemas con find

es lo ultimo que me falta para poder empezar a usar este excel que es para mi negocio llevar stock y hacer pedidos si me podes ayudar te voy a agradecer

tengo una hoja detalle que tiene el detalle de las facturas hecha por un programa, sale el código de cada producto vendido con la cantidad, estos datos están guardados como texto, y en otra hoja (ventas)tengo que contar cuantas ventas hice de cada producto, osea si hay un producto nuevo y no aparece (en ventas)l lo agrego y le sumo cada vez que aparece

la hoja detalle tiene 140000 filas y van aumentando entonces puse un contador para saber hasta donde conté y empezar por la que sigue,

el problemas en con find si el producto tiene el código 779444004538 y la función find busca en ventas si esta nunca lo encuentra y lo repite y asi con muchos productos se repiten varias veces el código es el siguiente

CONTADOR_VENTAS = PRINCIPAL.Range("A2").Value
TODO.Activate
TODO.Unprotect "guada2009"
While CONTADOR_VENTAS <= DETALLE.Cells(Rows.Count, 1).End(xlUp).Row
Set CODIGO_VENTA = TODO.Range("A:B").Find(DETALLE.Cells(CONTADOR_VENTAS, D_CODIGO).Value, LookIn:=xlValues, lookAt:=xlWhole)
If Not CODIGO_VENTA Is Nothing Then
If TODO.Cells(CODIGO_VENTA.Row, T_VENTAS).Value >= DETALLE.Cells(CONTADOR_VENTAS, D_CANTIDAD).Value Then
TODO.Cells(CODIGO_VENTA.Row, T_VENTAS).Value = TODO.Cells(CODIGO_VENTA.Row, T_VENTAS).Value - DETALLE.Cells(CONTADOR_VENTAS, D_CANTIDAD).Value
Else
TODO.Cells(CODIGO_VENTA.Row, T_VENTAS).Value = 0
End If
If TODO.Cells(CODIGO_VENTA.Row, T_PVENTA).Value = "" Then TODO.Cells(CODIGO_VENTA.Row, T_PVENTA).Value = DETALLE.Cells(CONTADOR_VENTAS, D_FECHA).Value
TODO.Cells(CODIGO_VENTA.Row, T_TOTAL).Value = TODO.Cells(CODIGO_VENTA.Row, T_TOTAL).Value + DETALLE.Cells(CONTADOR_VENTAS, D_CANTIDAD).Value
If TODO.Cells(CODIGO_VENTA.Row, T_UCOMPRA).Value = "" Then
TODO.Cells(CODIGO_VENTA.Row, T_UCOMPRA).Value = DETALLE.Cells(CONTADOR_VENTAS, D_FECHA).Value
End If
If (TODO.Cells(CODIGO_VENTA.Row, T_UCOMPRA).Value - DETALLE.Cells(CONTADOR_VENTAS, D_FECHA).Value) = 0 Then
<span class="scayt-auto" data-scayt_autocorrected="DIAS" data-scayt_autocorrection="DÍAS">DÍAS</span> = 1
Else
<span class="scayt-auto" data-scayt_autocorrected="DIAS" data-scayt_autocorrection="DÍAS">DÍAS</span> = (DETALLE.Cells(CONTADOR_VENTAS, D_FECHA).Value - TODO.Cells(CODIGO_VENTA.Row, T_UCOMPRA).Value)
End If
TODO.Cells(CODIGO_VENTA.Row, T_PROM).Value = (TODO.Cells(CODIGO_VENTA.Row, T_PROM).Value + TODO.Cells(CODIGO_VENTA.Row, T_TOTAL).Value) / DÍAS
TODO.Cells(CODIGO_VENTA.Row, T_UVENTA).Value = DETALLE.Cells(CONTADOR_VENTAS, D_FECHA).Value
TODO.Cells(CODIGO_VENTA.Row, T_COSTO).Value = DETALLE.Cells(CONTADOR_VENTAS, D_COSTO).Value
TODO.Cells(CODIGO_VENTA.Row, T_PRECIO).Value = DETALLE.Cells(CONTADOR_VENTAS, D_PRECIO).Value
Else
TODO.Cells(TODO.Cells(Rows.Count, 1).End(xlUp).Row + 1, T_CODIGO).Value = DETALLE.Cells(CONTADOR_VENTAS, D_CODIGO).Value
TODO.Cells(TODO.Cells(Rows.Count, 1).End(xlUp).Row, T_TOTAL).Value = DETALLE.Cells(CONTADOR_VENTAS, D_CANTIDAD).Value
TODO.Cells(TODO.Cells(Rows.Count, 1).End(xlUp).Row, T_PROM).Value = DETALLE.Cells(CONTADOR_VENTAS, D_CANTIDAD).Value
TODO.Cells(TODO.Cells(Rows.Count, 1).End(xlUp).Row, T_PVENTA).Value = DETALLE.Cells(CONTADOR_VENTAS, D_FECHA).Value
TODO.Cells(TODO.Cells(Rows.Count, 1).End(xlUp).Row, T_UVENTA).Value = DETALLE.Cells(CONTADOR_VENTAS, D_FECHA).Value
TODO.Cells(TODO.Cells(Rows.Count, 1).End(xlUp).Row, T_UCOMPRA).Value = DETALLE.Cells(CONTADOR_VENTAS, D_FECHA).Value
TODO.Cells(TODO.Cells(Rows.Count, 1).End(xlUp).Row, T_COSTO).Value = DETALLE.Cells(CONTADOR_VENTAS, D_COSTO).Value
TODO.Cells(TODO.Cells(Rows.Count, 1).End(xlUp).Row, T_PRECIO).Value = DETALLE.Cells(CONTADOR_VENTAS, D_PRECIO).Value
End If
<span class="scayt-misspell" data-scaytid="30" data-scayt_word="CONTADOR_VENTAS">CONTADOR_VENTAS</span> = CONTADOR_VENTAS + 1

wend

desde ya muchas gracias

Añade tu respuesta

Haz clic para o