Se Repite una Función Varias veces Macros Excel
Sr. Dante,
En el Ejercicio anterior usted me ayudo en una macro de consultar producto que es esta:
Function consultarProducto(codigo As String, col As Integer) As String
Dim ultLinea As Long
Dim ultLineaDatos As Long
Dim busquedaFilaDatos As Range
Dim rangoBusqueda As String
Dim filaRegistro As Long
ultLineaDatos = Sheets("ALM_SAN_JOSE").Range("J" & Rows.Count).End(xlUp).Row
rangoBusqueda = "J8:J" & ultLineaDatos
Set busquedaFilaDatos = Sheets("ALM_SAN_JOSE").Range(rangoBusqueda).Find(codigo, lookat:=xlWhole)
If busquedaFilaDatos Is Nothing Then
consultarProducto = ""
MsgBox "El codigo ingresado no existe", vbCritical, "Resultado"
frmEntradasSalidas.txtcodigo = ""
Else
filaRegistro = busquedaFilaDatos.Row
consultarProducto = Sheets("ALM_SAN_JOSE").Cells(filaRegistro, col)
End If
End FunctionY lo que hice fue obtener los valores de varias columnas:
Private Sub txtcodigo_AfterUpdate() txtdescripcion = modFormulario.consultarProducto(txtcodigo, 11) txtcantidad = modFormulario.consultarProducto(txtcodigo, 12) txtmarca = modFormulario.consultarProducto(txtcodigo, 13) txtmodelo = modFormulario.consultarProducto(txtcodigo, 14) txtanio = modFormulario.consultarProducto(txtcodigo, 15) txtproveedor = modFormulario.consultarProducto(txtcodigo, 16) txtfecha = modFormulario.consultarProducto(txtcodigo, 17) txtguia = modFormulario.consultarProducto(txtcodigo, 18) End Sub
Pero ahora cuando hago una busqueda que no existe: por ejemplo le pongo 0 en el campo codigo, la macro me repite 8 veces el mensaje MsgBox "El codigo ingresado no existe", vbCritical, "Resultado".
Las 8 veces que me repite ese mensaje es por la cantidad de variables que tengo en el Private Sub txtcodigo_AfterUpdate().
Este es mi formulario:


1 Respuesta
Respuesta de Dante Amor
2