Insérer une image dans une cellule

Résolu/Fermé
Bonjour! - 12 mai 2009 à 14:48
 Bonjour - 12 mai 2009 à 19:54
Bonjour,

Voilà je ne m'y connais pas trop et je souhaiterais par une macro qu'une image disparaisse ou aparaisse lorsqu'on click sur la cellule. Pouvez-vous me donner un exemple concret sur un fichier excel? :-)

1 réponse

hich24 Messages postés 1619 Date d'inscription mardi 2 octobre 2007 Statut Membre Dernière intervention 11 avril 2023 752
12 mai 2009 à 16:01
tu peut le faire avec les commantaire
1- tu choisie une cellule

2- selectionne l'image > copy , selection la cellule
3- menu insertion > commantaire > tu colle l'image dessus

si ca marche tu vote sur sur le message
0
En fait c'est gentil d'avoir répondu rapidement mais ce n'est pas ce que je voulais. J'aurais souhaité que lorsque j'appuis sur la cellule A1 par exemple l'image apparaisse et que lorsque j'appuie à nouveau dessus elle disparaisse! :-( Sais-tu comment faire ? Je sais qu'il faut utiliser une macro mais j'aurais voulu avoir un modèle sur excel.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Bonjour!
12 mai 2009 à 18:43
Bonjour Bonjour,

Dansla m^me cellule c'est difficile car l'image occupera toute la cellule lorsque elle sera chargée et donc, tu cliqueras sur l'image et non sur la cellule.
Si ta cellule de commande est en A3, l'image apparaissant en B3:
macro à copier-coller dans le module feuille concerné (clic droit sur nom d'onglet-visualiser le code)
tu peux insérer tout type de format: gif, bmp, jpeg...
la macro se déclenche quand tu cliques sur A3... il faut recliquer avant de fermer

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static flag As Boolean
Dim Image As Picture
Dim design As String
If flag = False Then
    If Intersect(Target, Range("A3")) Is Nothing Then: Exit Sub
    design = ThisWorkbook.Path & "\aubenas.jpg"
    Set Image = ActiveSheet.Pictures.Insert(design)
    Range("B3").Select
    With Image.ShapeRange
        .Name = "cartepost"
         .Height = Range("B3").Height
        .Width = Range("B3").Width
        .LockAspectRatio = msoFalse
    End With
    flag = True
    Range("A3") = "cacher"
Else
    ActiveSheet.Shapes("cartepost").Delete
    flag = False
    Range("A3") = "montrer"
End If
End Sub


p'tite démo
https://www.cjoint.com/?fmtbiTSlAG


Bonsoir cher Bonjour (ben oui, j'allais la louper!)
0
Bonjour > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
12 mai 2009 à 19:54
Salut!

Super c'est exactement ce que je voulais! Merci infiniment!

PS: Oui, la perche était trop grande :-) ;-)
0