Case en excel

No soy muy experto en visual basic, cree un formulario para ingresar datos, y esa información la dividí en varias etapas.

En la etapa uno, ingreso unos valores y todo bien, en el caso 2 lo primero que hago es buscar un dato para poder ingresar los otros datos correspondientes a la fila y no este hay problema,

El problema ya se genera cuando busco un valor que aun no se ha creado y me sale error de un bug.

Quisiera crear una instrucción que si ingreso un valor que no este creado en la columna donde se cargan los datos creados me genere un mensaje como " el valor no existe"

El código empleado para la búsqueda es el siguiente

Sheets("SEGUIMIENTO").Select
Sheets("SEGUIMIENTO").Unprotect "HW123"

Cells.Find(What:=TextBox6.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
TextBox7.Text = ActiveCell.Row

Sheets("SEGUIMIENTO"). Protect "HW123"
UserForm6. Hide
UserForm3.Show

Respuesta
1

Algo sencillo que te puede quitar del apuro si te da un error, prueba con este código:

On Error Goto Salir

Sheets("SEGUIMIENTO").Select
Sheets("SEGUIMIENTO").Unprotect "HW123"
Cells.Find(What:=TextBox6.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
TextBox7.Text = ActiveCell.Row
Sheets("SEGUIMIENTO").Protect "HW123"
UserForm6.Hide
UserForm3.Show

Salir:

MsgBox "el valor no existe", vbOKOnly + vbCritical, "Atención: Error!"

-----

Si quieres algo mas elaborado concediéndome mas detalles podría ayudarte, e implementamos un código dependiendo lo que tengas armado.

Saludos.

Hola,

desafortunadamente no funciona como lo necesito

te voy a explicar bien,

tengo varios formularios.

en el primer formulario estoy creando un formulario para que me ingrese todos los datos en una columna ( cada fila es ingresado por el formulario 1)

así:

columna a columna b

fila 1 ot:0001 1-12-12

fila 2 ot:0002 1-12-12

fila 3 ot:0003 1-12-12

esos datos son cargados en el formulario y cada vez que ingreso un dato lo organiza en la columna con cada valor asignado.

ya para el formulario 2, lo primero que hago es buscar el dato de la columna "A" para este caso OT:0001 (esto desde un formulario que solo busca el dato ingresado y es eubica en la fila donde este) y así poder ingresar mas datos a otras columnas, en total son 50 columnas.

si ingreso el valor OT:0001 o algún valor que ya este en la columna A, los formularios continúan sin problema, y ahí es donde ya necesito ayuda....

si ingreso un valor que no este en la columna A, me genera un debug, lo que quiero llegar ha hacer es que si ingreso un valor como por ejemplo OT:XXXX me arroje un mensaje que diga dato no encontrado.

espero que ahora si haya hecho entender mejor.

gracias,

Te entiendo, facilitame el código que utilizas para buscar ese dato de la columna "A"

Y le buscamos una solución.

mira,

con este cargo los primero datos

Dim Count As Integer
Private Sub ComboBox1_Change()
End Sub
Private Sub ComboBox2_Change()
End Sub
Private Sub CommandButton1_Click()
Sheets("SEGUIMIENTO").Select
Sheets("SEGUIMIENTO").Unprotect "HUAWEI123"
Count = Worksheets("DATA").Cells(2, 14).Value
Count = Count + 1
Worksheets("SEGUIMIENTO").Cells(Count, 1).Value = TextBox1.Value
Worksheets("SEGUIMIENTO").Cells(Count, 2).Value = TextBox7.Value
Worksheets("SEGUIMIENTO").Cells(Count, 3).Value = LDDate1.Date
Worksheets("SEGUIMIENTO").Cells(Count, 5).Value = ComboBox2.Value
Worksheets("SEGUIMIENTO").Cells(Count, 8).Value = ComboBox1.Value
Worksheets("SEGUIMIENTO").Cells(Count, 6).Value = ComboBox3.Value
Worksheets("SEGUIMIENTO").Cells(Count, 11).Value = ComboBox4.Value
Worksheets("SEGUIMIENTO").Cells(Count, 13).Value = ComboBox5.Value
Worksheets("SEGUIMIENTO").Cells(Count, 14).Value = ComboBox6.Value
Worksheets("SEGUIMIENTO").Cells(Count, 16).Value = TextBox4.Value
Worksheets("SEGUIMIENTO").Cells(Count, 17).Value = TextBox5.Value
Worksheets("SEGUIMIENTO").Cells(Count, 10).Value = TextBox10.Value
Worksheets("SEGUIMIENTO").Cells(Count, 51).Value = TextBox8.Value
Worksheets("SEGUIMIENTO").Cells(Count, 52).Value = TextBox9.Value
Worksheets("SEGUIMIENTO").Cells(Count, 9).Value = TextBox6.Value
Worksheets("SEGUIMIENTO").Cells(Count, 19).Value = ComboBox7.Value
Worksheets("SEGUIMIENTO").Cells(Count, 15).Value = TextBox11.Value
Sheets("SEGUIMIENTO").Protect "HUAWEI123"
Sheets("MACRO").Select
UserForm4.Hide

con este busco el dato

Private Sub CommandButton1_Click()
' FORMULA PARA BUSCAR EL NOMBRE DE UNA SELECCION DEL COMBOBOX
Sheets("SEGUIMIENTO").Select
Sheets("SEGUIMIENTO").Unprotect "HUAWEI123"
Cells.Find(What:=TextBox1.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
TextBox2.Text = ActiveCell.Row
Sheets("SEGUIMIENTO").Protect "HUAWEI123"
UserForm7.Hide
UserForm1.Show
End Sub

y el segundo dato lo cargo asi:

Dim Count2 As Integer
Private Sub ComboBox1_Change()
End Sub
Private Sub CommandButton1_Click()
Count2 = Worksheets("DATA").Cells(2, 14).Value
Sheets("SEGUIMIENTO").Unprotect "HUAWEI123"
Worksheets("SEGUIMIENTO").Cells(Count2, 32).Value = ComboBox1.Value
Worksheets("SEGUIMIENTO").Cells(Count2, 33).Value = LDDate1.Date
Worksheets("SEGUIMIENTO").Cells(Count2, 34).Value = TextBox1.Value
Worksheets("SEGUIMIENTO").Cells(Count2, 35).Value = TextBox2.Value
Worksheets("SEGUIMIENTO").Cells(Count2, 36).Value = ComboBox2.Value
Worksheets("SEGUIMIENTO").Cells(Count2, 37).Value = LDDate2.Date
Worksheets("SEGUIMIENTO").Cells(Count2, 38).Value = TextBox3.Value
Worksheets("SEGUIMIENTO").Cells(Count2, 39).Value = TextBox4.Value
Sheets("SEGUIMIENTO").Protect "HUAWEI123"
UserForm1.Hide

gracias,

Disculpa mi desatención, sino me equivoco está aquí el tema:

If TextBox7.Text = "" Then
MsgBox "El valor no existe", vbOKOnly + vbCritical, "Atención: Error"
Exit Sub
Else
Sheets("SEGUIMIENTO").Protect "HW123"
UserForm6.Hide
UserForm3.Show
End If

Prueba y me comentas,

Private Sub CommandButton1_Click()
' FORMULA PARA BUSCAR EL NOMBRE DE UNA SELECCIÓN DEL COMBOBOX
Sheets("SEGUIMIENTO").Select
Sheets("SEGUIMIENTO").Unprotect "HUAWEI123"
Cells.Find(What:=TextBox1.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
TextBox2.Text = ActiveCell.Row ' en esta linea debería de ser
Sheets("SEGUIMIENTO").Protect "HUAWEI123"
UserForm7.Hide
UserForm1.Show
End Sub

¿En este da el error cierto? ¿En qué línea?

sale acá

False, SearchFormat:=False).Activate

Private Sub CommandButton1_Click()
' FORMULA PARA BUSCAR EL NOMBRE DE UNA SELECCIÓN DEL COMBOBOX

On Error GoTo Salir
Sheets("SEGUIMIENTO").Select
Sheets("SEGUIMIENTO").Unprotect "HUAWEI123"
Cells.Find(What:=TextBox1.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
TextBox2.Text = ActiveCell.Row
Sheets("SEGUIMIENTO").Protect "HUAWEI123"
UserForm7.Hide
UserForm1.Show

Exit Sub

Salir:

MsgBox "el valor no existe", vbOKOnly + vbCritical, "Atención: Error!"
End Sub

----

Prueba asi

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas