XL 2010 VBA - Copier une image

Titi456

XLDnaute Junior
Bonjour,

J'ai un code qui fonctionne très bien pour pouvoir insérer une image dans le fichier ci-joint (cliquer avec le bouton gauche dans G5:K30) cependant après l'avoir insérée, je souhaiterais pouvoir la copier en cliquant sur le bouton de droite de ma souris.

Pouvez-vous m'aider?

Meilleures salutations,

Thierry
 

Pièces jointes

  • Test.xlsm
    24.3 KB · Affichages: 8
Solution
Bonsoir à tous,

Chez moi sur Win 11 Excel 2019 il faut différer l'exécution du Copier avec Application.OnTime :
VB:
Private Sub Image1_Click()
' Routing pour insérer image dans un contrôle de formulaire ActiveX
Dim Pict
Dim ImgFileFormat As String
Dim Ans As Integer

ImgFileFormat = "Image Files (*.jpg; *.jpeg; *.png; *.bmp; *.gif; *.tif; *.tiff; *.pdf ), *.jpg; *.jpeg; *.png; *.bmp; *.gif; *.tif; *.tiff; *.pdf"

Pict = Application.GetOpenFilename(ImgFileFormat)
If Pict = False Then    'Aucune image sélectionnée
    Pict = ""
    [A2].MergeArea.Copy [A2] 'vide le presse-papier
Else
    Image1.PictureSizeMode = fmPictureSizeModeZoom
    Application.OnTime 1, Me.CodeName & ".Copier" 'exécution différée
End If
    
Image1.Picture =...

job75

XLDnaute Barbatruc
Bonsoir à tous,

Chez moi sur Win 11 Excel 2019 il faut différer l'exécution du Copier avec Application.OnTime :
VB:
Private Sub Image1_Click()
' Routing pour insérer image dans un contrôle de formulaire ActiveX
Dim Pict
Dim ImgFileFormat As String
Dim Ans As Integer

ImgFileFormat = "Image Files (*.jpg; *.jpeg; *.png; *.bmp; *.gif; *.tif; *.tiff; *.pdf ), *.jpg; *.jpeg; *.png; *.bmp; *.gif; *.tif; *.tiff; *.pdf"

Pict = Application.GetOpenFilename(ImgFileFormat)
If Pict = False Then    'Aucune image sélectionnée
    Pict = ""
    [A2].MergeArea.Copy [A2] 'vide le presse-papier
Else
    Image1.PictureSizeMode = fmPictureSizeModeZoom
    Application.OnTime 1, Me.CodeName & ".Copier" 'exécution différée
End If
    
Image1.Picture = LoadPicture(Pict)
Application.ScreenUpdating = True 'rafraîchit l'écran

End Sub

Sub Copier()
[G5:K30].CopyPicture xlScreen, xlBitmap  ' Copie l'image dans le presse papier
End Sub
Nota : les fichiers .pdf ne peuvent pas être utilisés.

Bonne nuit.
 

Pièces jointes

  • th.jpg
    th.jpg
    22.7 KB · Affichages: 19
  • Test (1).xlsm
    29.3 KB · Affichages: 10

Titi456

XLDnaute Junior
Bonjour Franch55, Sylvanu et Job75,

Merci beaucoup pour vos proposition. @job75 c'est exactement ce que je souhaitais. @Franch75 Ce code me permet de copier l'image dans un autre document.

VB:
Private Sub Image1_Click()
' Routing pour insérer image dans un contrôle de formulaire ActiveX
Dim Pict
Dim ImgFileFormat As String
Dim Ans As Integer

ImgFileFormat = "Image Files (*.jpg; *.jpeg; *.png; *.bmp; *.gif; *.tif; *.tiff; *.pdf ), *.jpg; *.jpeg; *.png; *.bmp; *.gif; *.tif; *.tiff; *.pdf"

Pict = Application.GetOpenFilename(ImgFileFormat)
If Pict = False Then    'Aucune image sélectionnée
    Pict = ""
    [A2].MergeArea.Copy [A2] 'vide le presse-papier
Else
    Image1.PictureSizeMode = fmPictureSizeModeZoom
    Application.OnTime 1, Me.CodeName & ".Copier" 'exécution différée
End If
    
Image1.Picture = LoadPicture(Pict)
Application.ScreenUpdating = True 'rafraîchit l'écran

End Sub

Sub Copier()
[G5:K30].CopyPicture xlScreen, xlBitmap  ' Copie l'image dans le presse papier
End Sub

Bonne journée à vous et encore merci.

Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 213
Messages
2 086 302
Membres
103 174
dernier inscrit
OBUTT