Indicar por nombre hoja en un textbox para ingresar datos

Hola buen día, por favor si me pueden colaborar se los agradecería enormemente...
Tengo en la Hoja1 un CommandButton para llamar un form el cual tiene un textbox en donde debo ingresar por nombre de hojas, la hoja que digite  en esta caja te texto debe seleccionarse para   activar otro form que es el que va a vaciar los datos en dicha hoja, teniendo en cuenta que la hoja1 es la única visible las demás han de estar ocultas. Ya lo he intentado con la función if...
Private Sub CommandButton1_Click()
If Textbox1 = "Hoja3" Then
Textbox1 = ""
ActiveSheet.Unprotect
Sheets("Hoja3").Visible = True
Sheets("Hoja3").Select
UserForm2.Show
Textbox1.SetFocus
End If
End Sub
pero tengo muchas hojas  y me tocaría crear la función para cada hoja y seria mucho código,
Gracias por cualquier ayuda que me brinden en este maravilloso foro que me ha sacado de apuros anteriormente.
(xxxxxx)....

1 Respuesta

Respuesta
1
Prueba este código:
Private Sub CommandButton1_Click()
for i = 2 to Sheets.Count
If Textbox1 = sheets(i) Then
Textbox1 = ""
ActiveSheet.Unprotect
Sheets(i).Visible = True
Sheets(i).Select
UserForm2.Show
Textbox1.SetFocus
End If
Next
End Sub
Hola, antes que nada gracias por atender mi problema...
Te comento que sale que se ha producido error "438" en tiempo de ejecución:
el objeto no admite esta propiedad o método y me señala la linea if textbox1=sheets(i)Then
por favor si puedes revisar el código gracias
(xxxxxx)...
Se me olvido darle la propiedad nombre a la hoja, prueba así:
textbox1=sheets(i).Name
toldeman muchísimas gracias me quedo full, y perdona por mi ignorancia pero ahora estoy pegado con el commandButton2 de "salir" que se encuentra en form2 para que me queden las hojas de nuevo ocultas y protegidas después de agregar los datos. Y si no seria mucho molestar en el  código anterior  colocar un msgbox para cuando el nombre de la hoja no exista. yo lo hice de la siguiente manera y me funciona pero el  msgbox  no se oculta después del click..¿que debo hacer?..
Private Sub CommandButton1_Click()
For i = 2 To Sheets.Count
If ComboBox1 = Sheets(i).Name Then
ComboBox1 = ""
ActiveSheet.Unprotect
Sheets(i).Visible = True
Sheets(i).Select
UserForm2.Show
ComboBox1.SetFocus
Else
 MsgBox " La hoja no existe"
 ComboBox1 = ""
ComboBox1.SetFocus
End If
Next
End Sub
 Disculpame por quitarte un poco de tu tiempo ... Dios te bendiga...
Prueba asi:
Else
MsgBox " La hoja no existe"
End If
Si ves que no te funciona, mandame el archivo.
hola de nuevo , te mande el archivo para que le des una mirada y perdona psss estos de los códigos  vba apenas los estoy aprendiendo gracias a ustedes...
(xxxxxx)...
Ya te mande tú ejemplo.
Si te sirvió no olvides finalizar la pregunta.
hola toldeman ok esta muy bien pero me falto el código para  el botn cancelar o salir  de los form que me oculte y proteja la hoja de nuevo en la que trabaje y seleccione la hoja1
gracias y perdona por la insistencia...
(xxxxxx)
Revisa el archivo que te volví a enviar.
toldeman gracias por la paciencia  por  dedicar parte de tu tiempo para ayudar a los demas,
Es justo lo que buscaba.....que tengas un feliz año.
(xxxxxx)....

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas