Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Image dans un classeur

2 réponses
Avatar
Kam
Bonjour,

J'essaie d'insérer une image dans un classeur qui pourra être utilisé à
plusieurs endroit sur un classeur.

En fait en cliquant sur un bouton, j'aurais la fenêtre pour insérer une
image qui m'apparaîtrait et je pourrais ensuite choisir l'image voulue.

Une fois l'image choisie, celle-ci se rapporte à différents endroits dans le
classeur sur des feuilles différentes.

J'essaie d'intégrer cela en VBA.

Quelqu'un peut m'aider ?

Merci d'avance

Kam.

2 réponses

Avatar
michdenis
à coller dans un module standard :

'--------------------------------------
Sub Insérer_Image()

Dim S(), LesFiltres As String
Dim Title As String
Dim x As Integer, FilterIndex As Integer
Dim Filename As String

'Définit les types de fichier (différentes extensions
'que tu peux modifier pour ceux que tu désires...
LesFiltres = "Excel Files (*.Bmp),*.Bmp," & _
"Text Files (*.JPG),*.JPG," & _
"All Files (*.*),*.*"

'Filtre par défaut *.Bmp -> Fichier .BMP
FilterIndex = 1

'Titre de la boîte de dialogue
Title = "Sélectionner l'image à insérer..."

'Pour sélectionner le lecteur
CurDir "c:"
'Pour sélectionner le répertoire à l'ouverture
ChDir "c:ExcelToday"

Filename = Application.GetOpenFilename(FileFilter:=LesFiltres, _
FilterIndex:=FilterIndex, Title:=Title, MultiSelect:úlse)

If TypeName(Filename) = "Boolean" Then
Exit Sub
Else
Application.ScreenUpdating = False
'inséerImage nomdelaFeuille, 'Étendue, chemin & nom Image
'Tu peux répéter la ligne de code pour toute les destination
'que tu désires.
InsérerImage "Feuil2", Range("b5:D6"), Filename
InsérerImage "Feuil1", Range("g25:H26"), Filename
End If

End Sub
'--------------------------------------
Sub InsérerImage(Feuille As String, Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left
.Top = Rg.Top
'Largeur de l'image
Image.Width = Largeur
'Hauteur de l'image
Image.Height = Hauteur
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlFreeFloating 'or xlmove or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'--------------------------------------




"Kam" a écrit dans le message de news:
wvOnk.886$
Bonjour,

J'essaie d'insérer une image dans un classeur qui pourra être utilisé à
plusieurs endroit sur un classeur.

En fait en cliquant sur un bouton, j'aurais la fenêtre pour insérer une
image qui m'apparaîtrait et je pourrais ensuite choisir l'image voulue.

Une fois l'image choisie, celle-ci se rapporte à différents endroits dans le
classeur sur des feuilles différentes.

J'essaie d'intégrer cela en VBA.

Quelqu'un peut m'aider ?

Merci d'avance

Kam.
Avatar
laurent.daures
Bonjour
regarde ce fichier clique sur les images.
en résumé la description de ce que j'ai fait .
lire une image dans un répertoire donné
est moins lourd que d'en insérer une dans le fichier Excel.
dans chaque feuille
dessine à partir de la boîte d'outils CONTROLE une IMAGE et dépose là dans
chaque feuille.
Cette image sera appelée Image1 dans chaque feuille.
Puis, colle cette macro dans un module, et attache cette macro au bouton.

'******************
Sub image()
chemin = Application.GetOpenFilename("Text Files (*.jpg), *.jpg")
'ruse qui inverse le nom du fichier pour trouver le premier "" à partir de
la fin
chemin = Left(chemin, Len(chemin) - InStr(1, StrReverse(chemin)) + 1)
On Error Resume Next
Image1.PictureSizeMode = 1
Image1.Picture = LoadPicture(chemin)
Sheets(1).Image1.PictureSizeMode = 1
Sheets(2).Image1.PictureSizeMode = 1
Sheets(3).Image1.PictureSizeMode = 1
Sheets(4).Image1.PictureSizeMode = 1
Sheets(1).Image1.Picture = LoadPicture(chemin)
Sheets(2).Image1.Picture = LoadPicture(chemin)
Sheets(3).Image1.Picture = LoadPicture(chemin)
Sheets(4).Image1.Picture = LoadPicture(chemin)
End Sub
'*****************
(PictureSizeMode permet d'avoir l'image en entier )

Amicalement
Siesting Hoax

"Kam" a écrit dans le message de news:
wvOnk.886$
Bonjour,

J'essaie d'insérer une image dans un classeur qui pourra être utilisé à
plusieurs endroit sur un classeur.

En fait en cliquant sur un bouton, j'aurais la fenêtre pour insérer une
image qui m'apparaîtrait et je pourrais ensuite choisir l'image voulue.

Une fois l'image choisie, celle-ci se rapporte à différents endroits dans
le classeur sur des feuilles différentes.

J'essaie d'intégrer cela en VBA.

Quelqu'un peut m'aider ?

Merci d'avance

Kam.