Microsoft 365 Comment faire apparaître une image dans une mise en forme

Andre51

XLDnaute Nouveau
Bonjour les ami(e)s,
Pourriez-vous me dire si à partir d'une mise en forme conditionnelle pour un évènement précis, s'il est possible de faire apparaître en même temps une image.
Dans la pièce jointe que j'envoie c'est le jour de l'anniversaire de Mr. Lion qui s'affiche en jaune, est-il possible de faire s'afficher en même temps l'image d'un lion ?
Je remercie d'avance les personnes pouvant m'amener une réponse .
Andre51
 

Pièces jointes

  • Anniversaires.xlsm
    28.2 KB · Affichages: 7
Solution
Bonsoir André, Wayki,
Après quelques essais, une PJ.
Il faut avoir 12 images quelque part sur le disque que j'ai appelé Image1 à Image12. ( dans la PJ je n'en ai mis que trois )
Dans l'userform créer une image, dans la propriété Picture appuyez sur les "..." et charger l'image désirée.
Refaire l'opération en superposant les images.
Dès cet instant, les images sur disque ne sont plus utiles.
Je réutilise ma fonction SigneZodiacal pour trouver la bonne image en fonction de la date.
Dans l'userform j'ai rajouté :
VB:
Function ShowX(titre, nom, age, couleur, SigneZodiac)
    With UserForm1
        ' Rendre invisible toutes les images
        For i = 9 To 11 ' Indices à modifier en conséquence
            .Controls("Image" & i).Visible =...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour André,
Il est possible d'afficher des images dans un userform, mais il faut une banque d'images.
Et je laisse quelqu'un de plus futé pour répondre à votre question.
Dans un autre genre, vous pouvez afficher, à défaut d'image, le signe zodiacal, en partant sur une police Windings. Voir PJ avec la fonction :
VB:
Function SigneZodiacal(N)
    ' Renvoie la lettre du signe zodiacal de la date N. La lettre doit être mise en police Wingdings
    Dim Début, Fin, Lettre
    ' Début de la période du signe, Fin de la période, Lettre correspondant
    ' au signe zodiacal en police Wingdings
    Début = Array(80, 111, 142, 173, 204, 235, 266, 296, 327, 356, 21, 50)
    Fin = Array(110, 141, 172, 203, 234, 265, 295, 326, 355, 20, 49, 79)
    Lettre = Array("^", "_", "`", "a", "b", "c", "d", "e", "f", "g", "h", "i")
    N = Date - DateSerial(Year(Date), 1, 0)
    For t = 0 To 11
        If N >= Début(t) And N < Fin(t) Then SigneZodiacal = Lettre(t)
    Next t
End Function
 

Pièces jointes

  • Anniversaires.xlsm
    26.8 KB · Affichages: 11

Wayki

XLDnaute Impliqué
Bonjour,
Il vous faut une base de donnée avec vos images nommées comme il se doit.
Un exemple, en rajoutant cette ligne dans votre fonction showx :
.Picture = LoadPicture("C:\Users\lion.jpg")
J'ai pas essayé mais il est sans doute possible de variabiliser le choix de la photo.
A +
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir André, Wayki,
Après quelques essais, une PJ.
Il faut avoir 12 images quelque part sur le disque que j'ai appelé Image1 à Image12. ( dans la PJ je n'en ai mis que trois )
Dans l'userform créer une image, dans la propriété Picture appuyez sur les "..." et charger l'image désirée.
Refaire l'opération en superposant les images.
Dès cet instant, les images sur disque ne sont plus utiles.
Je réutilise ma fonction SigneZodiacal pour trouver la bonne image en fonction de la date.
Dans l'userform j'ai rajouté :
VB:
Function ShowX(titre, nom, age, couleur, SigneZodiac)
    With UserForm1
        ' Rendre invisible toutes les images
        For i = 9 To 11 ' Indices à modifier en conséquence
            .Controls("Image" & i).Visible = False
        Next i
     ...
    ...
        ' Trouver le nom de l'image
        NomImage = "Image" & SigneZodiacal(Date, 1)
        ' La rendre visible
        .Controls(NomImage).Visible = True
        .Show
    End With
End Function
En espérant avoir fait avancer le smilblick.
Bien sur pour être complet il faut 12 images de type jpg avec la bonne taille, ce qui n'est pas le cas dans la PJ. ;)

NB: Un autre exemple comme le montre Mapomme.
 

Pièces jointes

  • Anniversaires (1).xlsm
    74.1 KB · Affichages: 8
Dernière édition:

Discussions similaires

Réponses
1
Affichages
666

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof