image d'une feuille excel sur l'userform

  • Initiateur de la discussion Initiateur de la discussion BOCARAMEL
  • Date de début Date de début

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 !

BOCARAMEL

XLDnaute Occasionnel
Bonjour a tous 🙂
Après de multiple recherche sur les forums sans succès
J’aimerai faire apparaître dans l'userform1 / frame1
L’image de la feuille 1 suite a l'insertion de l'image avec une macro(macro ok)

ci joint le fichier.xls

Merci pour vos réponses

bocaramel
 

Pièces jointes

Dernière édition:
Re : image d'une feuille excel sur l'userform

Bonsoir Fo rum
je connais cette solution mais cela ne correspond pas car sur le fichier original
le classeur excel est caché seul l'userform est visible avec la possibilité de changer
d'image (avec la macro) directement de l'userform
merci de ton aide
 
Re : image d'une feuille excel sur l'userform

Hello tout le monde,

Essaie ce code s'il te va...
Code:
Private Sub CommandButton1_Click()
    
    Dim MaPhoto As Variant
    
    MaPhoto = Application.GetOpenFilename("Fichier images  (*.jpg), *.jpg")

    If MaPhoto = False Then Exit Sub
    
    If Dir(MaPhoto) <> "" Then
        UserForm1.Frame1.Picture = LoadPicture(MaPhoto)
        UserForm1.Show
    Else
        UserForm1.Frame1.Picture = LoadPicture("")
    End If
        
        'Pas réussi à trouver le moyen d'affecter le nom de la photo choisie à la Caption de la Frame !
        'UserForm1.Frame1.Caption = NomFichier
            
End Sub
Cdt, Hulk.
 
Re : image d'une feuille excel sur l'userform

Merci Hulk pour ta réponse 🙂

ton fichier excel ne fonctionne pas chez moi
il me marque
erreur d'execution '13'
incompatibilite de type
et la cellule a2 marque #valeur!

je cherche juste à faire afficher sur l'userform l'image qui se trouve
sur une feuille excel

j'essai ça mais ça ne fonctionne pas
UserForm1.Frame1.LoadPicture = Sheets("feuil1").Shapes("Picture 74")

bocaramel 😀
 
Dernière édition:
Re : image d'une feuille excel sur l'userform

Bonjour BOCARAMEL, Fo_rum, Hulk, le Forum,

Le seul moyen fiable que je connaisse pour arriver à faire ce que tu souhaites est d'utiliser le module PastePicture de l'exellentissime Stephen Bullen : module et fichier exemple que tu trouveras sur Stephen Bullen's Excel Page.

Evidemment, c'est de la grosse artillerie ! 😉

J'avais utilisé cette façon de faire dans un classeur réalisé pour le fun, il y a quelques temps déjà. Fichier que tu trouveras sous ce lien : Ecriture verticale dans un Label.

Cordialement,
 
Re : image d'une feuille excel sur l'userform

Bonsoir MyDearFriend

EDITION: C'est bon, j'ai trouvé l'info qui me manquait

Pour BOCARAMEL:
1) copier le module ModPastePicture de S. Bullen
2) dans le code de l'userform
Code:
Private Sub UserForm_Initialize()
Feuil1.Shapes("Image 1").CopyPicture xlScreen, xlPicture
Set Image1.Picture = PastePicture(xlPicture)
End Sub



MyDearFriend
Justement j'essaie en vain de modifier l'exemple de Stephen Bullen que tu cites
http://www.oaltd.co.uk/Spreads/PastePicture.zip
(qui affiche un graphique dans l'userform)
pour afficher une image stockée sur la la feuille 1

Set oCht = Sheet1.Pictures("Image 1")
Set oCht = Sheet1.Shapes("Image 1")
ne fonctionne pas Une idée, svp ?
 
Dernière édition:
Re : image d'une feuille excel sur l'userform

Re,

Bonsoir vbacrumble,

J'avais dans l'idée de laisser l'ami BOCARAMEL travailler un peu... mais bon, tu trouvera ci-joint son exemple adapté.

Le module de code de Stephen Bullen est très simple à utiliser. Une fois inséré tel quel dans le classeur, j'ai simplement rajouté le code suivant dans le Userform :
Code:
    ActiveWorkbook.Sheets("Feuil1").Shapes("Cible").CopyPicture xlScreen, xlPicture
    [COLOR=NAVY]Set[/COLOR] Image1.Picture = PastePicture(xlPicture)
Cordialement,

EDITION :
Arf, je n'avais pas vu ton édition de post... 🙂
 

Pièces jointes

Re : image d'une feuille excel sur l'userform

Bonsoir,
En passant par un graphique intermédiaire
Code:
Private Sub UserForm_Initialize()
Fichtemp = ActiveWorkbook.Path & "\ImgTemp.jpg"
Application.ScreenUpdating = False
With Sheets(1)
    Charts.Add
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
    .Shapes("Cible").Copy
    x = .Shapes("Cible").Width
    y = .Shapes("Cible").Height
    With .ChartObjects(1)
        .Chart.Paste
        .Width = x
        .Height = y
        .Border.LineStyle = 0
        .Chart.Export Fichtemp, "jpg"
        .Delete
    End With
End With
Application.ScreenUpdating = True
Image1.Picture = LoadPicture(Fichtemp)
Kill Fichtemp

End Sub
A+
kjin
 

Pièces jointes

Dernière édition:
Re : image d'une feuille excel sur l'userform

Bonsoir tous


Bah comme j'ai fait moi aussi un exemple pour bocaramel, je le poste aussi 😉


EDITION:
Par contre la qualité de l'image affichée dans l'userform est dégradée

Il y a pas moyen d'arranger cela ?
 

Pièces jointes

Re : image d'une feuille excel sur l'userform

Vraiment merci a tout le monde pour votre participation 🙂
Merci a Vbacrumble et Mydearfriend! pour la solution simple a mon problème

je redonne la solution
ActiveWorkbook.Sheets("Feuil1").Shapes("Cible").CopyPicture xlScreen, xlPicture
Set Image1.Picture = PastePicture(xlPicture)

Encore merci....😀
 
Re : image d'une feuille excel sur l'userform

Bonjour je viens de mettre ce code suivant :

ActiveWorkbook.Sheets("Feuil1").Shapes("Graphique 1").CopyPicture xlScreen, xlPicture
Set Image1.Picture = PastePicture(xlPicture)

Je veux effectivement réalisé la copie d'un graphique mais quand je clique sur le commandbutton où il y a ce code sa m'affiche un message d'erreur en me disant fonction ou sub non défini, je ne sais plus quoi faire ...

Merci d'avance
 
Re : image d'une feuille excel sur l'userform

Bonjour BOCARAMEL,

voici ce que j'utilise pour copier un epage excel sur une image d'un userform, à adapté si cela peux t'interesser:

Dim FicTmp As String,
Application.DisplayAlerts = False


On Error Resume Next
Workbooks("ton fichier".xls").Activate
If Err <> 0 Then
On Error GoTo 0

Dim fso As Object, x As Boolean
Set fso = CreateObject("Scripting.FileSystemObject")
x = fso.FileExists(chemin + ton fichier ".xls")
If x = False Then
MsgBox "Le dossier est absent de la base de données", vbCritical, "Avertissement"
Exit Sub
Else
If x = True Then
Workbooks.Open (chemin + ton fichier ".xls")
End If
End If
End If

FicTmp = Space(160)
GetTempFileNameA Environ("TMP"), "", 0, FicTmp
FicTmp = Left$(FicTmp, InStr(FicTmp, vbNullChar) - 1)
Worksheets("ta feuille").Range("A1😛73").CopyPicture
OpenClipboard 0
DeleteEnhMetaFile CopyEnhMetaFileA(GetClipboardData(14), FicTmp)
CloseClipboard
With "ton userform"
.Image1.Picture = LoadPicture(FicTmp)
Kill FicTmp
End With

en rouge ce que tu dois adapté, une solution de plus, en espérant avoir répondu a tes attentes

@+
 
Re : image d'une feuille excel sur l'userform

Merci mais j'aimerai comprendre mon erreur avant car quand j'éxecute j'ai une erreur 424 objet requis et je ne sais pas pourquoi sa me met sa je peux te joindre mon fichier si tu veux pour que tu comprennes
 
- 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

Réponses
3
Affichages
205
Réponses
2
Affichages
624
Retour