Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Macro che parte dopo la stampa

Ultimo Aggiornamento: 20/04/2015 00:01
Post: 65
Registrato il: 10/06/2008
Città: BRESCIA
Età: 47
Utente Junior
Excel 2019
OFFLINE
19/04/2015 12:15

Salve a tutti.
Chiedo aiuto per un problema per il quale non ho trovato una soluzione neanche cercando in giro in internet.

Ho un foglio di excel con una tabella che con 'before print' faccio nascondere alcune righe (in modo che non vengano stampate), ma poi, dopo la stampa vorrei che diventassero di nuovo visibili. Non posso risolvere impostando l'area di stampa perché le righe sono in mezzo.
Servirebbe una macro "after print" insomma, che non esiste.
Si può risolvere in qualche modo facendo una macro per la stampa e collegarla ad un pulsante, ma vorrei evitare questa soluzione.

Grazie
[Modificato da Vpre 19/04/2015 12:17]
_________________
Excel 2019
Post: 1.772
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
19/04/2015 18:51

Buona sera, Vpre;
non è il massimo, ma, in attesa di una soluzione definitiva ...
Ipotizzando che le righe da nascondere in stampa siano:
- 4÷8
Potresti pensare ad una cosa di questo tipo:
Option Explicit

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Range("A4:A8").EntireRow.Hidden = True
    [A1].Select
End Sub

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Range("A4:A8").EntireRow.Hidden = False
    Cells(Target.Row + 1, 1).Select
End Sub

Dopo aver eseguito la stampa, basterebbe un "Doppio Click".
Non è automatico al 100%, ma, forse, potrebbe essere un compromesso accettabile.


A disposizione.

Buona serata.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 65
Registrato il: 10/06/2008
Città: BRESCIA
Età: 47
Utente Junior
Excel 2019
OFFLINE
19/04/2015 19:12

E' una soluzione, ma volevo che tutto si svolgesse in automatico senza dare compiti da fare, perché il file non lo userò io ma altre persone. Un altra soluzione sarebbe usare la funzione SheetActivate perché il file ha diversi fogli. Basta selezionare un altro foglio e poi ritornare al foglio di prima, ma, vorrei che le righe si scoprissero in automatico dopo la stampa.
_________________
Excel 2019
Post: 1.773
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
19/04/2015 19:53

Buona sera, Vpre;
anche questo non è il massimo, ma, solo un alternativa.
Option Explicit

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Stampa
End Sub

In un modulo:
Option Explicit

Sub Stampa()
    Range("A4:A8").EntireRow.Hidden = True
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    Range("A4:A8").EntireRow.Hidden = False
End Sub


Il problema è che, all'Operatore si presenta un messaggio del tipo:
- Vedi immagine allegata
e dovrà necessariamente premere:
- Annulla
Ma, escludendo l'Evento Workbook_BeforePrint, un bel "pulsantone" STAMPA che richiama direttamente il Codice Stampa, non potrebbe creare meno problemi?


A disposizione.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 632
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Senior
Excel 365
OFFLINE
19/04/2015 20:00

Ciao Vpre

Innanzitutto consentimi di salutare Giuseppe.

Potresti provare con la sottostante macro

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel = True
Rows("2:3").Hidden = True <---- da modificare con il tuo range
With ActiveSheet
    Application.EnableEvents = False
    .PrintOut
    Rows("2:3").Hidden = False <---- da modificare con il tuo range
    Application.EnableEvents = True
End With
End Sub

[Modificato da alfrimpa 20/04/2015 15:08]

Alfredo
Post: 66
Registrato il: 10/06/2008
Città: BRESCIA
Età: 47
Utente Junior
Excel 2019
OFFLINE
20/04/2015 00:01

Funziona!

Grazie mille
_________________
Excel 2019
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 17:01. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com