Activesheet

Señores espero se encuentren bien
Tengo un textbox1 como objeto sobre la planilla, este elemento filtra un autofiltro de la hoja, pero sucede que le digo al textbox, cuando tenga tres caracteres quedece vacío, pero nuevamente ejecuta toda la rutina, ¿me explico?
O sea, quiero que me filtre el 522 en la base, pero una vez que lo haga vuelvace vacío, pero al decirle eso, nuevamente se ejectua la macro y es como decirle filtre por vacío en conclusión no me filtra por ninguna y me muestra toda la información.
Private Sub TextBox1_Change()
Dim Nico As Long
On Error GoTo Tot
If TextBox1.Value = Empty Then
ActiveSheet.ShowAllData
Else
Nico = ActiveSheet.TextBox1.Value
    Selection.AutoFilter Field:=1, Criteria1:=Nico
        If Len(ActiveSheet.TextBox1.Value) = 3 Then
            ActiveSheet.TextBox1.Text = Empty
        End If
    End If
Tot:
End Sub
Claramente al ejecutarse nuevamente me realiza el primer if. Pero como hago para que no lo haga.
Muchas gracias

1 respuesta

Respuesta
En lugar de usar el Private Sub TextBox1_Change() usa cualquiera de estos dos, prueba cual te funciona mejor, ya que el Change funciona por cada carácter que ingresar por lo cual siempre siempre se va a ir en el 3er carácter
Private Sub TextBox1_AfterUpdate()
End Sub
Private Sub TextBox1_Enter()
End Sub
Pruébalo y me cuentas como te resulta
Me acabo de dar cuenta que esas funciones las tiene un textbox para un userform, pero no un textbox en la hoja de excel.
Ayuda popeye. Je je
Si solucionaste el problema te pido que finalices la pregunta
No, aun no tengo solución a mi problema, las funciones TextBox1_AfterUpdate() y TextBox1_Enter() no existen en un textbox como elemento de excel,
lo que quiero mirado por tema de userform es fácil, pero cuando se agregan a excel, siempre he tenido problemas, cuando se activan las hojas realizan las macros programadas para otros elementos,
por ejemplo tengo un combobox que tiene un valor y filtra un autofiltro, después saco todos los filtros con mostrar todo de datos - filtro, y por ejemplo elimino una columna, automáticamente se ejecuta el código de la hoja que es el código del combobox, es extraño, con este textbox es parecido, solo que le digo limpiate al final, y al existir cambio se vuelve a ejecutar.
Y si puedes ayudarme te lo agradecería.
La verdad es que no entiendo mucho tu problema, el uso del userform es simple y super poderoso en relación a los datos
para mostrar el userform se usa la instrucción
UserForm1.Show
Y después debes poner el código al interior del userform
Igual aclarame un poco tu problema para poder ayudarte
Por supuesto amigo, en excel donde están todas la celdas, tenemos también los comandos "abrir libro", etc. arriba con el botón derecho aparece lista con varias opciones donde esta el menu visual Basic, en ese menu encontrara la opción cuadro de controles, los mismo que usa un userform, bueno ahí puedo diseñar comandos sobre la hoja de excel y el textbox que diseñe no tiene las opciones que tu me das y con los inconvenientes que señale anteriormente.
Primero disculpa por demora en responder, pero he estado con poco tiempo, solo te quería consultar si pudiste solucionar tu problema
Te reitero mis disculpas por la demora

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas