Risultati da 1 a 10 di 10

Discussione: Comando salva pdf in userform



  1. #1
    L'avatar di carlo861
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Bari
    Messaggi
    28
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Comando salva pdf in userform

    Buonasera a tutti,
    Ho inserito in una userform un commandbutton per il salvataggio di un foglio in formato PDF con nome concatenato da tre celle dello stesso foglio.
    Il problema e che mi crea la cartella se mancante ma poi dopo tutti i passaggi non salva nulla, ecco il codice usato.
    Codice: 
    Private Sub CommandButton13_Click()
    Dim salvapdf
    salvapdf = MsgBox("Vuoi salvare il tabellino nel formato Pdf ?", vbExclamation + vbYesNo, "ATTENZIONE. Stai per salvare il file in formato PDF")
    If salvapdf = vbYes Then
    Dim objFso As Object
    Dim objFolder As Object
    Set objFso = CreateObject("Scripting.FileSystemObject")
    If objFso.FolderExists(ActiveWorkbook.Path & "\Archivio Tabellini\") Then
    MsgBox "La cartella Archivio Tabellini esiste già", vbCritical, ("ATTENZIONE !!!")
    Else
    MsgBox "La cartella ''Archivio Tabellini'' non esisteva." & Chr(13) & "Adesso che è stata creata puoi salvare il file", vbInformation, ("Nuova Cartella creata con successo... ")
    Set objFolder = objFso.CreateFolder(ActiveWorkbook.Path & "\Archivio Tabellini\")
    End If
    Set objFolder = Nothing
    Set objFso = Nothing
    Dim Variabile As Integer
    Variabile = MsgBox("Premi OK per salvare il file", vbOKCancel + vbExclamation)
    
    
    If Variabile = 1 Then
    Dim foglio As Variant
    
    
    percorso = ActiveWorkbook.Path & "\Archivio Tabellini\"
    For i = 1 To Sheets.Count
    strNome = Sheets(i).Range("A5")
         strnome2 = Sheets(i).Range("AM33")
         strNome3 = Sheets(i).Range("A25")
    
    
     Next i
     MsgBox "Tabellini salvati singolarmente in formato Pdf.", vbInformation, "Tabellini salvati!"
     CommandButton13.BackColor = 65535 '<--- Il pulsante si colora di giallo indicandomi così che è stato usato
    
    
    End If
    End If
    End Sub

  2. #2

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Comando salva pdf in userform

    Ho modificato la routine ma non posso provare visto che non hai allegato un file di esempio
    Codice: 
    Private Sub CommandButton13_Click()
    Dim Salvapdf
    Dim objFso As Object
    Dim objFolder As Object
    Dim Variabile As Integer
    Dim Percorso As String
    Dim i As Integer
    Dim strNome1 As String, strNome2 As String, strNome3 As String
    
    
    Salvapdf = MsgBox("Vuoi salvare il tabellino nel formato Pdf ?", vbExclamation + vbYesNo, "ATTENZIONE. Stai per salvare il file in formato PDF")
    If Salvapdf = vbYes Then
        Set objFso = CreateObject("Scripting.FileSystemObject")
        If objFso.FolderExists(ActiveWorkbook.Path & "\Archivio Tabellini\") Then
            MsgBox "La cartella Archivio Tabellini esiste già", vbCritical, ("ATTENZIONE !!!")
        Else
            MsgBox "La cartella ''Archivio Tabellini'' non esisteva." & Chr(13) & "Adesso che è stata creata puoi salvare il file", vbInformation, ("Nuova Cartella creata con successo... ")
            Set objFolder = objFso.CreateFolder(ActiveWorkbook.Path & "\Archivio Tabellini\")
        End If
        Set objFolder = Nothing
        Set objFso = Nothing
    
    
        Variabile = MsgBox("Premi OK per salvare il file", vbOKCancel + vbExclamation)
    
    
        If Variabile = 1 Then
            Percorso = ActiveWorkbook.Path & "\Archivio Tabellini\"
            For i = 1 To Sheets.Count
                strNome1 = Sheets(i).Range("A5")
                strNome2 = Sheets(i).Range("AM33")
                strNome3 = Sheets(i).Range("A25")
                
                ActiveSheet.ExportAsFixedFormat _
                    Type:=xlTypePDF, _
                    Filename:=Percorso & strNome1 & strNome2 & strNome3 & ".pdf", _
                    Quality:=xlQualityStandard, _
                    IncludeDocProperties:=True, _
                    IgnorePrintAreas:=False, _
                    OpenAfterPublish:=False
    
    
            Next i
            MsgBox "Tabellini salvati singolarmente in formato Pdf.", vbInformation, "Tabellini salvati!"
            CommandButton13.BackColor = 65535 '<--- Il pulsante si colora di giallo indicandomi così che è stato usato
        End If
    End If
    End Sub
    P.S. Solitamente dimensiono le variabili in testa alla routine per una più facile comprensione e una lettera della variabile la metto in maiuscolo per facilitare sia la lettura che la scrittura

  3. #3
    L'avatar di carlo861
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Bari
    Messaggi
    28
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Comando salva pdf in userform

    Ciao Rubik, purtroppo mi e problematico inserire un file di prova per la complessità che comporta, comunque ora mi salva due file uguali ma con nomi diversi (non so dove li prenda) e alla fine mi da errore di Run Time Documento non salvato e il debug mi rimanda a:
    ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=Percorso & strNome1 & strNome2 & strNome3 & ".pdf", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False


    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Ho modificato la routine ma non posso provare visto che non hai allegato un file di esempio
    Codice: 
    Private Sub CommandButton13_Click()
    Dim Salvapdf
    Dim objFso As Object
    Dim objFolder As Object
    Dim Variabile As Integer
    Dim Percorso As String
    Dim i As Integer
    Dim strNome1 As String, strNome2 As String, strNome3 As String
    
    
    Salvapdf = MsgBox("Vuoi salvare il tabellino nel formato Pdf ?", vbExclamation + vbYesNo, "ATTENZIONE. Stai per salvare il file in formato PDF")
    If Salvapdf = vbYes Then
        Set objFso = CreateObject("Scripting.FileSystemObject")
        If objFso.FolderExists(ActiveWorkbook.Path & "\Archivio Tabellini\") Then
            MsgBox "La cartella Archivio Tabellini esiste già", vbCritical, ("ATTENZIONE !!!")
        Else
            MsgBox "La cartella ''Archivio Tabellini'' non esisteva." & Chr(13) & "Adesso che è stata creata puoi salvare il file", vbInformation, ("Nuova Cartella creata con successo... ")
            Set objFolder = objFso.CreateFolder(ActiveWorkbook.Path & "\Archivio Tabellini\")
        End If
        Set objFolder = Nothing
        Set objFso = Nothing
    
    
        Variabile = MsgBox("Premi OK per salvare il file", vbOKCancel + vbExclamation)
    
    
        If Variabile = 1 Then
            Percorso = ActiveWorkbook.Path & "\Archivio Tabellini\"
            For i = 1 To Sheets.Count
                strNome1 = Sheets(i).Range("A5")
                strNome2 = Sheets(i).Range("AM33")
                strNome3 = Sheets(i).Range("A25")
                
                ActiveSheet.ExportAsFixedFormat _
                    Type:=xlTypePDF, _
                    Filename:=Percorso & strNome1 & strNome2 & strNome3 & ".pdf", _
                    Quality:=xlQualityStandard, _
                    IncludeDocProperties:=True, _
                    IgnorePrintAreas:=False, _
                    OpenAfterPublish:=False
    
    
            Next i
            MsgBox "Tabellini salvati singolarmente in formato Pdf.", vbInformation, "Tabellini salvati!"
            CommandButton13.BackColor = 65535 '<--- Il pulsante si colora di giallo indicandomi così che è stato usato
        End If
    End If
    End Sub
    P.S. Solitamente dimensiono le variabili in testa alla routine per una più facile comprensione e una lettera della variabile la metto in maiuscolo per facilitare sia la lettura che la scrittura

  4. #4

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Comando salva pdf in userform

    Te ne salva tanti quanti ne trova nel ciclo:
    Codice: 
    [...]
            For i = 1 To Sheets.Count
                strNome1 = Sheets(i).Range("A5")
                strNome2 = Sheets(i).Range("AM33")
                strNome3 = Sheets(i).Range("A25")
                
                ActiveSheet.ExportAsFixedFormat _
                    Type:=xlTypePDF, _
                    Filename:=Percorso & strNome1 & strNome2 & strNome3 & ".pdf", _
                    Quality:=xlQualityStandard, _
                    IncludeDocProperties:=True, _
                    IgnorePrintAreas:=False, _
                    OpenAfterPublish:=False
    
    
            Next i[...]
    e i nomi li prende concatenando le celle A5 + AM33 + A25 (sempre che siano piene! altrimenti cerca di salvare un file senza nome!)

    EDIT: se non è quello che volevi, spiegati meglio.

  5. #5
    L'avatar di carlo861
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Bari
    Messaggi
    28
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Comando salva pdf in userform

    Ok ma poi mi da errore, posso modificare il foglio attivo con il nome del foglio visto che sarà sempre lo stesso?

  6. #6
    L'avatar di carlo861
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Bari
    Messaggi
    28
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Comando salva pdf in userform

    Ciao Rubik72, provando e riprovando ho capito dove prende i nomi dei due file che mi salva;
    1 file - nome 00 perché con il concatena delle celle vuote ma con formule del foglio1 il nome e giusto
    2 file - nome 307 perché con il concatena delle celle ma del foglio2 il nome è giusto
    da ciò deduco che l'errore nasca dal fatto che la stampa è giusta ma i nomi li prende da due foglio diversi
    quindi penso che non riesca a capisca qual è effettivamente il foglio attivo, ecco perché ti chiedevo se fosse possibile modificare il fatto che indipendentemente se il foglio1 fosse attivo o meno mi deve salvare solo quello.
    Capisco che senza il file è difficile ecco perché cerco di spiegare il più possibile.
    Scusa in anticipo.

  7. #7

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Comando salva pdf in userform

    In pratica quale nome deve assegnare al file pdf del foglio attivo?

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  8. #8
    L'avatar di carlo861
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Bari
    Messaggi
    28
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Comando salva pdf in userform

    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    In pratica quale nome deve assegnare al file pdf del foglio attivo?

    Inviato dal mio GT-I9301I utilizzando Tapatalk
    Il nome va bene che lo prenda da quelle celle, ma voglio che utilizzi solo il foglio1 indipendentemente se è attivo o meno, considerato che lavoro con i fogli excel nascosti e solo con userform visibili non si sa quale sia il foglio attivo, quindi modificare solo la parte che decide quale foglio salvare con il nome preso sempre da quelle celle.

  9. #9

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Comando salva pdf in userform

    prova così:
    Codice: 
    Private Sub CommandButton13_Click()
    Dim Salvapdf
    Dim objFso As Object
    Dim objFolder As Object
    Dim Variabile As Integer
    Dim Percorso As String
    Dim i As Integer
    Dim strNome1 As String, strNome2 As String, strNome3 As String
    
    
    
    
    Salvapdf = MsgBox("Vuoi salvare il tabellino nel formato Pdf ?", vbExclamation + vbYesNo, "ATTENZIONE. Stai per salvare il file in formato PDF")
    If Salvapdf = vbYes Then
        Set objFso = CreateObject("Scripting.FileSystemObject")
        If objFso.FolderExists(ActiveWorkbook.Path & "\Archivio Tabellini\") Then
            MsgBox "La cartella Archivio Tabellini esiste già", vbCritical, ("ATTENZIONE !!!")
        Else
            MsgBox "La cartella ''Archivio Tabellini'' non esisteva." & Chr(13) & "Adesso che è stata creata puoi salvare il file", vbInformation, ("Nuova Cartella creata con successo... ")
            Set objFolder = objFso.CreateFolder(ActiveWorkbook.Path & "\Archivio Tabellini\")
        End If
        Set objFolder = Nothing
        Set objFso = Nothing
    
    
    
    
        Variabile = MsgBox("Premi OK per salvare il file", vbOKCancel + vbExclamation)
    
    
    
    
        If Variabile = 1 Then
            Percorso = ActiveWorkbook.Path & "\Archivio Tabellini\"
            With Sheets(1)
                .ExportAsFixedFormat _
                    Type:=xlTypePDF, _
                    Filename:=Percorso & .Range("A5") & .Range("AM33") & Range("A25") & ".pdf", _
                    Quality:=xlQualityStandard, _
                    IncludeDocProperties:=True, _
                    IgnorePrintAreas:=False, _
                    OpenAfterPublish:=False
            End With
    
    '===================non capisco a cosa serva questo ciclo ================
            For i = 1 To Sheets.Count
                strNome1 = Sheets(i).Range("A5")
                strNome2 = Sheets(i).Range("AM33")
                strNome3 = Sheets(i).Range("A25")
            Next i
    '=========================================================================
            
            MsgBox "Tabellini salvati singolarmente in formato Pdf.", vbInformation, "Tabellini salvati!"
            CommandButton13.BackColor = 65535 '<--- Il pulsante si colora di giallo indicandomi così che è stato usato
        End If
    End If
    End Sub
    P.S. non capisco a cosa serva il ciclo evidenziato

  10. #10
    L'avatar di carlo861
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Bari
    Messaggi
    28
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Comando salva pdf in userform

    Perfetto grazie Rubik72

    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    prova così:
    Codice: 
    Private Sub CommandButton13_Click()
    Dim Salvapdf
    Dim objFso As Object
    Dim objFolder As Object
    Dim Variabile As Integer
    Dim Percorso As String
    Dim i As Integer
    Dim strNome1 As String, strNome2 As String, strNome3 As String
    
    
    
    
    Salvapdf = MsgBox("Vuoi salvare il tabellino nel formato Pdf ?", vbExclamation + vbYesNo, "ATTENZIONE. Stai per salvare il file in formato PDF")
    If Salvapdf = vbYes Then
        Set objFso = CreateObject("Scripting.FileSystemObject")
        If objFso.FolderExists(ActiveWorkbook.Path & "\Archivio Tabellini\") Then
            MsgBox "La cartella Archivio Tabellini esiste già", vbCritical, ("ATTENZIONE !!!")
        Else
            MsgBox "La cartella ''Archivio Tabellini'' non esisteva." & Chr(13) & "Adesso che è stata creata puoi salvare il file", vbInformation, ("Nuova Cartella creata con successo... ")
            Set objFolder = objFso.CreateFolder(ActiveWorkbook.Path & "\Archivio Tabellini\")
        End If
        Set objFolder = Nothing
        Set objFso = Nothing
    
    
    
    
        Variabile = MsgBox("Premi OK per salvare il file", vbOKCancel + vbExclamation)
    
    
    
    
        If Variabile = 1 Then
            Percorso = ActiveWorkbook.Path & "\Archivio Tabellini\"
            With Sheets(1)
                .ExportAsFixedFormat _
                    Type:=xlTypePDF, _
                    Filename:=Percorso & .Range("A5") & .Range("AM33") & Range("A25") & ".pdf", _
                    Quality:=xlQualityStandard, _
                    IncludeDocProperties:=True, _
                    IgnorePrintAreas:=False, _
                    OpenAfterPublish:=False
            End With
    
    '===================non capisco a cosa serva questo ciclo ================
            For i = 1 To Sheets.Count
                strNome1 = Sheets(i).Range("A5")
                strNome2 = Sheets(i).Range("AM33")
                strNome3 = Sheets(i).Range("A25")
            Next i
    '=========================================================================
            
            MsgBox "Tabellini salvati singolarmente in formato Pdf.", vbInformation, "Tabellini salvati!"
            CommandButton13.BackColor = 65535 '<--- Il pulsante si colora di giallo indicandomi così che è stato usato
        End If
    End If
    End Sub
    P.S. non capisco a cosa serva il ciclo evidenziato

Discussioni Simili

  1. [Risolto] inserire un comando che mi chiude una userform
    Di raffaelealta nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 25/11/16, 10:15
  2. salva come PDF
    Di Tequila nel forum Domande su Excel VBA e MACRO
    Risposte: 14
    Ultimo Messaggio: 25/10/16, 22:54
  3. crea cartella + salva nomefile.xlsm + salva nomefile.pdf
    Di Tequila nel forum Domande su Excel VBA e MACRO
    Risposte: 7
    Ultimo Messaggio: 20/05/16, 21:46
  4. Problemi con macro che salva in pdf
    Di Gavino nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 11/11/15, 12:04
  5. filtra salva ed invia
    Di ste75v nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 22/10/15, 23:27

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
  •