Risultati da 1 a 18 di 18

Discussione: Stampa PDF con nome



  1. #1

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296

    Stampa PDF con nome

    Ciao a tutti.
    Tempo fa seguendo i consigli di scossa ho ricavato un codice che mi serviva per la stampa di un foglio e al tempo stesso per colorare una riga dopo stampata aggiungendo una X (la discussione è QUI).

    Ora invece di stampare la parte del foglio ho bisogno di salvare la stessa parte Range("A4:B13") in PDF sul desktop (o altra cartella che vorrò individuare) ma ciascun PDF dovrà avere il nome del DATO1. Cioè se salvo come PDF il foglio in cui al Dato1 riporta pippo1 il PDF si dovrà chiamare pippo1.pdf, se riporta pippo2 il PDF si dovrà chiamare pippo2.pdf ecc.

    Allego file in cui è presente il seguente codice:
    Codice: 
    Sub Stampa()    
        Dim vks1 As Worksheet
        Dim vks2 As Worksheet
        Dim dati1 As Range
        Dim dati2 As Range
        Dim nRow As Long
        
        Set vks1 = Worksheets("Foglio1")
        Set vks2 = Worksheets("Foglio2")
        Set dati2 = vks2.Range("A2:J20")
        Set dati1 = vks1.Range("A4:B13")
        
        
        nRow = Evaluate("MATCH(Foglio1!$B$4,Foglio2!$A$2:$A$20,0)")
        If dati1.PrintOut(Copies:=1, Collate:=True) Then
            dati2.Rows(nRow).Interior.ColorIndex = 3
            dati2.Cells(nRow, 11).Value = "X"
        End If
        Set wks1 = Nothing
        Set wks2 = Nothing
        Set dati2 = Nothing
        Set dati1 = Nothing
        
    End Sub
    La parte in rosso in cui c'è l'istruzione di stampa dovrebbe essere cambiata con salva in PDF con il nome che c'è nel Dato1

  2. #2
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    525
    Versione Office
    2010 - Win10
    Likes ricevuti
    63
    Likes dati
    17

    Esempio

    ti allego uno stralcio di codice che potrebbe esserti di aiuto e darti l'idea per implementarlo

    Codice: 
            Dim ws As Worksheet
            Dim myFile As Variant
            Dim strFile As String
    
            On Error GoTo errHandler
            
            Set ws = ActiveSheet
            'apre la finestra di dialogo per il salvataggio dei file
            'la cartella di default è la stessa della cartella di del presente file
            strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") & "-" & campo & "_" & Format(Now(), "yyyy-mm-dd\_hh-mm") & ".pdf"
            strFile = ThisWorkbook.Path & "\" & strFile
            myFile = Application.GetSaveAsFilename(InitialFileName:=strFile, FileFilter:="PDF Files (*.pdf), *.pdf", Title:="ispezioni scadute")
            If myFile <> False Then
                ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=myFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
                MsgBox "Il file PDF: " & myFile & Chr(10) & "è stato salvato."
                FilePDF = myFile
            End If
    campo è un identificativo aggiunto al nome del Foglio
    aggiunge poi la data corrente
    n°3 - Win10pro + Office 2010 ----- n°1 - Win7pro + Office 2010 ----- n°1 - WinXPpro + Office 2010

  3. #3

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    Grazie zio_tom,
    ho provato a sistemare il codice che hai linciato ma non riesco a adattarlo.

    Il problema è inserire il nome del file in automatico come ho spiegato sopra, allora ho cercato la seguente soluzione alternativa.

    Codice: 
    Sub Stampa()    
     Sub Stampa()
        
        Dim vks1 As Worksheet
        Dim vks2 As Worksheet
        Dim dati1 As Range
        Dim dati2 As Range
        Dim nRow As Long
        
        Set vks1 = Worksheets("Foglio1")
        Set vks2 = Worksheets("Foglio2")
        Set dati2 = vks2.Range("A2:J20")
        Set dati1 = vks1.Range("A4:B13")
              
        Const cPath  As String = "/Users/Ges/Scrivania" ' è mio indirizzo sul Mac ma va modificato in base al percorso che si vuole utilizzare
        Dim NomeFile As Variant
        
        NomeFile = Application.InputBox(Prompt:="Scrivi il nome del file PDF", _
            Title:="Nome dal file PDF da salvare", _
            Type:=2)
        
        If NomeFile = False Then Exit Sub
        If Len(NomeFile & vbNullString) = 0 Then Exit Sub
        
        dati1.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=cPath & NomeFile, _
            Quality:=xlQualityStandard, _
            OpenAfterPublish:=False
            
            nRow = Evaluate("MATCH(Foglio1!$B$4,Foglio2!$A$2:$A$20,0)")
            dati2.Rows(nRow).Interior.ColorIndex = 3
            dati2.Cells(nRow, 11).Value = "X"
       
        Set wks1 = Nothing
        Set wks2 = Nothing
        Set dati2 = Nothing
        Set dati1 = Nothing
        
    End Sub
    In pratica mi sono cerato una InputBox in cui scrivo il nome del file da salvare.

    L'ideale sarebbe sempre inserire il nome in automatico come setto sopra.
    Ben vengano altre idee.

  4. #4
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    525
    Versione Office
    2010 - Win10
    Likes ricevuti
    63
    Likes dati
    17
    ma DATO1 dove si trova???

    cosa intendi per nome in automatico??

    il nome che vorresti dare si trova su qualche foglio o l'hai definito in qualche Sub???

    se esiste o si riesce a comporre con qualche regola, non dovrebbero esserci problemi
    n°3 - Win10pro + Office 2010 ----- n°1 - Win7pro + Office 2010 ----- n°1 - WinXPpro + Office 2010

  5. #5

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao a tutti,
    @ges
    prova con questo codice:

    Codice: 
    Option Explicit
    Sub salva_pdf()
    Dim vks1 As Worksheet, vks2 As Worksheet, dati1 As Range
    Dim dati2 As Range, nomefile As String, nRow As Long, percorso As String
        
    Set vks1 = Worksheets("Foglio1")
    Set vks2 = Worksheets("Foglio2")
    Set dati2 = vks2.Range("A2:J20")
    Set dati1 = vks1.Range("A4:B13")
    
    
    nRow = Evaluate("MATCH(Foglio1!$B$4,Foglio2!$A$2:$A$20,0)")
    nomefile = CStr(vks1.Range("B4").Value)
    percorso = "C:\Prove per ges\"
    
    
    dati1.ExportAsFixedFormat Type:=xlTypePDF, Filename:=percorso & nomefile, _
    Quality:=xlQualityStandard, OpenAfterPublish:=False
    
    
    dati2.Cells(nRow, 12).Value = "X"
    
    
    Call MsgBox("Salvataggio avvenuto con successo", vbInformation, "Archiviazione")
    
    
    Set vks1 = Nothing
    Set vks2 = Nothing
    Set dati2 = Nothing
    Set dati1 = Nothing
    
    
    End Sub
    Naturalmente tu cambierai la variabile "percorso" con il percorso in cui vuoi salvare il pdf.

    Nel foglio2, non ho messo la formattazione condizionale, ma ti aggiunge una "X" se viene salvato in pdf.

    Ti lascio il file in allegato....

    [EDIT]
    Ho modificato il codice e il file allegato messi prima (mi ero dimenticato di togliere la riga di codice che faceva la stampa).

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  6. #6

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    Citazione Originariamente Scritto da zio_tom Visualizza Messaggio
    ma DATO1 dove si trova???
    DATO 1 è il primo dato nel primo foglio.

  7. #7

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    @Cromagno
    Ciao,
    bell'idea la tua di tenere due pulsanti sia quello STAMPA che quello SALVA IN PDF.
    Solo che ho cambiato il percorso secondo le impostazioni del mio Mac ma non funziona, cioè non stampa nulla.

    Codice: 
    Option Explicit
    Sub salva_pdf()
    Dim vks1 As Worksheet, vks2 As Worksheet, dati1 As Range
    Dim dati2 As Range, nomefile As String, nRow As Long, percorso As String
        
    Set vks1 = Worksheets("Foglio1")
    Set vks2 = Worksheets("Foglio2")
    Set dati2 = vks2.Range("A2:J20")
    Set dati1 = vks1.Range("A4:B13")
    
    
    nRow = Evaluate("MATCH(Foglio1!$B$4,Foglio2!$A$2:$A$20,0)")
    nomefile = CStr(vks1.Range("B4").Value)
    percorso = "/Users/Ges/Scrivania"
    
    
    dati1.ExportAsFixedFormat Type:=xlTypePDF, Filename:=percorso & nomefile, _
    Quality:=xlQualityStandard, OpenAfterPublish:=False
    
    
    dati2.Cells(nRow, 12).Value = "X"
    
    
    Call MsgBox("Salvataggio avvenuto con successo", vbInformation, "Archiviazione")
    
    
    Set vks1 = Nothing
    Set vks2 = Nothing
    Set dati2 = Nothing
    Set dati1 = Nothing
    
    
    End Sub

  8. #8

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao ges,
    ma nel percorso non hai messo il disco fisso (C,D o altro)...
    Inoltre (forse dipende dalle impostazioni del MAC) dovresti usare i back-slash "\" non gli slash "/"...

    [EDIT]
    si, come hai detto, mi sa che per il MAC la tua sintassi è giusta :171::26:

    ma credo che un ultimo "slash" dovresti metterlo :
    percorso = "/Users/Ges/Scrivania/"

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  9. #9

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ges,
    per curiosità...
    se ti posizioni in una cella del tuo foglio e usi la funzione:
    =CELLA("nomefile")

    qual'è il risultato (il percorso che viene fuori)?
    Per Windows è un cosa del genere:
    C:\Users\Sal\Downloads\[Stampa PDF.xlsm]Foglio1

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  10. #10

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    Incredibile!
    Ho chiuso, salvato e riaperto il file e ora funziona!!!!
    E' il mio excel che ogni tanto fa i capricci!!! :237:

    Non mi funziona il tasto stampa .... vediamo.... :92:

    Edit:
    ah già STAMPA non c'è l'istruzione!

  11. #11

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ges,
    nel codice per stampare c'era un piccolo errore...
    all'inizio imposti le variabili in questo modo:
    Codice: 
    Dim vks1 As Worksheet
    Dim vks2 As Worksheet
    
    Set vks1 = Worksheets("Foglio1")
    
    Set vks2 = Worksheets("Foglio2")
    ma alla fine elimini queste istanze:
    Codice: 
    Set wks1 = Nothing
    Set wks2 = Nothing

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  12. #12

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    Grazie per la segnalazione Cromagno,
    si è trattato di un errore di battitura.

    Per la STAMPA utilizzerò l'altro codice.

    Però adesso che mi hai dato un'ottima soluzione mi piacerebbe affinare la cosa; in pratica il file salvato ha questo nome /Users/Ges/Scrivaniapippo11.pdf chissà se fosse possibile fare in modo che abbia solo il nome pippo11.pdf togliendo la parte/Users/Ges/Scrivania
    Che dici è possibile?

  13. #13

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao,
    per me è già strano questo modo di definire il percorso :171:
    in più non ho la possibilità di provare su un MAC (sul mio PC il file si chiama solamente pippo9.pdf )....

    posso solo provare a dirti quel che penso.... mmhhh
    :92:

    [EDIT]
    Puoi postare il codice funzionante (o anche solo le righe interessate) per avere un idea di come salva il file?!?

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  14. #14

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    Ah!
    Allora può essere che sia un'impostazione del Mac, proverò il file su windows.

  15. #15

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    Ma è obbligatorio mettere il nome del percorso?

    Codice: 
    ....
    dati1.ExportAsFixedFormat Type:=xlTypePDF, Filename:=percorso & nomefile, _
    Quality:=xlQualityStandard, OpenAfterPublish:=False
    ...
    Se tolgo percorso stampa solo pippo9.pdf

  16. #16

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao ges,
    potresti provare con "ChDir"...
    Modifica le righe in questo modo (le parti in rosso):

    Codice: 
    nRow = Evaluate("MATCH(Foglio1!$B$4,Foglio2!$A$2:$A$20,0)")
    nomefile = CStr(vks1.Range("B4").Value)
    percorso = "/Users/Ges/Scrivania"
    ChDir percorso
    
    
    
    
    dati1.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nomefile, _
    Quality:=xlQualityStandard, OpenAfterPublish:=False

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  17. #17

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    Ok, farò delle prove ... poi ti faccio sapere .. ora devo andare.
    Grazie ancora Cromagno.

  18. #18

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296
    Ho fatto delle prove, sia su windows che su mac direi che va bene.
    Grazie ancora.

Discussioni Simili

  1. [Risolto] stampa area di stampa di un foglio diverso
    Di ninnago nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 13/04/17, 11:42
  2. [Risolto] Estrazione di Nome e Cognome
    Di Emanuele nel forum Domande su Excel in generale
    Risposte: 23
    Ultimo Messaggio: 01/03/17, 01:08
  3. [Risolto] Salva con nome personalizzato
    Di rodyskorps nel forum Domande su Excel in generale
    Risposte: 15
    Ultimo Messaggio: 24/10/16, 11:26
  4. [Risolto] estrarre un nome
    Di gigione nel forum Domande su Excel in generale
    Risposte: 30
    Ultimo Messaggio: 29/09/16, 09:10
  5. Anteprima di Stampa e Stampa
    Di Pacifico437 nel forum Domande su Excel VBA e MACRO
    Risposte: 21
    Ultimo Messaggio: 28/06/16, 01:24

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •