Condividi:        

Macro di stampa in base a condizione

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

Macro di stampa in base a condizione

Postdi lone wolf » 15/06/15 16:50

Salve e buona sera, ho questa macro che filtra e stampa un foglio di lavoro, e avrei la necessità di modificarla in base a condizione, cioè: se nella cella B9 del Foglio 2 vi è 0 (zero) l’area di stampa dovrebbe essere "A1:G318", altrimenti se nella cella B9 del Foglio 2 vi è 1 allora l’area di stampa dovrebbe essere “B1:D310, è possibile utilizzare due condizioni?
Grazie per l’aiuto e buona serata a tutti.

Questa è la macro:

Codice: Seleziona tutto
Sub StampaElenco()
Sheets("Elenco").Visible = True
Sheets("Elenco").Select
Dim rArea As Range
Dim cl As Range
Dim Ok As VbMsgBoxResult
Ok = MsgBox("Stampare l’Elenco?", vbYesNo)

If Ok = vbYes Then
    Application.ScreenUpdating = False
    With Foglio2
        Set rArea = .Range("B10:B610")
        .Visible = True
        For Each cl In rArea
            If cl.Value = "" Then .Rows(cl.Row).Hidden = True
        Next cl
        .PageSetup.PrintArea = "A1:G618"
        .PrintOut
        .PageSetup.PrintArea = ""
        rArea.EntireRow.Hidden = False
                .Visible = True
    End With
    Application.ScreenUpdating = True
    Set rArea = Nothing
End If
Sheets("Elenco").Visible = False
End Sub
lone wolf
Utente Senior
 
Post: 104
Iscritto il: 23/05/15 14:59

Sponsor
 

Re: Macro di stampa in base a condizione

Postdi Anthony47 » 16/06/15 01:46

Direi che invece di .PageSetup.PrintArea = "A1:G618" potresti usare
Codice: Seleziona tutto
If Sheets("Foglio2").Range("B9").Value=0 then
            .PageSetup.PrintArea = "A1:G618"
elseIf Sheets("Foglio2").Range("B9").Value=1 then
            .PageSetup.PrintArea = "B1:D310"
'elseIf Sheets("Foglio2").Range("B9").Value=2 then  'Eventuali altri "casi"
'            .PageSetup.PrintArea = "C10:F310"
End If


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro di stampa in base a condizione

Postdi lone wolf » 16/06/15 22:06

Buona sera Anthony, grazie per l'aiuto, ho provato la tua modifica ma va in debug
Codice: Seleziona tutto
If Sheets("Foglio2").Range("B9").Value=0 then

grazie ancora e buona serata a tutti
lone wolf
Utente Senior
 
Post: 104
Iscritto il: 23/05/15 14:59

Re: Macro di stampa in base a condizione

Postdi Anthony47 » 16/06/15 22:44

se nella cella B9 del Foglio 2 vi è 0 (zero) l’area di stampa dovrebbe essere "A1:G318", altrimenti se nella cella B9 del Foglio 2 vi è 1 allora l’area di stampa dovrebbe essere “B1:D310

Ma tu ce l'hai un foglio che si chiama "Foglio2"? O si chiama "2"? O "Foglio 2"?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro di stampa in base a condizione

Postdi lone wolf » 17/06/15 00:07

Scusa Anthony hai ragione :oops: sono proprio sbadato, adesso va benissimo, grazie per la disponibilità e la pasienza dimostrata, una buona serata a tutti
lone wolf
Utente Senior
 
Post: 104
Iscritto il: 23/05/15 14:59


Torna a Applicazioni Office Windows


Topic correlati a "Macro di stampa in base a condizione":


Chi c’è in linea

Visitano il forum: Nessuno e 39 ospiti