Insérer une image dans une cellule excel

stagiaire2008 Messages postés 16 Statut Membre -  
stagiaire2008 Messages postés 16 Statut Membre -
Bonjour,

je vous contacte car je souhaiterai réaliser une compilation de données sur Excel contenant, entre autres, des images. Or si je sais insérer une image sur Excel, je ne connais pas la manipulation à faire pour insérer une image directement dans une cellule.
Sauriez-vous en mesure de m'aider à ce sujet?

Merci beaucoup!

Coridalement.

16 réponses

Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 402
 
Bonjour stagiaire2008.

Exact !

Si tu as beaucoup de photos et que tu dois manipuler ton fichier (mettre à jour, trier, filtrer) il vaut mieux laisser tomber Excel et passer à Access.
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour,
Ci joint démo pour insérer une image dans une cellule en cliquant sur B2
Pour cette démo, l'image doit être dans le m^me dossier que le classeur xL<2007
https://www.cjoint.com/?hziBwDyDhK

Mais tu pourras trouver d'autres exemples sur ce forum pour insérer des images: il faut cependant éviter de coller les images à montrer en les stockant dans une feuille du classeur (version non vba)

Si tu veux un choix d'imagess, dis-le: c'est possible avec Excel* et le VBA est Plus simple qu'avec Access
* actuellement ma démo envoie dans un cadre image fixe pas dans une cellule mais...

Edit 8:45h: tu peux aussi mettre une photo en commentaire: je crois que ca a déjà été traiter sur ce forum...
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Encore moi...
En fouinant j'ai adapté cette procédure pour insérer une image dans un commentaire:

Sub image_dans_commentaire()
' simplifié (supprimé choix photo) à partit d'une démo d' Isabelle, mpfe, trouvé sur site Fred Sigonneau (merci)
'http://frederic.sigonneau.free.fr
  Range("B2").AddComment
  With Range("B2").Comment
        chemin = ThisWorkbook.Path & "\"
        .Shape.Fill.UserPicture chemin & "virageadroite.jpg"
  End With

End Sub

virageadroite est dans le lien précédent

post du demandeur du vendredi apremidi ===> réaction de Stagiaire2008 lundi ????
0
stagiaire2008 Messages postés 16 Statut Membre
 
Merci beaucoup pour vos réponses. Je vais faire les essais. Il est vrai que Access serait plus adapté pour ce genre de travaux, mais malheureusement je ne sais pas m'en servir. Du coup, j'en suis réduite à faire quelque chose de moins performant sur Excel.
Encore merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stagiaire2008 Messages postés 16 Statut Membre
 
Je viens de visionner votre démo. C'est tout à fait ce qu'il faudrait que je sois en mesure de faire. Or, je ne sais pas comment on réalise cela. Et Effectivement, j'aurai besoin également de mettre en place un système de choix d'images. Serait-il possible de m'éclairer sur ces points?

Merci par avance. J'espère que cela ne vous prend pas trop de temps.

Cordialement.
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour

Ci joint bidouille
https://www.cjoint.com/?hAiAX7eCDQ

tous les PJ en XL2003: je ne sais pas si OK avec 2007...
0
stagiaire2008 Messages postés 16 Statut Membre
 
Merci beaucoup. Je vais faire le test et reviens vers vous si besoin est. Il y a-t-il un ordre à suivre dans la réalisation des différentes manipulations?

Bonne journée.

Cordialement.
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
non pas particulèrement si ce n'est activer la boite à outils en premier...
et mettre les photos dans le m^me répertoire...

A propos, Access n'est pas + approprié qu'Excel pour ce que tu demandes. Si tu y tiens je peux te joindre un exemple Access mais ..;
0
stagiaire2008 Messages postés 16 Statut Membre
 
Merci! Je n'ai pas encore eu le temps de faire les essais. Mais je reviens vers vous si besoin est.

Cordialement.
0
stagiaire2008 Messages postés 16 Statut Membre
 
En suivant la méthodologie, je ne parviens pas à faire le menu déroulant. J'ai enregistré mon classeur dans le même dossier que mes photos. J'ai activé la fonction "visualiser le code" sur la feuille une, mais rien ne se passe. Dois-je changer quelque chose à la formule?
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bin faut copier le code dans la page...
0
stagiaire2008 Messages postés 16 Statut Membre
 
C'est bon cela a marché! Merci! C'est possible de le faire pour chaque ligne d'une colonne? En effet, dans la base de données que je dois réaliser, il y aura une colonnes "visuels" et il y aura deux visuels la plupart du temps à choisir.
0
stagiaire2008 Messages postés 16 Statut Membre
 
En fait, je pense que pour ce que j'ai besoin de faire cela va être compliqué. En revanche, vous serait-il possible de m'expliquer la démarche à suivre pour réaliser la première proposition que vous m'avez faites, à savoir : montrer et cacher l'image? Je suis désolée de vous prendre de votre temps.

Cordialement.
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour
tu met la ligne de la cellule à la hauteur voulue
Pareil qu'hier pour installer:
copier la macro
clic droit etc

cellule de déclenchement: tu remplaces A3 par ton emplacement à toi
cellule photo:tu remplaces B3 par ton emplacement à toi
tu remplaces virageadroite.jpg par le nom de ton image par 'ex: "maman.png" ou "papa.gif" ou "moi.tiff"

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
    Range("B3").Select
    
    design = ThisWorkbook.Path & "\virageadroite.jpg"
    Set Image = ActiveSheet.Pictures.Insert(design)
    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"
    Range("A1").Select
End If
End Sub
0
stagiaire2008 Messages postés 16 Statut Membre
 
Je vous remercie encore cela m'a beaucoup aidé!

Cordialement.
0
Black4Mamba Messages postés 328 Statut Membre 60
 
tu pe pas inseré une image directement dans une cellule

++
-1