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

Macro per impostare pagina e salvare foglio in PDF

Ultimo Aggiornamento: 01/03/2016 14:55
Post: 13
Registrato il: 22/12/2015
Città: ROMA
Età: 54
Utente Junior
excel 2003
OFFLINE
26/02/2016 10:58

Buongiorno a tutti, sto muovendo i miei primi passi con il VBA, e ho già ricorso al vostro gentilissimo aiuto.
Sto lavorando ad un documento di gestione di magazzino, allego il file di esempio, ed ho la necessità di una macro per salvare una copia del foglio in pdf.
Ho indagato sui Threads già pubblicati e alcuni mi sono tornati utilissimi per redigere la macro, il problema è nell'impaginazione del pdf.
Il nome del pdf è composto dal nome del foglio attivo e dai valori delle celle E2 e K2 separate da "_" e "_R"
Siccome sono presenti molte colonne, ho la necessità di impaginare il documento con tutte le colonne su foglio orizzontale.
Con il registratore di macro ho selezionato layout di pagina e larghezza 1 pagina ed ho inserito il codice ricavato nella macro.
Ho provato e riprovato a spostarlo e a cambiarlo in mille modi, ma non riesco a scrivere la giusta grammatica e così il pdf risulta sempre impaginato male.
Oltre che nel file allegato, riporto di seguito il codice sul quale sto lavorando.
Ringrazio in anticipo chi avrà la pazienza di aiutarmi.


Sub SALVA_COPIA_PDF()
'
'salva nella cartella origine con nome del foglio e celle E2 e K2 separate da "_" e "_R"
With ActiveWorkbook
If .Path = "" Then Exit Sub
pdfFile = .Path & "\" & ActiveSheet.Name & "_" & [E2] & "_R" & [K2] & ".pdf"
'
End With
'
'Imposta la pagina con layout di stampa: tutte le colonne su un unico foglio A4 orizzontale e salva pdf
ActiveWindow.View = xlPageLayoutView
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
.Orientation = xlLandscape
.PaperSize = xlPaperA4
End With
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfFile _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

' Torna alla visualizzazione del layout di pagina normale
ActiveWindow.View = xlNormalView
End Sub
Post: 1.805
Registrato il: 24/09/2008
Città: LATINA
Età: 69
Utente Veteran
2007-2010
OFFLINE
26/02/2016 17:57


Siccome sono presenti molte colonne, ho la necessità di impaginare il documento con tutte le colonne su foglio orizzontale.


Per me la tua macro fa quello che chiedi.
A meno che non intenda invece di vedere nel pdf in orizzontale lo vuoi vedere in verticale.
In tal caso ripeti la registrazione usando la stampa in verticale.

Un saluto
Berna11
-----------
Excel-2007-2010
Post: 13
Registrato il: 22/12/2015
Città: ROMA
Età: 54
Utente Junior
excel 2003
OFFLINE
26/02/2016 18:30

Buona sera Berna,
eppure, se faccio girare la macro, mi salva un file pdf con le colonne frammentate su più fogli, precisamente su 4 fogli.
Invece se stampo, con le condizioni di layout di pagina larghezza 1 pagina, riesco a condensare tutte le colonne in un foglio, ma con la macro proprio non mi viene...
Sto provando a spostare il codice e a cambiare la grammatica, ma non essendo pratico, mi sono super incasinato con i miei tentativi [SM=x423021]
Post: 1.806
Registrato il: 24/09/2008
Città: LATINA
Età: 69
Utente Veteran
2007-2010
OFFLINE
26/02/2016 18:59

Questo il file che esce a me con la tua macro.

Un saluto
Berna11
-----------
Excel-2007-2010
Post: 14
Registrato il: 22/12/2015
Città: ROMA
Età: 54
Utente Junior
excel 2003
OFFLINE
27/02/2016 15:49

Funziona a tratti.
Ciao Berna,
intanto grazie della tua verifica!!!!
Mistero...
Dopo aver visto il tuo file pdf, ho ripreso la macro postata e prima di pranzo la stessa macro non mi salvava pdf in maniera corretta, ora funziona anche a me!
Forse la versione del sistema operativo... chissà.
Ora faro un po di test!
Grazie comunque!!!!
[Modificato da Pierlu70 27/02/2016 15:54]
Post: 15
Registrato il: 22/12/2015
Città: ROMA
Età: 54
Utente Junior
excel 2003
OFFLINE
01/03/2016 14:55

Svelato il mistero
Per chiudere la discussione riporto cosa non mi funzionava: il programma salva alcune impostazioni con il singolo foglio elettronico, in particolare le impostazioni di layout di pagina.
Quindi, selezionato il foglio di interesse, nella tendina Layout di pagina, sezione adatta alla pagina, è necessario selezionare la voce larghezza "1 pagina" e altezza "automatico", quindi salvare il file.
A questo punto le impostazioni rimangono memorizzate e la Macro Funziona.
Sembra una cosa banale, ma per chi non ha esperienza come me, diventa una vera complicazione!!!
Vota:
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 06:10. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com