domingo, 13 de diciembre de 2020

40 - Tarjetas animadas

 Esta época del año nos motiva a realizar otro tipo de trabajos en Excel, en este caso la creación de tarjetas festivas.

Los gifs animados son especiales para esto. Y para ello necesitaremos utilizar el control llamado Microsoft Web Browser.


NOTA: Si una vez dibujado el control en la hoja aparece un mensaje de que no este control no se encuentra habilitado, ver notas con aclaraciones en esta entrada o en el video 20 de mi canal.

El formato de la hoja (colores, fuente, tamaño de la tarjeta) queda a gusto de cada uno. 

En el video 40 cuyo enlace queda al pie se muestran 2 modelos: con o sin texto personalizado y con 1 sola hoja o como portada de un libro de más hojas.


Las macros que se necesitan son las siguientes:

En el objeto ThisWorkbook o Este Libro:

Private Sub Workbook_Open()

'seleccionar hoja de apertura y asignarle rango scroll

Sheets("Hoja1").Select          'esta instrucción solo si el libro contará con más de una hoja

ActiveSheet.[K8].Select

ActiveSheet.ScrollArea = "$A$1:$Q$40"

[F2] = ""   'quitar mensaje para habilitar macros

End Sub

En el objeto Hoja donde se colocará la tarjeta:

Private Sub Worksheet_Activate()

'web browser

  ruta = ThisWorkbook.Path           'ubicar la imagen en la misma carpeta que el libro

  archivo = "navidad2021-c"          

  ext = ".gif"

 

  WebBrowser1.Navigate _

  "about:<html><body scroll='no'><img src='" & _

  ruta & "\" & archivo & ext & _

  " '></img></body></html>"

End Sub


NOTA: las variables que componen el nombre del objeto imagen se pueden incluir en una cadena que luego se reemplazará por la instrucción de color azul en la macro anterior. Por ejemplo:


ruta = ThisWorkbook.Path  

archivo = "navidad2021-c.gif"    


o también: 

ruta = ThisWorkBook.Path\navidad2021-c.gif


Eventualmente, si contamos con un libro con más de una hoja, podremos dibujar un botón para que nos ingrese al resto de la aplicación. Para ello insertaremos un módulo donde colocaremos la instrucción que seleccionará la hoja de trabajo que corresponda.


Sub INGRESO()

Sheets("PORTADA").Select

End Sub


Descargar los 2 archivos del ejemplo: Libro.xlsm e imagen.

Ver Video 40 desde aquí.


















No hay comentarios.:

Publicar un comentario