faretesto > microsoft.* > microsoft.office.excel

Marco Porzio (17.09.2019, 11:54)
Ciao,
ho la necessitÓ di salvare una selezione di excel contenente sia dati che grafico, in formato immagine jpg.

ho utilizzato questo codice che per˛ non salva nulla a meno che metta il codice in debug. Se sono in debug e premo F5 scorrendo tutto il codice funziona, se invece premo il pulsante ed eseguo la macro senza interruzioni mi genera un'immagine vuota!
di seguito il codice:

Sub SalvaImg2()
Dim rng As Range, Cht As ChartObject
Set rng = Range("A70:F95")
rng.CopyPicture xlScreen, xlPicture
Set Cht = ActiveSheet.ChartObjects.Add(0, 0, rng.Width, rng.Height)
Cht.Chart.Paste
Cht.Chart.Export "C:\CSV\Foto.jpg"
Cht.Delete
Set Cht = Nothing
Set rng = Nothing
End Sub
Norman Jones (17.09.2019, 12:29)
Ciao Marco,

On 17/09/2019 10:54, Marco Porzio wrote:
[..]
> Set Cht = Nothing
> Set rng = Nothing
> End Sub


Per specificare correttamente il foglio di interesse, prova a modificare
il codice come segue:
'=========>>
Public Sub SalvaImg2()
Dim WB As Workbook
Dim SH As Worksheet
Dim rng As Range, Cht As ChartObject

Const sFoglio As String = "Sheet1" '<<== Modifica

Set WB = ThisWorkbook
Set SH = WB.Sheets(sFoglio)

Set rng = SH.Range("A70:F95")

rng.CopyPicture xlScreen, xlPicture

Set Cht = ActiveSheet.ChartObjects.Add(0, 0, rng.Width, rng.Height)

With Cht
.Chart.Paste
.Chart.Export "Foto.jpg"
.Delete
End With

Set Cht = Nothing
Set rng = Nothing
End Sub
'<<=========

===
Regards,
Norman
Marco Porzio (17.09.2019, 12:34)
Il giorno martedý 17 settembre 2019 12:30:06 UTC+2, Norman Jones ha scritto:
[..]
> ===
> Regards,
> Norman


Mi esporta un file vuoto... Nel frattempo ho trovato ed adattato questo codice e funziona:

Sub SalvaImg3()
Dim oWs As Worksheet
Dim oRng As Range
Dim oChrtO As ChartObject
Dim lWidth As Long, lHeight As Long

Set oWs = ActiveSheet
Set oRng = oWs.Range("A70:F95")

oRng.CopyPicture xlScreen, xlPicture
lWidth = oRng.Width
lHeight = oRng.Height

Set oChrtO = oWs.ChartObjects.Add(Left:=0, Top:=0, Width:=lWidth, Height:=lHeight)

oChrtO.Activate
With oChrtO.Chart
.Paste
.Export Filename:="C:\CSV\" & ActiveSheet.Range("B4").Value & "_" & ActiveSheet.Range("B64").Value & ".jpg" ', Filtername:="JPG"
End With

oChrtO.Delete
End Sub
Marco Porzio (17.09.2019, 12:36)
Il giorno martedý 17 settembre 2019 12:30:06 UTC+2, Norman Jones ha scritto:
[..]
> ===
> Regards,
> Norman


Esporta un file vuoto! nel frattempo ho trovato ed adattato questo codice efunziona:

Sub SalvaImg3()
Dim oWs As Worksheet
Dim oRng As Range
Dim oChrtO As ChartObject
Dim lWidth As Long, lHeight As Long

Set oWs = ActiveSheet
Set oRng = oWs.Range("A70:F95")

oRng.CopyPicture xlScreen, xlPicture
lWidth = oRng.Width
lHeight = oRng.Height

Set oChrtO = oWs.ChartObjects.Add(Left:=0, Top:=0, Width:=lWidth, Height:=lHeight)

oChrtO.Activate
With oChrtO.Chart
.Paste
.Export Filename:="C:\CSV\" & ActiveSheet.Range("B4").Value & "_" & ActiveSheet.Range("B64").Value & ".jpg" ', Filtername:="JPG"
End With

oChrtO.Delete
End Sub

Grazie
Marco
Marco Porzio (17.09.2019, 12:36)
Il giorno martedý 17 settembre 2019 12:30:06 UTC+2, Norman Jones ha scritto:
[..]
> ===
> Regards,
> Norman


Non funziona, mi esporta un file vuoto!
Nel frattempo ho trovato e adattato questo codice:

Sub SalvaImg3()
Dim oWs As Worksheet
Dim oRng As Range
Dim oChrtO As ChartObject
Dim lWidth As Long, lHeight As Long

Set oWs = ActiveSheet
Set oRng = oWs.Range("A70:F95")

oRng.CopyPicture xlScreen, xlPicture
lWidth = oRng.Width
lHeight = oRng.Height

Set oChrtO = oWs.ChartObjects.Add(Left:=0, Top:=0, Width:=lWidth, Height:=lHeight)

oChrtO.Activate
With oChrtO.Chart
.Paste
.Export Filename:="C:\CSV\" & ActiveSheet.Range("B4").Value & "_" & ActiveSheet.Range("B64").Value & ".jpg" ', Filtername:="JPG"
End With

oChrtO.Delete
End Sub
grazie
Marco
Norman Jones (17.09.2019, 12:38)
On 17/09/2019 11:29, Norman Jones wrote:
Il codice
[...]
>     With Cht
>         .Chart.Paste
>         .Chart.Export "Foto.jpg"
>         .Delete
>     End With [ ...]


avrebbe dovuto essere:
With Cht
.Chart.Paste
.Chart.Export "C:\CSV\Foto.jpg"
.Delete
End With

===
Regards,
Norman
Bruno Campanini (06.10.2019, 19:06)
Norman Jones wrote:
> Ciao Marco,
> On 17/09/2019 10:54, Marco Porzio wrote:


Una curiositÓ completamente OT: Porzio Ŕ il tuo vero cognome?

Bruno
Marco Porzio (07.10.2019, 10:20)
Il giorno domenica 6 ottobre 2019 19:06:11 UTC+2, Bruno Campanini ha scritto:
> Norman Jones wrote:
> Una curiositÓ completamente OT: Porzio Ŕ il tuo vero cognome?
> Bruno


Ciao,
Porzio Ŕ il mio vero cognome, perche?
Bruno Campanini (07.10.2019, 11:01)
Marco Porzio formulated on Monday :

> Ciao,
> Porzio Ŕ il mio vero cognome, perche?


Semplice curiositÓ.
Qualche lustro fa ho avuto uno studente che aveva Porcio
per cognome e Marco per nome.

Il riferiemto a Marcus Porcius Cato (Marco Porcio Catone,
Catone l'Uticense per intenderci) fu per me immediato
ma quando espressi il mio compiacimento mi fu risposto
che quel cognome proprio non andava gi¨ nÚ a lui nÚ alla
sua famiglia.
Tant'Ŕ che il genitore aveva inoltrato richiesta di mutazione
del cognome in Porzio ma, passati tanti anni che erano,
il risultato sperato non era ancora stato ottenuto.

Tutto qui, grazie.
Bruno
Marco Porzio (07.10.2019, 11:09)
Il giorno lunedý 7 ottobre 2019 11:02:00 UTC+2, Bruno Campanini ha scritto:
[..]
> il risultato sperato non era ancora stato ottenuto.
> Tutto qui, grazie.
> Bruno


Felice di aver soddisfatto la tua curiositÓ...
il mio cognome Ŕ questo da molte generazioni, magari deriva da Porcio Catone ma fare un albero genealogico che va cosý tanto indietro temo che costi un patrimonio! Non mi dispiacerebbe farlo ma oltre al costo temo serva molto tempo e impegno per cui lascio stare
Claudia Zaia (21.10.2019, 14:42)
OFFERTA DI PRESTITO
Per tutto il suo fabbisogno di prestiti, o per finanziare progetti, immobili o acquisto di auto
contatti: zaiaclaudia9
whartsApp: +33601256710
Discussioni simili