Salut! Essayer de faire basculer le tableau de bord avec des images significatives. Ou essayez simplement d’insérer une image dans la cellule Excel VBA. Eh bien, vous ne pouvez pas insérer d’images dans des cellules Excel, mais vous pouvez les redimensionner pour les adapter à une cellule Excel.

Le faire manuellement prendra beaucoup de temps et c’est ennuyeux. Donc, quelle est la solution? Vous l’avez bien deviné, une macro VBA. Nous allons coder maintenant.

Vous trouverez ci-dessous le code Excel vba pour insérer une image d’un dossier dans une cellule ou une plage donnée. Appuyez sur Alt + F11, insérez un module et copiez ce code.

Ne vous inquiétez pas, je vous l’ai expliqué ci-dessous afin que vous puissiez le modifier selon vos besoins.

Insérer une image dans une cellule Excel avec VBA dans une cellule ou une plage donnée [width = « 100% », cols = « 100% »,]

Sub TestInsertPictureInRange()InsertPictureInRange

« C:\FolderName\PictureFileName.gif », _Range(« B5:D10 »)

End Sub

Sub InsertPictureInRange(PictureFileName As String, TargetCells As

Range)

‘ inserts a picture and resizes it to fit the TargetCells range

Dim p As Object, t As Double, l As Double, w As Double, h As Double

If TypeName(ActiveSheet) <> « Worksheet » Then Exit Sub

If Dir(PictureFileName) = «  » Then Exit Sub

‘ import picture

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

‘ determine positions

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left – .Left

h = .Offset(.Rows.Count, 0).Top – .Top

End With

‘ position picture

With p

Height = h

End With

Set p = Nothing

End Sub

Explication:

Partie 1:

Sub TestInsertPictureInRange()InsertPictureInRange

« C:\FolderName\PictureFileName.gif », _Range(« B5:D10 »)

End Sub

Le sous-programme ci-dessus appelle simplement notre sous-programme principal InsertPictureInRange qui ne prend que deux arguments. D’abord l’adresse du fichier image avec son nom et la deuxième plage où vous souhaitez insérer l’image dans Excel.

Partie 2:

Sub InsertPictureInRange(PictureFileName As String, TargetCells As

Range)’ inserts a picture and resizes it to fit the TargetCells rangeDim

p As Object, t As Double, l As Double, w As Double, h As Double

If TypeName(ActiveSheet) <> « Worksheet » Then Exit Sub

If Dir(PictureFileName) = «  » Then Exit Sub

‘ import picture

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

‘ determine positions

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left – .Left

h = .Offset(.Rows.Count, 0).Top – .Top

End With

‘ position picture

With p

Height = h

End With

Set p = Nothing

End Sub

Il s’agit du sous-programme principal qui insère et redimensionne l’image pour l’adapter à la plage donnée. Allons-y.

Dim p As Object, t As Double, l As Double, w As Double, h As Double

Cette ligne n’est qu’une déclaration de variable dont nous aurons besoin. Remarque p En tant que variable objet. Cette variable tiendra notre image.

If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub

Il vérifie si la feuille Actives est une feuille de calcul ou non. Si ce n’est pas le cas, il quittera le code immédiatement et rien ne se passera.

If Dir(PictureFileName) = "" Then Exit Sub

Vérifiez que vous avez fourni une adresse pour l’image pour insérer une photo dans la cellule Excel. Si vous ne l’avez pas fourni, il se terminera immédiatement et rien ne se passera.

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

Maintenant, c’est la ligne la plus importante. Dans cette ligne, nous utilisons la fonction Insertion d’Activesheet. Pictures et placez-le dans l’objet p que nous avons déclaré précédemment. Maintenant, en utilisant p, nous pouvons facilement ajuster la largeur et la longueur de l’image.

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left - .Left

h = .Offset(.Rows.Count, 0).Top - .Top

End With

Ce segment obtient juste la longueur, la largeur, le haut et la gauche de la plage donnée.

With p

.Top = t

.Left = l

.Width = w

Height = h

End With

Cette partie ajuste l’image à la plage donnée. Et c’est fait. Enfin, nous le libérons en le mettant à néant.

Set p = Nothing

Cette ligne libère de la mémoire.

Ce code fonctionnera dans Excel 2016, Excel 2013, Excel 2010 et Excel 2007.

Ici, je voulais insérer l’image dans la plage A1: C10. Pour ce faire, j’ai modifié mon code ci-dessous [width = « 100% », cols = « 100% »,]

Sub TestInsertPictureInRange()InsertPictureInRange « *C:\Users\Manish

Singh\Downloads\biker.jpg », _Range(« A1:C10* »)

End Sub

Et c’est ce que j’ai. Exactement ce que je voulais.

pasted image 0 (1)

Donc voilà. Utilisez ce code pour insérer une image dans la cellule ou la plage Excel. Jouez autour du code. Essayez d’insérer différents formats, des plages étranges et voyez ce qui se passe. Si vous avez des questions ou êtes confronté à un défi, utilisez la section commentaires ci-dessous pour me poser la question.

Télécharger le fichier

`lien: /wp-content-uploads-2013-07-Insert-Pictures-Using-VBA-In-Microsoft-Excel-2016.xls [__ Insérer des images à l’aide de VBA dans Microsoft Excel 2016]

Articles populaires:

link: / formulas-and-functions-introduction-of-vlookup-function [Comment utiliser la fonction RECHERCHEV dans Excel]

link: / tips-countif-in-microsoft-excel [Comment utiliser la fonction COUNTIF dans Excel]

link: / excel-formule-et-fonction-excel-sumif-function [Comment utiliser la fonction SUMIF dans Excel]