Excel Forum Per condividere esperienze su Microsoft Excel

Esportare una selezione in jpg utilizzando VBA (ma non paint o simili) - come si fa?

  • Messaggi
  • OFFLINE
    pilupilu
    Post: 233
    Registrato il: 07/12/2006
    Città: ROMA
    Età: 45
    Utente Junior
    2013
    00 29/08/2017 01:27
    Ciao a tutti,
    volevo creare una macro per fare in modo da salvare un intervallo di celle in una immagine da mettere in un percorso sul pc, ad esempio "C:\immagine.jpg".

    Qualcuno ha del codice che posso utilizzare, in rete trovo un po' di cose ma niente di valido
  • OFFLINE
    dodo47
    Post: 1.581
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 29/08/2017 09:26
    Ciao
    questo codice crea un "foglio grafico" chiamato mGraf, vi incolla il range indicato in oRange, salva in c:\miefoto\MyPic.jpg, per poi cancellare il suddetto foglio.

    Saluti
    Sub mImage()
    Dim wsSheet As Worksheet, oRange As Range, oCht As Chart, oImg As Picture
    Application.ScreenUpdating = False
    On Error Resume Next
    Sheets("mGraf").Select
    If ActiveSheet.Name = "mGraf" Then
        Application.DisplayAlerts = False
        ActiveWindow.SelectedSheets.Delete
        Application.DisplayAlerts = True
    End If
    Set oRange = Range("A1:E30") '<<<< VARIARE
    Set oCht = Charts.Add
    oCht.Name = "mGraf"
    oRange.CopyPicture xlScreen, xlPicture
    oCht.Paste
    filepath = "c:\miefoto\" '<<<< VARIARE
    oCht.Export Filename:=filepath & "MyPic.jpg", FilterName:="jpg" '<<<< VARIARE NOME
    Application.DisplayAlerts = False
    ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    End Sub
    [Modificato da dodo47 29/08/2017 09:27]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    pilupilu
    Post: 234
    Registrato il: 07/12/2006
    Città: ROMA
    Età: 45
    Utente Junior
    2013
    00 29/08/2017 11:45
    Mi si blocca alla linea di export, ed ho messo l'indirizzo dove esportare correttamente.

    Non sono sicuro sia compatibile con Excel 2013, sto cercando qualcosa su Internet e sembra che funzioni solo con Excel 2016 il tuo metodo
  • OFFLINE
    dodo47
    Post: 1.582
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 29/08/2017 11:59
    Ciao
    non saprei, io ho excel 2010 e excel 2003, testato su entrambi non mi da problemi.

    Prova a descrivere l'errore ricevuto, ma...non saprei cos'altro fare.
    Segui in debug intanto per vedere se prima di quella istruzione ti trovi nel foglio grafico il range selezionato copiato, poi leggi nel tuo help le indicazioni sul metodo export.

    saluti
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    patel45
    Post: 3.937
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 29/08/2017 12:29
    io preferisco questa
    Sub CopyRangeToJPG()
    Dim rng As Range, Cht As ChartObject
    strPath = "D:\DATI\prova\"
    Set rng = Range("A1:G7")
    rng.CopyPicture xlScreen, xlPicture
    Set Cht = ActiveSheet.ChartObjects.Add(0, 0, rng.Width, rng.Height)
    Cht.Chart.Paste
    Cht.Chart.Export strPath & "myfile.jpg"
    Cht.Delete
    Set Cht = Nothing
    Set rng = Nothing
    End Sub

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    pilupilu
    Post: 235
    Registrato il: 07/12/2006
    Città: ROMA
    Età: 45
    Utente Junior
    2013
    00 29/08/2017 18:58
    Grazie,
    ora funziona tutto :)

    Ho utilizzato il codice di patel45