Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

stampa solo righe attive

422 views
Skip to first unread message

xam99

unread,
Dec 20, 2011, 1:45:10 PM12/20/11
to
Ciao se ho un foglio con impostato un'area di stampa H1:J200 ma non in
tutto questo range le celle sono sempre attive, ma possono variare,
come è possibile impostare l'area? C'è qualche impostazione che lo
faccia oppure c'è bisogno di una macro per non farlo sempre a mano?
Ciao,
xam

eliano

unread,
Dec 20, 2011, 3:15:31 PM12/20/11
to
Mah, sembra una domanda da un milione di eurI (con la "I"). :-))
Per prima cosa bisognerebbe chiarire cosa significa per te: Celle
attive.
Da li, come dice spesso mio fratello, un mondo.:-))
Eliano

xam99

unread,
Dec 20, 2011, 3:42:16 PM12/20/11
to
Ciao per celle attive del range H1:J200 intendo se è inserito un
valore
che può essere un numero - un testo, quindi numeri e lettere.
Nel range possono essere attive o una o anche tutte le celle e per
non regolare a mano l'interruzione chiedo se c'è un'impostazione
automatica.
xam
xam

xam99

unread,
Dec 20, 2011, 4:25:17 PM12/20/11
to
On 20 Dic, 21:15, eliano <falinieli...@virgilio.it> wrote:
Ciao per celle attive intendo celle in cui è inserito un valore
che può essere un numero - un testo o tutti e due.
Nel range H1:J200 le celle attive può essere o solo una
o tutte.
xam

eliano

unread,
Dec 20, 2011, 6:12:02 PM12/20/11
to
On 20 Dic, 22:25, xam99 <xam99...@yahoo.it> wrote:
> Ciao per celle attive intendo celle in cui è inserito un valore
> che può essere un numero - un testo o tutti e due.
> Nel range H1:J200 le celle attive può essere o solo una
> o tutte.
> xam

O solo una O tutte ?? Sperto che ti sia sbagliato nel confonderti.:-))

Prova questa artigianale, scritta in diretta e non testata.

Public Sub prova()
Dim sh As Worksheet, rng As Range, cl As Range
Set sh = ThisWorkbook.Worksheets("Foglio1")
Columns("A:G").EntireColumn.Hidden = True
Columns("L:Z").EntireColumn.Hidden = True
Application.ScreenUpdating = False
Set rng = sh.Range("H1:J200")
For Each cl In rng
If cl.Value = "" And cl.Offset(0, 1) = "" And cl.Offset(0, 2) = ""
Then
cl.Rows.EntireRow.Hidden = True
End If
Next
sh.PrintPreview
MsgBox "Stampa terminata"
Cells.EntireColumn.Hidden = False
Cells.EntireRow.Hidden = False
Application.ScreenUpdating = False
End Sub

Copia la macro in un Modulo Standard, ad esempio Modulo1, cambia gli
eventuali riferimenti con i tuoi e, se dovesse funzionare sostituisci
sh.PrintPreview con sh.Printout.

Eliano

eliano

unread,
Dec 20, 2011, 6:37:49 PM12/20/11
to
A scanso di equivoci, questa istruzione e' su una sola riga:

If cl.Value = "" And cl.Offset(0, 1) = "" And cl.Offset(0, 2) = ""
Then

Eliano

eliano

unread,
Dec 20, 2011, 6:53:57 PM12/20/11
to
> Eliano- Nascondi testo citato
>
> - Mostra testo citato -

Urca, modifica anche questa istruzione:

Application.ScreenUpdating = False
End Sub

in
Application.ScreenUpdating = TRUE
End Sub

Eliano

xam99

unread,
Dec 21, 2011, 1:08:13 PM12/21/11
to
Ciao eliano,
grazie della risposta.
Ho provato la macro ma mi dà errrore:

errore di run time 1004
impossibile impostare la proprietà hidden per la classe range

in questo punto:

Columns("A:G").EntireColumn.Hidden = True '<<<<<

forse non ho impostato bene il range da stampare?
xam

eliano

unread,
Dec 21, 2011, 1:24:57 PM12/21/11
to
> xam- Nascondi testo citato
>
> - Mostra testo citato -

Ciao xam.
Non ho capito cosa c'entra il range da stampare; quella istruzione
tratta proprio quello che non deve essere stampato.:-))
Non so che dirti;
Prova questa versione un po' meno artigianale

eliano

unread,
Dec 21, 2011, 1:29:46 PM12/21/11
to
> xam- Nascondi testo citato
>
> - Mostra testo citato -

partito un colpo

Non so che dirti; con il mio XL2003 funziona.
Prova comunque questa versione, un po' meno artigianale.:-))

Public Sub provadue()
Dim sh As Worksheet, rng As Range, cl As Range
Set sh = ThisWorkbook.Worksheets("Foglio1")
With sh
.Columns("A:G").EntireColumn.Hidden = True
.Columns("L:Z").EntireColumn.Hidden = True
Application.ScreenUpdating = False
Set rng = .Range("H1:J200")
For Each cl In rng
If cl.Value = "" And cl.Offset(0, 1) = "" _
And cl.Offset(0, 2) = "" Then
cl.Rows.EntireRow.Hidden = True
End If
Next
.PrintPreview
MsgBox "Stampa terminata"
.Cells.EntireColumn.Hidden = False
.Cells.EntireRow.Hidden = False
Application.ScreenUpdating = True
End With
End Sub

Facci sapere, con saluti & auguri.
Eliano

xam99

unread,
Dec 21, 2011, 2:18:15 PM12/21/11
to
Ciao contraccambio gli auguri
Ho cambiato il range in:

Set rng = sh.Range("H1:K200")

la macro parte in anteprima e non stampa niente
riclicco nel pulsante assegnato e si blocca tutto,
devo fare il debug per fermare, e trovo il file senza quasi
tutte le celle.
xam

eliano

unread,
Dec 21, 2011, 3:06:25 PM12/21/11
to
Assurdo. se vuoi ti mando il file di prova.
Mandami un msg a falini...@virgilio.it

eliano

unread,
Dec 21, 2011, 3:35:11 PM12/21/11
to
Che significa: Ho cambiato il range??
Se hai cambiato quel range, hai apportato le opportune modifiche alla
macro??

eliano

unread,
Dec 21, 2011, 4:06:53 PM12/21/11
to
Egregio xam,
Ho ricevuto il tuo messaggio con allegato il tuo file di prova che non
ti avevo assolutamente richiesto.
Ti ho quindi inviato il mio file di prova dove potrai verificare che
le due macro proposte funzionano normalmente.
Eliano

xam99

unread,
Dec 21, 2011, 4:18:26 PM12/21/11
to
Scusami anche qui eliano,
non avevo capito di non inviarti il file.
xam

eliano

unread,
Dec 21, 2011, 4:25:16 PM12/21/11
to
Normalmente non apro allegati non richiesti, quindi nessun problema.
Allora, le macro funzionano oppure no ??

eliano

unread,
Dec 21, 2011, 4:57:43 PM12/21/11
to
On 21 Dic, 20:18, xam99 <xam99...@yahoo.it> wrote:
> xam-


Xam, abbi pazienza, ma mi vuoi spiegare come fa una macro che non
cancella niente, che nasconde solo alcune righe per poi farle
riapparire una volta terminata la stampa, a causare un disatro del
genere ???

Tanto per essere chiari, caro MAX, perchè non la smetti di dire
cazzate del genere ? Non servono ne' a te ne' a nessun altro, se non a
far perdere del tempo inutilmente a piu' di uno.

Plinius raccomando' a suo tempo: "strollatelo di mezzo", ma devo dire
che la cosa era ed e' perfettamente giustificata.

Eliano

xam99

unread,
Dec 21, 2011, 5:02:29 PM12/21/11
to
Bè a questo punto, scusate del disturbo.
Vorrà che mi arrangio in qualche maniera.
Scusami.

xam99

unread,
Dec 21, 2011, 4:50:17 PM12/21/11
to
Ho provato il tuo file ma non funziona.
Sia la prima che la seconda macro parte al primo colpo sia
con sh.preview che sh.printout ma al secondo colpo
si blocca tutto e con il debug mi dà errore qui

And cl.Offset(0, 2) = "" Then
cl.Rows.EntireRow.Hidden = True
End If '<<<<<<<<<<<<<<<<<<<<<<<<
Next
sh.PrintPreview
MsgBox "Stampa terminata"

è lo stesso errore che appare nel mio file con le tue macro.
Ciao,
xam

eliano

unread,
Dec 21, 2011, 7:25:02 PM12/21/11
to
Max stai dicendo l'ennesima cazzata.
Visto che insistevi ho scaricato il tuo file ed ho provato la macro
che funziona normalmente come previsto.
Stranamente al pulsante stampa non e' collegata alcuna macro ed ho
richiamato direttamente la macro dopo aver cancellato alcuni valori
nelle celle delle colonne H:J
Quindi o tu hai un office che non funziona normalmente, oppure c'e'
qualcosaltro che non funziona dalle tue parti.
Per me l'argomento e' chiuso.
Eliano

Mauro Gamberini

unread,
Dec 22, 2011, 2:55:28 AM12/22/11
to
"xam99" ha scritto nel messaggio
news:765a7a6a-2784-4c9f...@z19g2000vbe.googlegroups.com...
************************************

Non è chiaro il tuo problema(almeno per me).
Dati questi dati:

H I J
1 A B
2 C
3 D E
4 F

dove X rappresenta celle piene, va bene se li stampiamo
così unendoli:

A B E
D C
F

Faccio presente che questo porta però ad una
stampa disallineata con i dati presenti.

Altrimenti, per favore, spiega meglio il tuo
problema. Grazie.

--
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/

xam99

unread,
Dec 22, 2011, 4:21:31 PM12/22/11
to
On 22 Dic, 08:55, "Mauro Gamberini"
<maurogscRIMUOV...@RIMUOVEREaliceposta.it> wrote:
> "xam99" ha scritto nel messaggionews:765a7a6a-2784-4c9f...@z19g2000vbe.googlegroups.com...
Ciao,
rispondo a mauro e spero di spiegarmi.
Ho un range H1:J200 e in questo range le celle in
cui è scritto qualcosa è

H1:J8
H12:J15
H19:J19
H50:J100
H120:J150
H155:J160
H165:J190
H195:J200

deve stamparmi solo queste righe,
saltando le righe vuote.
Si potrebbe farlo con un filtro, ma il foglio è protetto
è possibile farlo automaticamente?
Ciao
xam
0 new messages