Lo que tendremos que hacer es diseñar un UserForm (un formulario), con este aspecto:

No penséis que hay una etiqueta (label) supergrande. En realidad hay varias etiquetas, lo que pasa es que están ligeramente superpuestas, de ahí que parezca que solo hay una.
Para lanzar el UserForm, simplemente tendremos que añadir estas líneas a un módulo:
| Sub lanzar_userform() 'lanzamos el userform UserForm1.Show End Sub |
Y este sería el código para que cuando se cargue el formulario, nos llene los tres ComboBox, el de las horas, el de los minutos, y el de los segundos:
| Private Sub UserForm_Initialize() 'Si hay errores, que continúe On Error Resume Next 'Al cargar el Userform, mostramos 'el listado de horas, minutos y segundos, 'para ello le pondremos un tope de 1000 'horas en el combobox, aunque se puede cambiar For i = 0 To 1000 'Añadimos las horas ComboBox1.AddItem i If i <= 59 Then 'Añadimos los minutos ComboBox2.AddItem i 'Añadimos los segundos ComboBox3.AddItem i End If Next End Sub |
Este otro será el código que se ejecutará, al cliquear sobre el botón que hay en el formulario, y que tiene como etiqueta el nombre "Calcular":
| Private Sub CommandButton1_Click() 'Si hay errores, que continúe On Error Resume Next 'Hacemos los cálculos que mostraremos 'en las diferentes etiquetas, para lo cual 'pasamos el item seleccionado, a variables horas = ComboBox1.List(ComboBox1.ListIndex) minutos = ComboBox2.List(ComboBox2.ListIndex) segundos = ComboBox3.List(ComboBox3.ListIndex) If IsEmpty(horas) Then horas = 0 If IsEmpty(minutos) Then minutos = 0 If IsEmpty(segundos) Then segundos = 0 'mostramos los años Label5 = Format((horas + (minutos / 60) + _ (segundos / 60 / 60)) / 24 / 365, "#,##0.0000") & " años" 'mostramos los meses Label6 = Format((horas + (minutos / 60) + _ (segundos / 60 / 60)) / 24 / 30, "#,##0.0000") & " meses" 'mostramos las semanas Label7 = Format((horas + (minutos / 60) + _ (segundos / 60 / 60)) / 24 / 7, "#,##0.0000") & " semanas" 'mostramos los días Label8 = Format((horas + (minutos / 60) + _ (segundos / 60 / 60)) / 24, "#,##0.0000") & " días" 'mostramos las horas Label9 = Format(horas + (minutos / 60) + _ (segundos / 60 / 60), "#,##0.0000") & " horas" 'mostramos los minutos Label10 = Format((horas * 60) + minutos + segundos / 60, _ "#,##0.0000") & " minutos" 'mostramos los segundos Label11 = Format((horas * 60 * 60) + (minutos * 60) + _ segundos, "#,##0") & " segundos" 'mostramos un mensaje al pie del formulario Label12 = "Los datos presentados, están en formato decimal." End Sub |
Como veis, no tiene ninguna complejidad montar un formulario de este tipo, pues solamente tenemos que tener claro las fórmulas para convertir las horas en minutos, en segundos, etc. Aquí os dejo varios pantallazos con el formulario al cargarse, y con un ejemplo, una vez seleccionadas las horas, minutos y segundos, y tras pulsar el botón "Calcular":


Desde aquí descargar el fichero de excel, con el ejemplo que hemos visto en este artículo.
hola tu me podrias ayudar tengo dos planillas de en las cuales hay una tercera que quiero que deje una categoria en ella la idea es saber si esta en la lista de vulnerables y en la prioritarios y si tiene las condiciones que deje expresado "vulnerable prioritario" todo esto es consultando el n° de identificacion de los alumnos
ResponderEliminarpor si te interesa ayudarme mi correo es jofre1975@msn.com
atte.
Rodrigo Jofre