
Problema con TEXTBOX
Publicado por anonymous (1 intervención) el 13/08/2023 19:15:24
Buenas tardes
En primer lugar felicitar por los buenos consejos y respuestas a las preguntas de los demás. Me están sirviendo de mucho
Tengo un problema que no consigo solucionar.
Tengo un libro con una pestaña llamada DATOS y otra serie de hojas con varias numeraciones
En cada hoja hay un botón que llama al mismo formulario.
En el formulario hay un TEXTBOX y un LISTBOX que se autocompleta mientras estas escribiendo. Esta captura los datos de la pestaña DATOS. Cuando inicias la busqueda en el TEXTBOX sale las opciones en el LISTBOX y puedes elegirlo.
También hay otro TEXTBOX y un LISTBOX que se autocompleta mientras estas escribiendo. Este captura las hojas del libro que salen en el LISTBOX y al hacer click sobre una de las opciones del LISTBOX te desplaza automáticamente hacia la hoja deseada.
Mi problema es el siguiente. En el TEXTBOX De búsqueda en la pestaña DATOS. ¿Como podría hacer para que, si estoy en la HOJA3 con el formulario en pantalla, cuando empiece a escribir en el TEXTBOX, NO se dirija a la pestaña DATOS, Sino que se quede en la hoja 3?.
Puse el codigo: 'Application.ScreenUpdating = false pero al ponerlo me deshabilitaba la opcion de poder elegir la hojas y desplazarme a ella
Muchas gracias por la ayuda prestada de antemano.
Adjunto codigo:
Private Sub ListBox3_Click()
TextBox3.Text = ListBox3.List(ListBox3.ListIndex)
Me.ListBox3.Visible = False
End Sub
Private Sub TextBox3_Change()
ListBox3.Clear
Sheets("DATOS").Select
For i = 1 To Sheets("DATOS").Range("H" & Rows.Count).End(xlUp).Row
If UCase(Range("H" & i).Value) Like "*" & UCase(TextBox3.Text) & "*" Then
Me.ListBox3.Visible = True
Me.ListBox3.AddItem Range("H" & i).Value
End If
Next i
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub TextBox1_Change()
Dim nombre As String
Dim letranombre As String
ListBox1.Clear
If TextBox1 = "" Then UserForm_Initialize
For Each hoja In Sheets
nombre = hoja.Name
If UCase(nombre) Like "*" & UCase(TextBox1) & "*" Then
ListBox1.AddItem hoja.Name
End If
Next
ListBox1.Visible = True
If TextBox1 = "" Then
ListBox1.Clear
ListBox1.Visible = False
End If
End Sub
Private Sub ListBox1_Click()
For x = 0 To Me.ListBox1.ListCount - 0
If ListBox1.Selected(x) = True Then
elegirhoja = ListBox1.List(x, 0)
Worksheets(elegirhoja).Select
End If
Next x
TextBox1.Text = Clear
ListBox1.Clear
ListBox1.Visible = False
End Sub
Private Sub UserForm_Initialize()
For Each hoja In Sheets
ListBox1.AddItem hoja.Name
Next
End Sub
Muchas gracias de antemano.
Un saludo

En primer lugar felicitar por los buenos consejos y respuestas a las preguntas de los demás. Me están sirviendo de mucho
Tengo un problema que no consigo solucionar.
Tengo un libro con una pestaña llamada DATOS y otra serie de hojas con varias numeraciones
En cada hoja hay un botón que llama al mismo formulario.
En el formulario hay un TEXTBOX y un LISTBOX que se autocompleta mientras estas escribiendo. Esta captura los datos de la pestaña DATOS. Cuando inicias la busqueda en el TEXTBOX sale las opciones en el LISTBOX y puedes elegirlo.
También hay otro TEXTBOX y un LISTBOX que se autocompleta mientras estas escribiendo. Este captura las hojas del libro que salen en el LISTBOX y al hacer click sobre una de las opciones del LISTBOX te desplaza automáticamente hacia la hoja deseada.
Mi problema es el siguiente. En el TEXTBOX De búsqueda en la pestaña DATOS. ¿Como podría hacer para que, si estoy en la HOJA3 con el formulario en pantalla, cuando empiece a escribir en el TEXTBOX, NO se dirija a la pestaña DATOS, Sino que se quede en la hoja 3?.
Puse el codigo: 'Application.ScreenUpdating = false pero al ponerlo me deshabilitaba la opcion de poder elegir la hojas y desplazarme a ella
Muchas gracias por la ayuda prestada de antemano.
Adjunto codigo:
Private Sub ListBox3_Click()
TextBox3.Text = ListBox3.List(ListBox3.ListIndex)
Me.ListBox3.Visible = False
End Sub
Private Sub TextBox3_Change()
ListBox3.Clear
Sheets("DATOS").Select
For i = 1 To Sheets("DATOS").Range("H" & Rows.Count).End(xlUp).Row
If UCase(Range("H" & i).Value) Like "*" & UCase(TextBox3.Text) & "*" Then
Me.ListBox3.Visible = True
Me.ListBox3.AddItem Range("H" & i).Value
End If
Next i
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub TextBox1_Change()
Dim nombre As String
Dim letranombre As String
ListBox1.Clear
If TextBox1 = "" Then UserForm_Initialize
For Each hoja In Sheets
nombre = hoja.Name
If UCase(nombre) Like "*" & UCase(TextBox1) & "*" Then
ListBox1.AddItem hoja.Name
End If
Next
ListBox1.Visible = True
If TextBox1 = "" Then
ListBox1.Clear
ListBox1.Visible = False
End If
End Sub
Private Sub ListBox1_Click()
For x = 0 To Me.ListBox1.ListCount - 0
If ListBox1.Selected(x) = True Then
elegirhoja = ListBox1.List(x, 0)
Worksheets(elegirhoja).Select
End If
Next x
TextBox1.Text = Clear
ListBox1.Clear
ListBox1.Visible = False
End Sub
Private Sub UserForm_Initialize()
For Each hoja In Sheets
ListBox1.AddItem hoja.Name
Next
End Sub
Muchas gracias de antemano.
Un saludo

Valora esta pregunta


0