macro excel 4.0

Anonimo
2014-01-19T08:43:53+00:00

Salve, non riesco a creare una macro con EXCEL 4.0 che mi salvi in automatico le fatture nel formato pdf nominando il file con un valore corrispondente alla data e nr fattura in oggetto. attualmente mi salva il PDF con il nome del file che uso come maschera, esempio: nome file di fatturazione FT.XLS, data e nr fattura 31122013897 che immetto automaticamente in una cella che ho nominato "DATANR". vorrei che quando lancio la stampa di un certo numero di fatture in PDF le salvasse automaticamente con i parametri sopra descritti e senza aprirle in automatico come fa quando ne salva una con il nome del file. sto usando OFFICE 2007

Grazie Roberto

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2014-01-19T11:38:30+00:00

Salve, non riesco a creare una macro con EXCEL 4.0 che mi salvi in automatico le fatture nel formato pdf nominando il file con un valore corrispondente alla data e nr fattura in oggetto. attualmente mi salva il PDF con il nome del file che uso come maschera, esempio: nome file di fatturazione FT.XLS, data e nr fattura 31122013897 che immetto automaticamente in una cella che ho nominato "DATANR". vorrei che quando lancio la stampa di un certo numero di fatture in PDF le salvasse automaticamente con i parametri sopra descritti e senza aprirle in automatico come fa quando ne salva una con il nome del file. sto usando OFFICE 2007

Grazie Roberto

Ciao Roberto,

parli di macro excel 4.0 ma presumo che intenda utilizzare il codice vba.

Per salvare in pdf un foglio excel, puoi utilizzare il metodo ExportAsFixedFormat, ma questo forse già lo sapevi. Se leggi il link avrai modo di verificare che il parametro OpenAfterPublish permette di visualizzare o meno il pdf una volta terminata la creazione, per le tue esigenze devi impostarlo a False.

Il parametro Filename contiene il nome del file, completo della cartella, ove salvare il pdf, nel tuo caso, sarà formato da una parte fissa che sarà la cartella e da una parte variabile che sarà il nome del file. Nel tuo codice, utilizza due variabili:

sPathName = "C:\CartellaDiDestinazioneDeliFilePDF"      ' parte fissa

sFileName = Worksheets("Foglio1").Range("A25").Value   ' parte variabile contenuta nella cella A25 del foglio1

Ipotizzando tu voglia stampare il foglio1, questa sarà l'istruzione risultante:

Worksheets("Foglio1").ExportAsFixedFormat _

Type:=xlTypePDF, _

Filename:=sPathName & sFileName, _

Quality:=xlQualityStandard, _

IncludeDocProperties:=True, _

IgnorePrintAreas:=False, _

OpenAfterPublish:=False

Andrea.

La risposta è stata utile?

0 commenti Nessun commento

25 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-01-29T13:52:30+00:00

    Ciao Andrea,

    l'istruzione che mi manca per salvare la mia fattura con il nome inserito in una cella mi è più complicato del previsto,

    il programma che mi sono creato è configurato così:

    INIZIO.xls e un file con una macro in excel4.0 che mi apre in sola lettura il file FATT.xls

    FATT.xls è un file con circa 10 fogli di lavoro per inserire, modificare clienti, emettere fatture, ed altre cose e contiene circa 50 macro in excel4.0 alcune delle quali usano alcune istruzioni in VBA che in Excel4.0 non era possibile programmare.

    FT.xls è solo un file con 2 fogli di lavoro; "F" che contiene la maschera della fattura e "A" che viene usato dal file FATT.xls per riportare i dati della fattura da stampare.

    Le mie esigenze attuali sono quelle oltre che oltre a stampare le Fatture ho bisogno di averne una copia in PDF per spedirle via email.

    Il primo passo di salvare le fatture in PDF è andato a buon fine con il tuo aiuto, il passo finale è quello di salvarle con un nome che varia ad ogni stampa fattura inserito nella cella Y5 del file FT.xls.

    Adesso mi salva correttamente le fatture in PDF ma con il nome Cartella1.pdf, Cartella2.pdf ecc. ecc.

    Ho provato ad inserire in 1000 modi diversi istruzioni tipo

    ActiveWorkbook.SaveAs con diverse istruzioni che non andavano bene

    ActiveWorkbook.Export e altre istruzioni simili, con riferimenti alla mia famosa cella Y5

    ma niente, spero di averti spiegato esplicitamente la configurazione del programma per inserire l'ultima istruzione che mi manca.

    ciao Roberto

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-01-29T11:51:47+00:00

    ...

    non sono in grado di inserire l'istruzione per fargli salvare il file in pdf con il contenuto nella cella che specifico in Y5, che sarebbe il risultato del mio copia/incolla e mi da 2013 384 CODCLI (anno nr.ft CodCli)

         

     di nuovo grazie

    Roberto

    Ciao Roberto,

    la macro allegata, salva in pdf il foglio "F" - ammesso che ci sia - del file nel quale si trova la macro.

    Andrea.


    Sub ExportSheetAsPDF()

    Dim sFileName As String, sPathName As String, sFullPath As String

    On Error GoTo Uffa

    '--- percorso e nome file dal foglio1 di questo file

    With ThisWorkbook.Worksheets("Foglio1")

    sPathName = .Range("K5").Value            ' percorso

    sFileName = .Range("Y5").Value & ".PDF"   ' nome con aggiunta estensione pdf

    End With

    If Right(sPathName, 1) <> "" Then sPathName = sPathName & ""

    sFullPath = sPathName & sFileName

    '--- avvisa il nome del file

    MsgBox "Il pdf sarà salvato col nome: " & vbNewLine & sFullPath

    ThisWorkbook.Worksheets("F").ExportAsFixedFormat _

    Type:=xlTypePDF, _

    Filename:=sFullPath, _

    Quality:=xlQualityStandard, _

    IncludeDocProperties:=True, _

    IgnorePrintAreas:=False, _

    OpenAfterPublish:=False

    exitSub:

    Exit Sub

    Uffa:

    Call MsgBox("Si è verificato un errore: " & vbNewLine & _

    CStr(Err.Number) & " - " & Err.Description, vbCritical, "Stampa PDF")

    Resume exitSub

    End Sub


    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-01-29T11:31:11+00:00

    ciao Andrea, ti avevo già ringraziato, ma ti chiedo un ulteriore chiarimento, ho dovuto impostare la macro in questo modo:

     ' imposta il valore della cella Y5 come nome del file

        nome = Range("Y5").Value

    ' imposta il valore della cella K5 come percorso del file

        percorso = Range("K5").Value

    ' seleziona e copia il Foglio F del file FT.xls

        Sheets("F").Select

        Sheets("F").Copy

    ' esporta nel formato PDF l'area di stampa

        ActiveWorkbook.ExportAsFixedFormat (xlTypePDF)

        ActiveWindow.Close

    ...

    non sono in grado di inserire l'istruzione per fargli salvare il file in pdf con il contenuto nella cella che specifico in Y5, che sarebbe il risultato del mio copia/incolla e mi da 2013 384 CODCLI (anno nr.ft CodCli)

         

     di nuovo grazie

    Roberto

    Ciao Roberto,

    prima di risponderti vorrei capire che cosa esattamente vuoi stampare in pdf?

    Dal codice che hai indicato, sembrerebbe che tu voglia stampare solamente il foglio "F" del file FT.XLS (che probabilmente è una fattura). Se è così, perché non stamparlo direttamente senza prima copiarlo?

    Andrea.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-01-29T09:48:34+00:00

    ciao Andrea, ti avevo già ringraziato, ma ti chiedo un ulteriore chiarimento, ho dovuto impostare la macro in questo modo:

     ' imposta il valore della cella Y5 come nome del file

        nome = Range("Y5").Value

    ' imposta il valore della cella K5 come percorso del file

        percorso = Range("K5").Value

    ' seleziona e copia il Foglio F del file FT.xls

        Sheets("F").Select

        Sheets("F").Copy

    ' esporta nel formato PDF l'area di stampa

        ActiveWorkbook.ExportAsFixedFormat (xlTypePDF)

        ActiveWindow.Close

    funziona perfettamente ma mi salva il pdf con il nome Cartella1..2.. ecc. ecc.

    premetto che nella Macro di Excel4.0 ho inserito queste righe di codice per impostare il PATH perché non ero in grado di farlo in VBA:

    =SELEZIONA("R5C14") 

     =MODIFICA.COPIA()

     =SELEZIONA("R5C26")

      =MODIFICA.INCOLLA.SPECIALE(3;1;FALSO;FALSO)

     =COPIA.ANNULLA()

    mia dir per il salvataggio fatture

     =DIRECTORY("C:\Fatture\FTPDF") 

    comando di esecuzione tua macro in VBA

      =MACRO.ESEGUI(PRINTFTPDF)

    mia dir per l'esecuzione della macro

     =DIRECTORY("C:\Fatture")

    non sono in grado di inserire l'istruzione per fargli salvare il file in pdf con il contenuto nella cella che specifico in Y5, che sarebbe il risultato del mio copia/incolla e mi da 2013 384 CODCLI (anno nr.ft CodCli)

     di nuovo grazie

    Roberto

    La risposta è stata utile?

    0 commenti Nessun commento