BuscarV tarda en mostrar resultado

Hola a todos, ojala puedan ayudarme.

Tengo un formulario con un ComboBox que a través de la propiedad "CHANGE" va volcando su valor en la celda AA2 de la hoja. Desde ahi busco el precio del articulo mediante BuscarV (tambien probé usando Indice y Coincidir) ... Y luego desde ahi puedo mostrar el valor dentro del formulario en un textbox.

Ej,

Private Sub ComboProducto_Change()
''''''''''''''seleccionar producto'''''''''''''''''''
Application.ScreenUpdating = False
On Error Resume Next
Range("AA2") = ComboProducto.Value
Text_Precio = [AC2].Value
Text_Precio.Value = FormatNumber([AC2], 2)
Application.ScreenUpdating = False
End Sub

EL problema es que a veces funciona instantáneo y de mil maravillas.. Y a veces la celda AC2 se tarda unos 3 o 4 segundos en actualizar su valor... Por lo cual en mi formulario no se actualiza correctametne el TextBox donde muestra el precio.

La matriz en donde busca el precio es de unos 900 productos

¿Hay alguna otra forma de hacer lo que intento? ¿Como puedo mejorar la velocidad de este simple procedimiento?
Probé poneindo pausas, pero me parece que no es la solucion correcta.

Desde ya muchas gracias!!

1 respuesta

Respuesta
1

Te recomiendo hacer la búsqueda dentro del formulario con un find, sin necesidad de recurrir a un buscarv. Necesito que me digas el rango donde buscamos los precios (hoja y rango) para poder construir la macro.

Gracias por responder,

Te detallo:

Hoja "VENTAS" es donde actúa el formulario. Hay un COmboBox con los productos cargados.

Hoja "STOCKS" tiene una Tabla llamada Tabla_Stocks. Columna A tiene nombre de producto y columna B tiene el precio que buscamos.

Gracias!

Este es mi ejemplo:

En la hoja VENTAS he pegado un control combobox en el que están cargados todos los productos de la hoja STOCKS. Al seleccionar un me trae su nombre y su precio en las celdas B3 y C3. Todo ellos sin usar un buscarv, lo busca mediante find en la macro del combo.

Private Sub ComboBox1_Change()
valor = ActiveSheet.ComboBox1.Value
Set busca = Sheets("stocks").Range("a2:a"& Sheets("stocks").Range("a65000").End(xlUp).Row).Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
Range("b3").Value = valor
Range("c3").Value = busca.Offset(0, 1)
End If
End Sub

RECUERDA FINALIZAR Y PUNTUAR

Si quieres el archivo con todo montado, dime tu mail y te lo mandaré.

Muchas gracias amigo, con tu ejemplo y ayuda.. + el fantástico manual que acabo de comprar de elsa, ya estoy entendiendo la cuestión del FIND. Te agradezco de verdad, me diste la solución que buscaba.. GRACIAS!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas