Buenos días amigos,
Tengo el siguiente problema:
Cree en excel un formulario con Visual Basic (no soy experta) y logo que todo funcionara a la perfeccion, solo hay un detalle que NO me gusta ver ja.
Cuando ejecuto el formulario, se pasa a mi segunda hora de trabajo, y no se queda en la primera, donde se ingresan los datos, y al final el uso del formulario y cerrarlo queda en otra hoja, y yo quiero y necesito que vuelva a la primera que es donde esta la planilla donde se ven los datos que se ingresaron mediante el formulario.
Otra cosa, diferente a lo anterior, en esa hoja donde esta la planilla que se completa con el formulario hay unas columnas que se deben escribir a mano, y para que se sepa inserte unas fechas en su parte superior, me gustaria fueran fijas para que nadie las mueva y no se equiboquen en donde completar los datos, y a la vez me gustaria que si alguien pasa el raton por ensima de la flecha le salga un escrito que diga, esta columna dede ser completada por usted. Esto puede ser?
Por otro lado, se puede hacer que las columnas que se completan con el formulario, en la plantilla se pueda bloquear para que nadie por error la modifique?
Espero puedan ayudarme.
De ante mano se los agradezco.
Muchas gracias.
Saludos cordiales.
Adjunto | Tamaño |
---|---|
proyecto_pino_azul_version_final.xlsm | 262.83 KB |
Hola
Si es lo que he entendido, lo que puedes hacer es localizar en el código del formulario, donde pone:
Private Sub cancelar_Click()
Unload Me
End Sub
puedes poner:
Private Sub cancelar_Click()
Sheets("Control").Activate
Unload Me
End Sub
Un saludo
Perfecto, muchas gracias!!!
Fue genial.
Respecto a mis otras dudas puedes ayudarme?
Mil gracias coesa me ayudaste, mil graias.
Un saludo.
Cron otra consulta, como viste en el archivo hay tres hojas, cuando completas el formulario va a la hora AStilleros, eso se puede evidar para que el cliente no la vea, ya que era mi intencion ocultar esa hoja, pero al hacerlo me sale error y no se ejecuta el formulario.
Gracias.
Se puede hacer, pero tienes que cambiar un poco el código. Además, te recomiendo que en el futuro pienses mejor de esta forma que te voy a comentar.
Al cargar el userform, lo que haces es poblar el desplegable de los astilleros con la lista que tienes en la pestaña del mismo nombre. Tú quieres que esté oculta, por lo que el código te dará un error al seleccionarla (al estar oculta, no se puede seleccionar ni activar).
Pero hay otra manera. Sí puedes hacer referencia a sus valores sin activarla ni activar cada celda. Esto suele ser lentísimo. Cuando son pocas celdas, como en tu caso, da igual. Pero cuando son muchas, se nota en el tiempo de ejecución.
Yo sustituiría tu código al inicializar el formulario por el siguiente:
Private Sub UserForm_Initialize()
astillero.Clear
fila = 1
Do While Sheets("Astilleros").Cells(fila, 1).Value <> ""
astillero.AddItem Sheets("Astilleros").Cells(fila, 1).Value
fila = fila + 1
Loop
End Sub
De esta manera, no seleccionas nada y la pestaña puede estar oculta.
Un saludo
NO SOY MUY EXPERTA COMO VERAS, LO CUAL AGRADEZCO MUCHO TU AYUDA, DE PONER ESTE CODIGO, QUE DEBERIA BORRAR, YA QUE TODO LO ARME A BASE DE VIDEOS EN YOUTUBE
NECESITARIA AGREGAR EN EL FORMULARIO EN APARTO DONDE COMPLETAR LA FECHA, ME AYUDARIAS CON EL CODIGO PARA FIJAR UN FORMATO DE FECHA, DIA/MES/AÑO.
AGUARDO ANSIOSA TU RESPUESTA.
MIL GRACIAS.
ahora agregue una columna con la fecha, y cuando abro el formulario el cursor sale en el nombre... en vez de salir en la echa,
Te adjunto el archivo por si puedes ayudarme.
Saludos
Cuando pinchas en cada objeto del formulario, todos los que permiten que el usuario interactúe con ellos (textboxes, botones, listboxes...) tienen una propiedad que se llama Tabindex.
Cuando abres el formulario, el cursor se te irá al objeto que tenga el valor menor de Tabindex. Dos objetos no pueden tener el mismo valor, pero de eso se encarga Excel. Si tienes un objeto con Tabindex=0, y a un segundo objeto le pones tú a mano que su valor tabindex=0, entonces el primer objeto aumentará su tabindex a 1 automáticamente. De esta manera, tendrás ordenados los objetos para que cuando el usuario tenga abierto el formulario, cada vez que le dé a la tecla TAB, pase al siguiente objeto (al que tiene el valor de tabindex inmediatamente superior al que tenía el foco.
Lo que tienes que hacer es seleccionar el textbox de la fecha, buscar su propiedad tabindex y cambiar el valor 15 por 0.
No sé si me he explicado bien. Si es que no, dímelo y lo cuento liándome un poco menos ;)
Saludos
CREO QUE SOY MALISIMA CON ESTE Y ME METI EN UN BUEN LIO CON ESTE TRABAJITO....
TE MANDE UN MAIL, TE LLEGO?
Hola
Como mi dirección de correo aquí no es pública, imagino que lo habrás enviado a la página, por lo que lo recibirá Paco. Él te puede ayudar tanto o más que yo.
Un saludo
TE DEJO MI CORREO, ESCRIBEME TU SI NO ES MOLESTIA, CARLANOMINATI@GMAIL.COM
MIL GRACIAS.
en el log del sitio aparece un error al intentar enviar el mensaje interno, así qeu el mensaje no se envió.
En cualquier caso, es mejor plantear las preguntas en el foro y no mediante email, por aquello de ser de utilidad para futuros visitantes con un problema similar.
------
Ya sé Excel, pero necesito más.
hola, busco lo que me decis pero no puedo encontrarlo, me ayudarias!
si cambio el codio este que me comentas, cual deberia sustituir?
Gracias.
Fuerte abrazo
Hola, Carla
Como te comenté, entra en las propiedades del formulario. Selecciona el textbox de la fecha (el que quieres que salga primero). Si no lo tienes activado, selecciona Ver|Ventana Propiedades
Dentro de esta ventana, y con el textbox seleccionado, busca la propiedad Tabindex y cambia su valor a 0. Vuelve a ejecutar. Verás que ahora, al abrirse el formulario, el foco está en el textbox de la fecha.
Un saludo