A continuación te brindaremos un ejemplo en el cual se ha utilizado la opción formulario. El ejemplo cuenta con una base de 50 frases para dedicar a tu pareja y 14 imágenes anexas, las cuales gracias a la opción de formulario se mostrarán aleatoriamente.
Descargar archivo completo de ejemplo : Frases de Enamorados
Se realizaron los siguiente pasos:
- Se seleccionó 50 frases de enamorados, las cuales se ubican en la hoja 2 desde la celda A2 a la celda A21 (Rango a Utilizar).
- Se insertó un Formulario en VBA (UserForm1)
- Se insertó un Label (Aparezcan las Frases) e Image (Aparezcan las Imágenes).
- Se insertó un CommandButton que tiene de contenido "¡Sorprende a Tu Pareja!" (Caption). El cual tiene la opción de que cuando se haga click sobre él se realize la aleatoriedad.
- Se diseñó el formulario a gusto, acomodando todos las herramientas a preferencia.
- En la Hoja 1 se insertó un CommandButton con el Nombre "Frases de Enamorados".
- Se escriben los códigos para que se pueda utilizar según lo mencionado al inicio.
A continuación el código VBA utilizado:
- Show: Muestra el Userform1 cuando se haga click en el CommandButton "Frases de Enamorados".
- WorsheetFunction.RandBetwee: Para la aleatoriedad
- Se brindo valores a algunas letras.
- Se seleccionó el lugar de donde saldrán las imágenes.
Private Sub CommandButton1_Click()
Dim ult As Integer, a As Integer, b As Integer
ult = Worksheets("Hoja2").Cells(Rows.Count, 1).End(xlUp).Row
a = WorksheetFunction.RandBetween(2, ult)
b = WorksheetFunction.RandBetween(1, 14)
UserForm1.Label1.Caption = Worksheets("Hoja2").Cells(a, 1).Value
ruta = ActiveWorkbook.Path & "\carpetadeimagen\" & b & ".jpg"
UserForm1.Image1.Picture = LoadPicture(ruta)
UserForm1.Image1.PictureSizeMode = fmPictureSizeModeStretch
End Sub
Espero les guste mi presentación.
Anthony Chu Tejada
21/10/2021 a las 12:16 pm
Hola, Me podrias explicar como cambiar el nombre de los botones?