Vous pouvez facilement insérer des images dans des feuilles de calcul Excel et les modifier avec du code macro. Voici comment insérer une image dans une cellule à l'aide de VBA dans Excel .
Visual Basic pour Applications, en abrégé VBA, est une forme de Visual Basic 6 intégrée aux programmes Microsoft Office. Grâce au codage, VBA vous permet d'automatiser les tâches dans les applications Office, notamment Excel. Dans certains cas, vous pouvez même ajouter de nouvelles fonctionnalités à Excel à l'aide de VBA.
Même si vous devez travailler avec du code pour utiliser VBA, cela ne signifie pas que VBA regorge de lettres et de chiffres. Avec VBA dans Excel, vous pouvez créer une macro qui vous permet d'insérer une image dans une cellule ou une plage de cellules. Voici ce que vous devez savoir sur l'insertion d'images dans des cellules dans Excel à l'aide de VBA.
Comment insérer des images dans des cellules à l'aide de VBA dans Excel
Pour créer une macro qui insère une image dans une cellule Excel à l'aide de VBA, vous n'avez vraiment pas besoin de connaissances avancées en Visual Basic. Tout ce que vous avez à faire est d'activer les outils de développement, de créer une macro et de coller le code approprié. Bien entendu, vous pouvez également insérer des images dans Excel sans utiliser VBA. Cependant, dans cet article, nous nous concentrerons sur VBA.
1. Activez les outils de développement
Pour utiliser VBA dans Excel, vous devez activer les outils de développement. Cette action activera l'onglet Développeur dans le ruban, qui est désactivé par défaut.
- Ouvrez Excel .
- Allez dans le menu Fichier .
- Cliquez sur Options en bas de l'écran. La fenêtre Options Excel apparaîtra.
- Dans les options Excel, accédez à l' onglet Personnaliser le ruban .
- Dans les onglets principaux , cochez Developer .
Les outils de développement, y compris l'accès VBA, sont désormais activés. Vous n'avez pas besoin de le faire à chaque fois que vous souhaitez utiliser VBA dans Excel. Les outils de développement seront toujours activés jusqu'à ce que vous les désactiviez.
2. Créez des macros et insérez du code
- Dans Excel, accédez à l' onglet Développeur .
- Dans la section Code, sélectionnez Macros .
- Dans la nouvelle fenêtre, entrez le nom de votre macro dans Nom de la macro . L'article utilisera insertPhotoMacro .
- Cliquez sur Créer .
Après avoir cliqué sur Créer, la fenêtre VBA s'ouvrira et affichera le code de votre macro. Actuellement, le code sera composé de 2 lignes : un Sub pour démarrer la macro et un End Sub pour y mettre fin.
Ajoutez un peu de code à cette macro. Ajoutez la ligne de code suivante entre les deux lignes :
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
Le code final ressemblera à ceci :
Vous n'avez pas à vous soucier de sauvegarder ce processus. Toutes les modifications que vous apportez dans VBA sont enregistrées immédiatement.
Il est maintenant temps de voir le code en action :
- Fermez la fenêtre VBA.
- Accédez à l' onglet Développeur dans Excel.
- Sélectionnez Macros dans la section Code.
- Mettez en surbrillance la macro que vous venez de créer.
- Cliquez sur Exécuter .
Maintenant, un message s'ouvrira vous demandant de localiser le fichier image que vous souhaitez insérer. Sélectionnez la photo, puis cliquez sur Ouvrir. Vous verrez maintenant l'image dans la cellule A1.
Notez qu'Excel réduira l'image pour qu'elle tienne dans la cellule A1. Vous pouvez le modifier et modifier le code pour insérer des images dans d'autres cellules, même dans une plage de cellules. Dans la section suivante, nous séparerons le code et expliquerons les paramètres.
3. Diviser le code
Pour que le code VBA fonctionne comme vous le souhaitez, vous devez le comprendre. Ce faisant, vous pouvez modifier le code pour insérer des images dans n'importe quelle cellule, quelle que soit sa taille.
Sub insertPhotoMacro()
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
End Sub
Lorsque le code commence, l'instruction Dim est utilisée pour déterminer le type de variable. Nous avons deux types de variables : photoNameAndPath et photo . D'abord la variable, puis l'image.
À partir de là, la variable photoNameAndPath s'exécute et ouvrira une application pour obtenir l'emplacement du fichier photo. Cela se fait via Application.GetOpenFileName . Le paramètre Titre est facultatif. Le contenu qu'il contient est affiché sous forme de nom de fenêtre.
En utilisant If photoNameAndPath = False Then Exit Sub , si une adresse invalide ou vide est donnée, le processus se terminera. Cependant, si un fichier approprié est fourni, Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath) indique que l'image doit être définie en tant que variable telle que définie à l'origine. Il sera inséré dans la feuille de calcul active.
Enfin, utilisez Avec photo et les 5 lignes qui suivent pour déterminer l'emplacement de la photo. .Left et .Top font référence à la position de départ, tandis que .Width et .Height font référence à la position finale. Si vous avez l'intention d'insérer des images dans une autre cellule ou une plage, ce sont ces lignes que vous devez modifier.
.Placement indique que l'image doit être redimensionnée pour s'adapter à la cellule ou à la forme libre insérée. Le définir sur 1 le redimensionnera en fonction de la cellule.
Enfin, le code ci-dessus utilise End With , puis End Sub pour fermer la macro. Vous pouvez maintenant modifier les variables photoNameAndPath et photo par n'importe quel autre nom de votre choix. N'oubliez pas de garder les noms cohérents dans tout le code.
Ci-dessus, comment utiliser VBA pour insérer des images dans des cellules dans Excel . J'espère que l'article vous sera utile.