Area stampa non funzionante quando si apre file excel con powershell

Anonimo
2018-03-09T20:16:33+00:00

Ho necessità di aprire un file excel con uno script di powershell. Lo script è il seguente

$path = [io.path]::combine($env:APPDATA, "Dubhe\Letteratura.xlsx");

$excel = New-Object -comobject Excel.Application;

$excel.visible = $true;

$workbook = $excel.Workbooks.open($path);

Il file che sto adoperando ha impostata un'area di stampa. Eseguendo lo script il file si apre correttamente tuttavia quando cerco di stamparlo l'area di stampa non viene rilevata. Ho notato che tutte le volte che apro il file tramite powershell il nome delle celle che dovrebbe essere "Area_stampa" viene rinominato in "Print_Area", se poi lo rinomino come dovrebbe essere allora la stampa avviene correttamente.

Sto adoperando excel 2016 su windows 10 pro 1709 16299.248

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

4 risposte

Ordina per: Più utili
  1. Anonimo
    2018-03-10T16:03:19+00:00

    Ciao grazie ancora per la risposta la macro dovrebbe essere questa

    Sub CreaReport()

    '

    ' CreaReport Macro

    '

    Dim ws As Worksheet

    Dim strIndirizzo As String

    Dim myFile As Variant

    Dim strFile As String

    On Error GoTo errHandler

    Sheets(Array("Start", "Bilancio", "Wizard", "RF Wizard", "SPriclass1", "SPriclass2", "SPriclass3", "CEriclass1", _

    "CEriclass2", "CEriclass3", "BEP Analysis", "Cash Flow", "RF OIC10", "PFN", "Highlights", _

    "Indici", "Scomposizione", "DuPont", "Matrici", "K-Radar", "Rating Banca", "Rating S&P", "Rating Dam", "Rating MCC", _

    "Scoring", "Bancabilità", "Valuation", "Input vp", "Val progetto")).Select

    Set ws = ActiveSheet

    'apre la finestra di dialogo per il salvataggio dei file

    strFile = Format(Now(), "yyyy-mm-dd") _

            & "_Report.pdf"

    myFile = Application.GetSaveAsFilename _

            (InitialFileName:=strFile, _

              FileFilter:="PDF Files (*.pdf), *.pdf", _

    Title:="Seleziona la cartella di destinazione")

    If myFile <> False Then

            ws.ExportAsFixedFormat _

              Type:=xlTypePDF, _

              Filename:=myFile, _

              Quality:=xlQualityStandard, _

              IncludeDocProperties:=True, _

              IgnorePrintAreas:=False, _

              OpenAfterPublish:=False

            MsgBox "Il tuo report è stato salvato correttamente!"

    ' separa tutti i fogli selezionati selezionando il foglio da attivare alla fine della stampa

    Sheets("Bilancio").Activate

    Range("K6").Select

    End If

    exitHandler:

            Exit Sub

    errHandler:

    MsgBox "Salvataggio in PDF non riuscito"

    Resume exitHandler

    End Sub

    La cosa strana è che se apro il foglio normalmente senza powershell, la macro funziona perfettamente. Graze per la disponibilità

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-03-10T11:10:05+00:00

    Ciao Simone,

    [...]

    Il mio problema comunque è che il file che devo aprire (non quello dell'immagine) ha una macro che crea un pdf. Quando apro il file attraverso la powershell la macro produce un pdf che ignora tutte le aree di stampa impostate.

    Credo che questo sia un problema diverso e che sia dovuto al codice della macro che crea il documento pdf!

    Più precisamente, senza aver veduto il codice della macro, che ti invito di pubblicare, credo sia possibile che manca un'istruzione del genere:

         Rng.ExportAsFixedFormat _

                        Type:=xlTypePDF, _

                        Filename:=sPath & .Name, _

                        Quality:=xlQualityStandard, _

                        IncludeDocProperties:=True, _

                        IgnorePrintAreas:=False, _

                        OpenAfterPublish:=False

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-03-10T10:56:53+00:00

    Ciao grazie per la risposta,

    premetto che non sono pratico di excel (io sto solo sviluppando la porzione di codice che apre il file), nel mio excel quando imposto un area di stampa mi viene generato il nome Area_stampa

    Il mio problema comunque è che il file che devo aprire (non quello dell'immagine) ha una macro che crea un pdf. Quando apro il file attraverso la powershell la macro produce un pdf che ignora tutte le aree di stampa impostate.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2018-03-09T21:14:43+00:00

    Ciao Simone,

    Ho necessità di aprire un file excel con uno script di powershell. Lo script è il seguente

    $path = [io.path]::combine($env:APPDATA, "Dubhe\Letteratura.xlsx");

    $excel = New-Object -comobject Excel.Application;

    $excel.visible = $true;

    $workbook = $excel.Workbooks.open($path);

    Il file che sto adoperando ha impostata un'area di stampa. Eseguendo lo script il file si apre correttamente tuttavia quando cerco di stamparlo l'area di stampa non viene rilevata. Ho notato che tutte le volte che apro il file tramite powershell il nome delle celle che dovrebbe essere "Area_stampa" viene rinominato in "Print_Area", se poi lo rinomino come dovrebbe essere allora la stampa avviene correttamente.

    Sto adoperando excel 2016 su windows 10 pro 1709 16299.248

    Ogni volta che un'area di stampa venga imposta su un foglio di lavoro, Excel crea automaticamente, ad ambito del foglio,  il nome Print_Area.

    Inoltre, supponendo che un area di stampa sia già stata imposta, non credo che sia necessario fare riferimento ad un intervallo denominato; credo che sia sufficiente utilizzare l'istruzione PrintOut() per il foglio di interesse.

    Comunque, è sempre possibile che io abbia capito male la tua domanda (:-

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento