XL 2010 VBA - Copier une image

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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 =...
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: 20
  • Test (1).xlsm
    Test (1).xlsm
    29.3 KB · Affichages: 10
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour