Mensaje de error en una consulta utilizando Checkbox y ComboBox

Estoy utilizando un Checkbox y ComboBox para hacer consultas y modificar mis datos en los textBox

Que utilizo, Lo que pasa es que cuando se se va escribiendo para consultar y uno se equivoca me marca error pero se sale del formulario, lo que quiero es que si el registro no esta en la base que me marque error. No se si puedan ayudarme

Sub cargarfolio()
ComboBox1. Clear
Sheets("Formulario"). Activate
Range("A1").Select
For i = 1 To 100
If ActiveCell.Offset(i, 0).Value <> "" Then
ComboBox1.AddItem ActiveCell.Offset(i, 0).Value
End If
Next
End Sub

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
ComboBox1.Enabled = True
cargarfolio
Else
ComboBox1.Enabled = False
ComboBox1.Clear
End If
End Sub

Private Sub ComboBox1_Change()
Dim var2 As String
If ComboBox1 = "" Then
Else
Editar.Locked = False
Sheets("Formulario").Activate
If ComboBox1 = Empty Then
MsgBox "Para modificar primero id", vbInformation, "Almacen"
ComboBox1.ListIndex = 0
ComboBox1.SetFocus
End If
var2 = ComboBox1.Column(0)
Cells.Find(what:=ComboBox1.Value, After:=ActiveCell, LookIn:=xlFormulas, lookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate

If var2 = ActiveCell Then
TextBox1 = ActiveCell.Value
TextBox2 = ActiveCell.Offset(0, 1)
TextBox3 = ActiveCell.Offset(0, 2)
ComboBox2 = ActiveCell.Offset(0, 3)
TextBox5 = ActiveCell.Offset(0, 4)
TextBox6 = ActiveCell.Offset(0, 5)
TextBox7 = ActiveCell.Offset(0, 6)
ComboBox3 = ActiveCell.Offset(0, 7)
TextBox8 = ActiveCell.Offset(0, 8)
ComboBox4 = ActiveCell.Offset(0, 9)

TextBox1.Locked = False
TextBox2.Locked = False
TextBox3.Locked = False
ComboBox2.Locked = False
TextBox5.Locked = False
TextBox6.Locked = False
TextBox7.Locked = False
ComboBox3.Locked = False
TextBox8.Locked = False
ComboBox4.Locked = False

End If
End If
End Sub

1 Respuesta

Respuesta
1

¿Podrías enviar un ejemplo de tu proyecto para revisar en donde se origina el problema?

primero le doy checBox para que se acitve el ComboBox. Ya en el ComboBox le escribo el folio y sale en los textBox la consulta, pero si no es me saca del formulario. Y me gustaría que me salga error que no existe en la base y no que me saque del formulario.

Entiendo tu problema y con muchos ánimos de ayudarte, ¿serias tan amable de enviar a mi correo parte de tu archivo y cuando este en casa lo reviso y te devuelvo el ejemplo modificado? Este es mi correo [email protected] Saludos!

Amigo wayanluis garcia muñoz estuve revisando tu código y el error esta en la siguiente línea

var2 = ComboBox1. Column(0)

en donde estas igualando la variable var2 con un dato no existente del combobox, entonces cuando buscas el número de folio en el combobox y este no existe, inmediatamente te arroja el error y como tu dices, te saca del formulario, ahora bien para no hacerle modificaciones a todo tu código, lo que puedes hacer es un validador de errores con on error goto y con select case, quedando de la siguiente manera:

On Error GoTo Depurar 'Si encuentra el error hace el salto omitiendo y enviando al Select Case
var2 = ComboBox1.Column(0)
Cells.Find(What:=ComboBox1.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
Depurar:
Select Case Err.Number
Case Is = 381 'Número de error
    MsgBox "No se encontró el número de folio.", vbInformation, "Dato no Encontrado"
ComboBox1 = Empty
End Select
Revisa el código y me comentas.

¡Gracias! . era justo lo que necesitaba.... gracias

Buenísimo que te haya servido!

podrías ayudarme con varios  filtrados en un listBox con rowsource

Esta bien, puedes crear nueva pregunta o enviarme tu archivo y explicar con detalles lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas