Problema con un ComboBox de Formulario en Excel

Muy buenas tardes, espero alguien me pueda ayudar con esto ya que llevo batallando ya un buen tiempo y no he podido solucionar el problema, explico:
Tengo un formulario en el cual le inserte un ComboBox que me extrae la información de los códigos de los productos de una Hoja llamada Producto, y le inserte dos Label, que me sirven para que me muestre el Label5 "Nombre del Producto" y Label6 "Capacidad", ahora bien, el problema es que tengo en la Hoja Producto en la celda B2 48, B3 50 y B4 51; en C2 Anís, C3 Venado y C4 Quezalteca, etc. Pero cuando ingreso el 48, 50 ó 51 en el ComboBox me tira información perteneciente a otro código y no sé porqué, ya que a partir de B5 todos los códigos que ingreso me dan la información correcta, alguien me podría ayudar, adjunto el código que tengo:
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo Salir1:
X = Sheets("Producto").Cells.Find(What:=ComboBox1, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Row
Label5 = Sheets("Producto").Range("c" & X).Value
Label6 = Sheets("Producto").Range("d" & X).Value
Exit Sub
Salir1:
UserForm2.ComboBox1 = Empty
UserForm2.ComboBox1.SetFocus
If ComboBox1 = "" Then
ComboBox1.SetFocus
End If
End Sub
While Cells(fila, Col) <> Empty
fila = fila + 1
Wend
Cells(fila, 2) = Val(ComboBox1)
Cells(fila, 3) = Val(TextBox2)
Cells(fila, 4) = Val(TextBox3)
Cells(fila, 5) = Val(TextBox4)
Cells(fila, 19) = Val(TextBox5)
ComboBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
Label5 = Empty
Label6 = Empty
Application.ScreenUpdating = True
ComboBox1.SetFocus
End Sub
Private Sub UserForm_Activate()
ult1 = "Producto!B1:B" & Sheets("Producto").Range("B65536").End(xlUp).Row
ComboBox1.RowSource = ult1
End Sub
Private Sub UserForm_Initialize()
ult1 = "Producto!B1:B" & Sheets("Producto").Range("B65536").End(xlUp).Row
ComboBox1.RowSource = ult1
End Sub

1 respuesta

Respuesta
1
Tu rutina funciona perfecto, evidentemente hay alguna otra que te está 'molestando'.
Para ajustar el rango de búsqueda quizás sea mejor que coloques esta línea así:
X = Sheets("Producto").Range("B2:B50").Find(What:=ComboBox1, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Row
Pero reitero que así como la tenés ahora funciona, para tu tranquilidad. REvisá las otras.
No están bien copiadas en la consulta, ya que hay una que empieza con While Cells(fila, col) y no se sabe a que rutina pertenece y de dónde toma los valores fila, col.
Muchas gracias por toda tu ayuda, las correcciones que me indicaste me funcionaron perfectamente, te agradezco mucho por tu tiempo y sobre todo por el interés por ayudarme, ya que apenas sé un poquito de Excel.
Atentamente
Enrique Castro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas