Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Range da salvare in PDF

Ultimo Aggiornamento: 28/06/2018 08:58
Post: 1
Registrato il: 22/06/2018
Città: BELLAGIO
Età: 31
Utente Junior
2016
OFFLINE
25/06/2018 15:27

Macro - Range da salvare in PDF
Ciao :D

Mi è stato dato un file Excel con dentro la seguente Macro che fa questo:

- grazie al ciclo For prende il valore della celle "Bi" del foglio Elenco Aziende e lo inserisce nella cella "C8" del foglio Tabelle Dati (questo lo fa perché in base al valore di questa cella mi si modificano i dati dei grafici);

- seleziona il range "A1:R225" del foglio Report, dove si trovano i grafici, e lo salva in PDF;

Ha un problema però, la macro non salva solo la selezione ma l'intero foglio!!!
Potete aiutarmi?
Grazie a tutti

Sub SalvaPDFReport()
    Dim ws As Worksheet
    Dim strIndirizzo As String
    Dim myFile As Variant
    Dim strFile As String
    Dim nome As String
    Dim i As Integer
    
    On Error GoTo errHandler
     
    Set ws = ActiveSheet
     
 For i = 3 To 5 Step 1
    ' La i varia da 3 a 542, per il momento non metto i valori
    ' giusti per evitare di far girare tutto il ciclo
    
    Worksheets("Tabelle dati").Range("C8") = Worksheets("Elenco Aziende").Range("B" & i)
     
    Worksheets("Report").Activate
            
     ' seleziono l'area
   Range("A1:R225").Select

    Worksheets("Tabelle dati").Select
    nome = Range("C1").Value & " " & "-" & " " & Range("C8").Value
         
    Worksheets("Report").Activate
    Range("A1:R225").Select
     
     
    'apre la finestra di dialogo per il salvataggio dei file
    'la cartella di default è la stessa della cartella di excel
    strFile = Replace(nome, " ", " ") _
           '  & "_" _
           ' & Format(Now(), "yyyy-mm-dd_hh-mm") _
            & ".pdf"
   ' strFile = ThisWorkbook.Path & "" & strFile
     
    myFile = Application.GetSaveAsFilename _
            (InitialFileName:=strFile, _
              FileFilter:="PDF Files (*.pdf), *.pdf", _
              Title:="Seleziona la cartella e inserisci il nome del file da salvare")
     
    If myFile <> False Then
            ws.ExportAsFixedFormat _
              Type:=xlTypePDF, _
              Filename:=myFile, _
              Quality:=xlQualityStandard, _
              IncludeDocProperties:=True, _
              IgnorePrintAreas:=True, _
              OpenAfterPublish:=False
     
    End If
Next i
exitHandler:
            Exit Sub
errHandler:
            MsgBox "Non ho potuto salvare il file PDF"
    Resume exitHandler
    
End Sub
[Modificato da Galli93 25/06/2018 17:01]
Post: 699
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
25/06/2018 17:46

E' un comportamento tipico; se vuoi gestire solo una parte del foglio devi sfruttare "Area di stampa".
In luogo della riga:
Range("A1:R225").Select

metti:
ActiveSheet.PageSetup.PrintArea = "$A$1:$R$225"

e nella riga relativa all' ExportAsFixedFormat tra i parametri in luogo di:
IgnorePrintAreas:=True

devi indicare:
IgnorePrintAreas:=False

Poi eventualmente devi implementare la cancellazione dell'area se non più necessaria ma dato che hai un range fisso da gestire …
Attenzione, vedi che:
Worksheets("Report").Activate
Range("A1:R225").Select
è inutilmente riportato due volete nella tua macro.

[Modificato da rollis13 25/06/2018 17:49]

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 1
Registrato il: 22/06/2018
Città: BELLAGIO
Età: 31
Utente Junior
2016
OFFLINE
28/06/2018 08:58

Grazie mille ma sono riuscito in un modo simile!
Adesso però avrei un'altra domanda ma non so se creare una nuova discussione o provarci qua.

In sostanza, ho inserito il percorso di salvataggio e quindi vorrei evitare quando si apre la finestra di salvataggio di premere il tasto "invio"!

E' possibile questa cosa?

Grazie ;)
Vota: 15MediaObject5,0013 1
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 01:29. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com