Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel 2003] Macro per stampare fogli a scelta

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel 2003] Macro per stampare fogli a scelta

Postdi enrico43 » 25/10/14 14:14

Buongiorno a tutti,
in allegato una macro (che pescai tanto tempo fa da un sito) che stampa i fogli che vengono scelti attraverso una inputbox.
Bisogna impostare i parametri di stampa “a freddo”, poi si lancia la macro (anche in un secondo tempo) e nel box si sceglie quale foglio/i stampare.
Funzionava e funziona alla perfezione, mi sono accorto però, dopo averla reinserita in un nuovo file, che la stampante che si sceglie con la prima stampa non si può più cambiare. Stampo un foglio A1 con il plotter (database con moltissime colonne) che ho scelto nell’anteprima e per gli altri fogli A4, che magari scelgo con un successivo lancio della macro, non c’è modo di evere l'anteprima per cambiare la stampante. Compaiono in continuazione messaggi relativi ai margini anche se nelle impostazioni a freddo è inserito tutto correttamente. Bisogna uscire e riavviare Excel.
Avrei bisogno del Vs aiuto per risolvere l’arcano.
Codice: Seleziona tutto
Private Sub StampaFogli()
    Dim i As Integer
    Dim TopPos As Integer
    Dim SheetCount As Integer
    Dim PrintDlg As DialogSheet
    Dim CurrentSheet As Worksheet
    Dim cb As CheckBox
    Application.ScreenUpdating = False
    If ActiveWorkbook.ProtectStructure Then
    MsgBox "Il foglio è protetto.", vbCritical
    Exit Sub
    End If
    Set CurrentSheet = ActiveSheet
    Set PrintDlg = ActiveWorkbook.DialogSheets.Add
    SheetCount = 0
    TopPos = 40
    For i = 1 To ActiveWorkbook.Worksheets.Count
    Set CurrentSheet = ActiveWorkbook.Worksheets(i)
    If Application.CountA(CurrentSheet.Cells) <> 0 And _
    CurrentSheet.Visible Then
    SheetCount = SheetCount + 1
    PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
    PrintDlg.CheckBoxes(SheetCount).Text = _
    CurrentSheet.Name
    TopPos = TopPos + 13
    End If
    Next i
    PrintDlg.Buttons.Left = 240
    With PrintDlg.DialogFrame
    .Height = Application.Max _
    (68, PrintDlg.DialogFrame.Top + TopPos - 34)
    .Width = 230
    .Caption = "Fogli scelti da stampare"
    End With
    PrintDlg.Buttons("Button 2").BringToFront
    PrintDlg.Buttons("Button 3").BringToFront
    CurrentSheet.Activate
    Application.ScreenUpdating = True
    If SheetCount <> 0 Then
    If PrintDlg.Show Then
    For Each cb In PrintDlg.CheckBoxes
    If cb.Value = xlOn Then
    Worksheets(cb.Caption).Activate
    ActiveSheet.PrintPreview
    'ActiveSheet.PrintOut 'HO INIBITO LA STAMPA
    End If
    Next cb
    End If
    Else
    MsgBox "Tutti i fogli sono vuoti."
    End If
    Application.DisplayAlerts = False
    PrintDlg.Delete
    CurrentSheet.Activate
End Sub

Grazie dell'attenzione e dell'aiuto. Un cordiale saluto
Enrico
enrico43
Utente Senior
 
Post: 133
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Sponsor
 

Re: [Excel 2003] Macro per stampare fogli a scelta

Postdi Anthony47 » 05/11/14 02:48

Il mio suggerimento e' che inserisci nella macro la scelta della stampante da usare; ad esempio aggiungendo questo codice in questa posizione:
Codice: Seleziona tutto
MsgBox "Il foglio è protetto.", vbCritical
Exit Sub
End If
'scegli printer, CODICE AGGIUNTO
SelPrint = Application.Dialogs(xlDialogPrinterSetup).Show
If SelPrint = False Then
    MsgBox "Stampa Cancellata"
    GoTo ESCI
End If
'fine aggiunta
Set CurrentSheet = ActiveSheet

L' etichetta Esci va inserita in coda, subito prima di Application.DisplayAlerts = False
Codice: Seleziona tutto
ESCI:
Application.DisplayAlerts = False
PrintDlg.Delete
CurrentSheet.Activate
End Sub

Se devi usare stampanti diverse lancerai piu' volte la macro.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel 2003] Macro per stampare fogli a scelta

Postdi enrico43 » 05/11/14 08:46

Grazie.
Buona giornata, visto che hai dormito poco.
E
enrico43
Utente Senior
 
Post: 133
Iscritto il: 13/09/14 15:33
Località: Fiumicino


Torna a Applicazioni Office Windows


Topic correlati a "[Excel 2003] Macro per stampare fogli a scelta":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti

cron