Microsoft 365 Excel exporter en Image JPG

juju91

XLDnaute Nouveau
Bonjour à tous,

Désolé, j'ai encore besoin de votre d'aide.

Voila, j'ai une petit macro qui crée une image depuis une zone texte et une image qui sont dans une feuille.
Maintenant nom problème est que je souhaiterais que cette image soit exporter dans le classeur actif en portante nom de la cellule "K2" sachant que je doit pouvoir modifier plusieurs fois les données qui sont dans la cellule "K2" pour créer plusieurs images.

Cela fait un petit moment que je chercher la solution sans la trouver.

J'avais penser utiliser la fonction :
ThisWorkbook.Path & "\" & NomImage & ".jpg"
mais cela ne fonction pas.

Auriez-vous des suggestions à me faire.
par avance merci

P J
 

Pièces jointes

  • POUR ECRAN V2.xlsm
    182.8 KB · Affichages: 4

juju91

XLDnaute Nouveau
bonjour et Merci
C'est parfait.
Je vais encore une demande , désolé.
est il possible d'augmenter les proportions de l'image?
En faite l'image actuel est trop petite quand je l'affiche sur des écrans de présentation.
Auriez vous une suggestion pour que l'image puisse faire 2331Pixels en Horizontal et 1335 pixels en vertical
j'en demande beaucoup désolé .
Encore merci de votre aide.
 

patricktoulon

XLDnaute Barbatruc
Bonjour
c'est pas le même ratio que l'image elle va être déformée
en plus même si je le met à 2335 x1335 avec le chart on ne va pas jusque là il limite a un peu moins
donc on fait le max
VB:
Function CopyOBJECTInImageJPG(ObjecOrRange, _
                              Optional cheminx As String = "", _
                              Optional DoNotKeepFile As Boolean) As String
    Dim Graph As Object
    If cheminx = "" Then cheminx = ThisWorkbook.Path & "\imagetemp.jpg"
     With CreateObject("htmlfile").parentwindow.clipboardData.clearData("Text"): End With    'on vide le clipboard entre chaque copie pour tester vraiment le available
    ObjecOrRange.CopyPicture
    Set Graph = ObjecOrRange.Parent.ChartObjects.Add(0, 0, 2335, 1335).Chart
    ActiveSheet.Shapes(Graph.Parent.Name).Line.Visible = msoFalse
    With Graph.Parent
        .Width = 2335: .Height = 1135: .Left = ObjecOrRange.Width + 20:
        .Select
        Do: DoEvents
            .Chart.Paste
        Loop While .Chart.Pictures.Count = 0
               
        .Chart.Pictures(1).Width = .Width
        .Chart.Pictures(1).Height = .Height
                     
        '************************************************************
        .Chart.Export cheminx, "jpg"
    End With
    Graph.Parent.Delete
    CopyOBJECTInImageJPG = cheminx
    If DoNotKeepFile Then Application.OnTime Now, "supperessionF2"
End Function
 

Discussions similaires

Statistiques des forums

Discussions
312 247
Messages
2 086 590
Membres
103 247
dernier inscrit
bottxok