Inserer une image dans un userform

Bonjour à tous,

Voila j'ai un petit souci avec mon code, je souhaiterais charger une image dans mon userform, jusque là pas de souci mais je n'arrive pas à la rediriger dans ma feuille à la cellule C7 de ma page active. Il me met le message d'erreur suivant : Impossible de lire la propriété insert de la classe Picture

Voici mon code :

Bouton Command

Private Sub CommandButton4_Click()
Dim Fichier As String
Dim ThePath As String

    ThePath = "C:\Mes Documents\"
    Fichier = Application.GetOpenFilename("image(*.jpg),*.jpg")
    'Vérifie si le fichier existe.
    If Dir(Fichier) <> "" Then
        'si le fichier existe, il est chargé pour visualisation.
        Image2.Picture = LoadPicture(Fichier)
        Else
        'Sinon, affiche aucune image.
        Image2.Picture = LoadPicture("")
        With Me.Image2
        .PictureSizeMode = fmPictureSizeModeZoom
        End With
    End If
End Sub

Bouton Command1

Private Sub CommandButton1_Click()
ActiveSheet.Pictures.Insert(Image2.Tag).Select
         Selection.Top = Range("C7").Top
         Selection.Left = Range("C7").Left
         Selection.ShapeRange.ScaleWidth 0.6, msoFalse, msoScaleFromTopLeft
         Selection.ShapeRange.ScaleHeight 0.85, msoFalse, msoScaleFromTopLeft
End sub

Merci à tous

Des idées ?

Merci a vous

bonjour,

mets le chemin devant le nom de fichier

comme ceci

LoadPicture(thepath & Fichier)

J'ai essayé mais ca ne fonctionne pas.

Bonjour,

désolé, j'ai lu trop vite.

essaie un repaint après le chargement de l'image, utilise le nom du fichier dans l'instruction insert

dans l'USF

Private Sub Image1_Click()
fichier = Application.GetOpenFilename("image(*.jpg),*.jpg")
Me.Image1.Picture = LoadPicture(fichier)
Me.Image1.PictureSizeMode = fmPictureSizeModeZoom
Me.Repaint
End Sub

Private Sub UserForm_Click()

ActiveSheet.Pictures.Insert(fichier).Select
         Selection.Top = Range("C7").Top
         Selection.Left = Range("C7").Left
         Selection.ShapeRange.ScaleWidth 0.6, msoFalse, msoScaleFromTopLeft
         Selection.ShapeRange.ScaleHeight 0.85, msoFalse, msoScaleFromTopLeft
End Sub

dans un module standard

Global fichier
Sub aargh()
UserForm1.Show
End Sub

Idem...

Je t'ai envoyé en MP le fichier car un peu complexe à faire comme ca.

Dit moi ce que tu en pense ?

Merci encore pour l'aide

Fichier renvoyé. Fait moi signe si ca marche. Merci

Bonjour,

comme demandé via MP,

pour charger l'image dans l'espace occupé par les cellules C7 à H12, à tester. pour éviter d'avoir des images qui s'empilent ajouter un delete

'Image 1
   for each pict in activesheet.shapes
        If pict.Type = msoPicture Then
            pict.Delete
        End If
    Next 

    If fichier1 <> "" Then
        ActiveSheet.Pictures.Insert(fichier1).Select
        Selection.Top = Range("C7").Top
        Selection.Left = Range("C7").Left
        Selection.Width Range("H12").Left + Range("H12").Width - Selection.Left
        Selection.Height Range("H12").Top + Range("H12").Height - Selection.Top
    End If

Salutt !!

Merci beaucoup pour ton aide, je testerais ca demain et te ferais un petit retour.

Encore un grand MERCI !

Bon match .

A demain

Bonjour h2so4,

J'ai testé ta solution pour le redimensionnement des images mais en vain...

'Image 1
   for each pict in activesheet.shapes
        If pict.Type = msoPicture Then
            pict.Delete
        End If
    Next 

    If fichier1 <> "" Then
        ActiveSheet.Pictures.Insert(fichier1).Select
        Selection.Top = Range("C7").Top
        Selection.Left = Range("C7").Left
Selection.Width Range("H12").Left + Range("H12").Width - Selection.Left
        Selection.Height Range("H12").Top + Range("H12").Height - Selection.Top
    End If

Il me dit Erreur d'exécution 1004. La méthode Width de la classe picture à échoué.

Il y a t'il une autre solution ?

Merci d'avance

bonjour,

il manque un signe = dans les instructions, désolé

Selection.Width Range("H12").Left + Range("H12").Width - Selection.Left
        Selection.Height Range("H12").Top + Range("H12").Height - Selection.Top

à remplacer par

Selection.Width=Range("H12").Left + Range("H12").Width - Selection.Left
        Selection.Height=Range("H12").Top + Range("H12").Height - Selection.Top
Rechercher des sujets similaires à "inserer image userform"