139 votes

Insérer une image dans une cellule Excel

Je cherche à générer un rapport avec des images, mais je n'arrive pas à mettre les images dans une seule cellule. Je peux les faire "flotter" autour de ma feuille de calcul, mais je dois les mettre dans une cellule. Comment puis-je faire cela ?

0 votes

Combien d'images avez-vous besoin dans une seule cellule?

0 votes

J'ai besoin d'une image par cellule, et je viens d'essayer d'insérer une image et de coller spécialement.

5 votes

Vous ne pouvez pas mettre des images "dans" une cellule, seulement "au-dessus". Toutes les images "flottent" sur la feuille de calcul. Vous pouvez positionner une image au-dessus d'une cellule en définissant ses propriétés Haut et Gauche sur le Haut et le Gauche de la cellule. Si vous éditez votre question avec le code que vous utilisez, il sera plus facile de suggérer une approche qui pourrait fonctionner pour vous.

112voto

Amber Points 344

Vous pouvez ajouter l'image dans un commentaire.

Clic droit sur la cellule > Insérer un commentaire > clic droit sur la zone ombrée (grise) à l'extérieur de la boîte de commentaire > Formater le commentaire > Couleurs et lignes > Remplissage > Couleur > Effets de remplissage > Image > (Parcourir l'image) > Cliquer sur OK

L'image apparaîtra au survol.

Microsoft Office 365 (2019) a introduit de nouvelles choses appelées commentaires et a renommé les anciens commentaires en "notes". Par conséquent, dans les étapes ci-dessus, faire Nouvelle note au lieu de Insérer un commentaire. Toutes les autres étapes restent les mêmes et la fonctionnalité existe toujours.


Il existe également un produit à 20 $ pour Windows - Excel Image Assistant...

0 votes

Est-ce que cela sera automatisé, au sens où l'image incluse sur la cellule peut être référencée / récupérée via une formule?

13 votes

Dommage que cela ne fonctionne pas avec les images du presse-papiers.

14 votes

Note. Il est important de cliquer avec le bouton droit sur la bordure et non à l'intérieur de la boîte de commentaire, car la fenêtre de dialogue de format de commentaire aura des options différentes dans chaque cas.

56voto

vr286 Points 767

Il y a une façon plus rapide (https://www.youtube.com/watch?v=TSjEMLBAYVc):

  1. Insérer une image (Ctrl+V) dans Excel.
  2. Vérifier que "Outils Image -> Aligner -> Ajuster à la grille" est cochée.
  3. Redimensionner l'image pour qu'elle s'adapte à la cellule (ou au nombre de cellules).
  4. Cliquez avec le bouton droit de la souris sur l'image et cochez "Taille et propriétés... -> Propriétés -> Bouger et redimensionner avec les cellules".

1 votes

L'étape 2 n'est pas nécessaire

5 votes

Cela ne répond pas directement à la question. Mais, c'est ce que je cherchais et c'est peut-être la solution que la plupart des gens veulent vraiment.

1 votes

Cette solution serait idéale pour visualiser le tableau ou l'imprimer, la réponse populaire ci-dessus serait parfaite pour visualiser le tableau sur un ordinateur et ne voir les images que lorsque l'utilisateur le souhaite.

16voto

virgula24 Points 68

Il suffit d'aller sur Google Docs et de coller ceci en tant que formule, où l'URL est un lien vers votre image

      =image("URL", 1)

ensuite, depuis les options de Google Docs, téléchargez pour Excel et vous aurez votre image dans la cellule MODIFIER Selon les commentaires, vous n'avez pas besoin de conserver l'URL de l'image en vie aussi longtemps, juste assez longtemps pour que Excel la télécharge. Ensuite, elle restera incorporée dans le fichier.

1 votes

Vous devez héberger l'image quelque part pour cette solution. Même Google Drive ne fonctionnera pas dans ce cas.

0 votes

Les gars, vous n'avez pas besoin de garder l'url active après avoir téléchargé le fichier Excel depuis Google Docs, l'image sera intégrée dans Excel lui-même.

2 votes

@virgula24, merci d'avoir partagé le conseil. Après avoir téléchargé la feuille Google en tant que fichier Excel, l'image n'apparaît pas dans la cellule. La valeur de la cellule est toujours =image("URL", 1), ce qui ne peut pas être interprété par Microsoft Excel. Si je télécharge en PDF, l'image s'affiche comme prévu.

8voto

ziMtyth Points 447

Maintenant, nous pouvons ajouter une image à Excel directement et facilement. Il suffit de suivre ces instructions :

  1. Allez à l'onglet Insertion.
  2. Cliquez sur l'option Images (elle est dans le groupe Illustrations). image1
  3. Dans la boîte de dialogue 'Insérer une image', localisez les images que vous souhaitez insérer dans une cellule d'Excel. image2
  4. Cliquez sur le bouton Insérer. image3
  5. Redimensionnez l'image pour qu'elle s'adapte parfaitement à la cellule. image4
  6. Placez l'image dans la cellule. Une manière sympa de le faire est de d'abord appuyer sur la touche ALT puis de déplacer l'image avec la souris. Elle s'alignera et s'ajustera automatiquement avec la bordure de la cellule dès qu'elle s'en approchera.

Si vous avez plusieurs images, vous pouvez les sélectionner et les insérer toutes en une seule fois (comme indiqué à l'étape 4).

Vous pouvez également redimensionner les images en les sélectionnant et en faisant glisser les bords. Dans le cas des logos ou des images de produits, vous voudrez peut-être conserver le rapport hauteur/largeur de l'image. Pour conserver le rapport hauteur/largeur, utilisez les coins d'une image pour la redimensionner.


Lorsque vous placez une image dans une cellule en suivant les étapes ci-dessus, elle ne restera pas collée à la cellule si vous la redimensionnez, la filtrez ou masquez les cellules. Si vous voulez que l'image reste collée à la cellule, vous devez verrouiller l'image sur la cellule où elle est placée.

Pour ce faire, suivez les étapes supplémentaires comme indiqué ci-dessous.

  1. Clic droit sur l'image et sélectionnez 'Format de l'image'. image5
  2. Dans le volet 'Format de l'image', sélectionnez Taille et propriétés et avec les options dans Propriétés, sélectionnez 'Se déplacer et se redimensionner avec les cellules'. image6

Maintenant, vous pouvez déplacer les cellules, les filtrer ou les masquer, et l'image se déplacera/filtrera/masquera également.


REMARQUE :

Cette réponse a été prise à partir de ce lien : Insérer une image dans une cellule Excel.

2voto

Daniel Points 164

Alors que ma recommandation est de profiter de l'automatisation disponible sur Doality.com spécifiquement Picture Manager pour Excel

Le code vba suivant devrait répondre à vos critères. Bonne chance!

Ce code insérera l'image dans la cellule choisie et la mettra à l'échelle pour s'adapter à la largeur et à la hauteur exactes de la cellule. Par exemple:

Instructions:

Ajoutez un contrôle de bouton à votre classeur Excel (cliquez sur l'onglet Développeur, Insérer, Contrôle ActiveX, Bouton de commande) puis double-cliquez sur le bouton pour accéder au code VBA -->

Sub Button1_Click()
    Dim filePathCell As Range
    Dim imageLocationCell As Range
    Dim filePath As String

    Set filePathCell = Application.InputBox(Prompt:= _
        "Veuillez sélectionner la cellule contenant le chemin d'accès de référence à votre fichier image", _
            Title:="Spécifiez le chemin d'accès au fichier", Type:=8)

     Set imageLocationCell = Application.InputBox(Prompt:= _
        "Veuillez sélectionner la cellule dans laquelle vous souhaitez insérer votre image.", _
            Title:="Cellule image", Type:=8)

    If filePathCell Is Nothing Then
       MsgBox ("Veuillez faire une sélection pour le chemin d'accès au fichier")
       Exit Sub
    Else
      If filePathCell.Cells.Count > 1 Then
        MsgBox ("Veuillez sélectionner uniquement une cellule contenant l'emplacement du fichier")
        Exit Sub
      Else
        filePath = Cells(filePathCell.Row, filePathCell.Column).Value
      End If
    End If

    If imageLocationCell Is Nothing Then
       MsgBox ("Veuillez faire une sélection pour l'emplacement de l'image")
       Exit Sub
    Else
      If imageLocationCell.Cells.Count > 1 Then
        MsgBox ("Veuillez sélectionner uniquement une cellule où vous souhaitez que l'image soit insérée")
        Exit Sub
      Else
        InsertPic filePath, imageLocationCell
        Exit Sub
      End If
    End If
End Sub

Créez ensuite votre méthode d'insertion comme suit (elle peut suivre le code du bouton ci-dessus):

Private Sub InsertPic(filePath As String, ByVal insertCell As Range)
    Dim xlShapes As Shapes
    Dim xlPic As Shape
    Dim xlWorksheet As Worksheet

    If IsEmpty(filePath) Or Len(Dir(filePath)) = 0 Then
        MsgBox ("Chemin d'accès au fichier invalide")
        Exit Sub
    End If

    Set xlWorksheet = ActiveSheet

    Set xlPic = xlWorksheet.Shapes.AddPicture(filePath, msoFalse, msoCTrue, insertCell.Left, insertCell.Top, insertCell.Width, insertCell.Height)
    xlPic.LockAspectRatio = msoCTrue
End Sub

0 votes

Très intéressante solution mais je ne peux pas la mettre en œuvre. Où/comment puis-je créer la méthode d'insertion?

0 votes

Je pense que la ligne "Set xlPic" devrait ressembler à ceci : Set xlPic = xlWorksheet.Shapes.AddPicture(filePath, msoFalse, msoCTrue, insertCell.left, insertCell.top, insertCell.width, insertCell.height) selon msdn.microsoft.com/en-us/library/office/ff198302.aspx

0 votes

Après avoir mis en œuvre le code pour l'événement de clic sur le bouton, vous pouvez simplement descendre en dessous de EndSub pour commencer une nouvelle routine Sub. Je dois cependant vous prévenir que l'ouverture d'Excel pour utiliser du code VBA nécessite que tout Excel exécutant votre code abaisse ses paramètres de sécurité. Des attaques récentes sur les propriétés intellectuelles des entreprises ont profité de cette faille spécifique dans la sécurité, c'est pourquoi je recommanderais de ne pas mettre en œuvre de manière large des Macros et de mordre sur la balle et de payer les 35 $ pour le complément susmentionné avec une interface utilisateur fournie et sans exposer votre fichier à des risques potentiels.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X