semplice macro



  • semplice macro?
    di giorgioarte (utente non iscritto) data: 21/04/2015 18:03:57

    iao a tutti,
    ho appena iniziato a girare con le macro e chiedo il vs aiuto per creare una semplice macro che mi salvi in pdf una parte del foglio di lavoro in excel su cui lavoro.
    La versione è 2003 e sul pc ho installato pdf creator.
    In realtà il foglio si compone in più pagine e in vari punti del documento volevo mettere dei bottoni per salvare in pdf vari intervalli di pagine, tutti diversi (es.: da 1 a 7 oppurre da 1 a 9 ecc.) che poi archivio in hd esterno in cartelle diverse a seconda dell'intervallo (ex.: da pag. 1 a 7 nella cartella "mese" in c; da 1 a 12 nella cartella "anno" in hd, ecc.). Il nome del file poi lo assegno io nel momento di salvare nella cartella di destinazione. Possibile?
    Grazie a tutti



  • di Rookie (utente non iscritto) data: 23/04/2015 13:36:08

    Ma PDFCreator lo vede come una stampante?



  • di giorgioarte (utente non iscritto) data: 23/04/2015 17:26:24

    Si



  • di Rookie (utente non iscritto) data: 24/04/2015 08:51:01

    Da come la descrivi, sembra che le pagine siano già fissate giusto?
    Se è così basterebbe inserire tot pulsanti con associate le macro relative a quello che ti serve.
    Le macro sarebbero praticamente identiche, cambiano soltanto i riferimenti.
    Se la stampante di default è pdfcreator ti basterebbe usare "printout"
    Se guardi sull'help del vba con printout puoi specificare le pagine da stampare. Dovrebbe essere tutto abbastanza semplice



  • di giorgioarte (utente non iscritto) data: 24/04/2015 09:01:40

    ...grazie per la dritta, ma riusciresti a farmi un'esempio?
    Inoltre voglio definire anche il percorso di stampa che poi diventa di salvataggio del pdf avendo un'architettura di cartelle molto ramificata: schiacciare un bottone che mi salva in pdf, in una cartella precisa, un'intervallo preciso di pagine del mio foglio1 (es.) mi sarebbe di grande aiuto.
    Grazie ancora



  • di Rookie (utente non iscritto) data: 24/04/2015 10:19:16

    Premettendo che anch'io sono un novizio di VBA una cosa così potrebbe funzionare (non l'ho provato):




     
    Sub Stampapdf()
    
    
    Dim nomefile As String
    Dim percorso As String
    Dim s1 As String
    Dim s2 As String
    Dim lng As Long
    
    
    
    nomefile = "chiamalo come vuoi.pdf" '<---- da modificare
    
    percorso = Application.ActiveWorkbook.Path  'memorizza il Percorso File--> se vuoi salvare il pdf nella stessa cartella, altrimenti inserisci la stringa del percorso di tuo interesse tra virgolette, tipo percorso="C:MIACARTELLA"
    
    s1 = ActivePrinter 'memorizza la stampante predefinita
    
    'il ciclo che segue è valido per le stampanti in rete, imposta la stampante che mi serve
      
    On Error Resume Next
        'ciclo da 0 a 30(o anche pi?)
        For lng = 0 To 30
            'se ho trovato la stampante
            If InStr(ActivePrinter, _
                "PDFCreator") Then         '<----- controllare il nome corretto della stampante PDFCreator
                'esco dal ciclo
                Exit For
            Else
                'altrimenti provo ad assegnare
                'una stampante valida
                ActivePrinter = "PDFCreator su Ne" & Format(lng, "00") & ":"    '<----- controllare il nome corretto della stampante PDFCreator
                ActivePrinter = s2
            End If
        Next
    
    'ora stampo con il metodo PrintOut specificando le pagine da 1 a 7, la stampante da usare e il nomefile
    
    ActiveSheet.PrintOut From:=1, To:=7, Copies:=1, Preview:=False, ActivePrinter:=s2, PrintToFile:=True, Collate:=True, PrToFileName:=percorso & "" & nomefile
           
           
    ActivePrinter = s1 'reimposta la stampante predefinita
    
    End Sub