Stampa Area



  • Stampa Area
    di Toni70 data: 22/01/2014 09:29:44

    Ciao, su una determinato intervallo di celle A1:U200 vorrei impostare una macro per la stampa di una determinata selezione (variabile).
    In sostanza dovrebbe selezionare solo l'area dove le formule restituiscono un valore numerico o di testo, ed escluda le celle sottostanti dove le formule restituiscono "".
    Si può fare?
    Grazie



  • di LucaS. (utente non iscritto) data: 22/01/2014 10:04:47

    Così viene impostata l'area di stampa che ti interessa, viene mostrata la finestra per la stampa e viene cancellata l'area di stampa.
    Non sapendo come dovrebbe essere compilata la tua tabella non ti posso aiutare a determinare l'intervallo.
     
        ActiveSheet.PageSetup.PrintArea = " IL TUO INTERVALLO DA A1 A U..... "
        Application.Dialogs(xlDialogPrint).Show
        ActiveSheet.PageSetup.PrintArea = ""



  • di Toni70 data: 22/01/2014 19:32:24

    Ciao LucaS,
    in realtà l'area di stampa è variabile e dipende dalle righe che vengono compilate. L'area di stampa parte sempre da A1 e U(n) potrà essere al massimo riga 200, ma può variare.
    La macro dovrebbe selezionare solo l'area compilata e stamparla.

    Grazie



  • di patel data: 22/01/2014 20:40:38

    prova così
     
    Sub a()
    with ActiveSheet
      .PageSetup.PrintArea = .UsedRange.Address
       Application.Dialogs(xlDialogPrint).Show
       .PageSetup.PrintArea = ""
    end with
    End Sub
    






  • di LucaS. (utente non iscritto) data: 22/01/2014 20:55:57

    Quindi in mezzo alle righe compilate potrebbero esserci delle righe vuote...giusto?
    In questo caso dovresti stabilire se esiste una cella che, nel caso la riga fosse da stampare, dovrebbe essere sempre compilata, ad esempio la cella "Giorno/Data" (colonna A). A quel punto puoi usare questo codice che va a nascondere le righe vuote, seleziona come area di stampa l'intervallo A1:U200, propone di stampare, cancella l'area di stampa e infine scopre le righe nascoste.
    Se la tua cella di controllo non fosse sulla colonna A allora dovrai modificare il codice Cells(i, 1) sostituendo l'1 con la tua colonna
     
    Sub stampa()
    For i = 1 To 200
        If Cells(i, 1) = "" Then
            Rows(i).Hidden = True
        End If
    Next
    ActiveSheet.PageSetup.PrintArea = "a1:u200"
    Application.Dialogs(xlDialogPrint).Show
    ActiveSheet.PageSetup.PrintArea = ""
    Rows("1:200").Hidden = False
    End Sub
    



  • di Toni70 data: 22/01/2014 22:29:12

    Ottimo Lucas!

    Funziona alla grande

    Grazie