Discussione:
Celle colorate e stampa
(troppo vecchio per rispondere)
NF
2005-07-10 11:11:25 UTC
Permalink
Ciao a tutti,
ho colorato alcune celle che devono essere compilate ma vorrei che non
fossero colorate nella stampa.
E' possibile?

NF
cucchiaino
2005-07-10 16:23:59 UTC
Permalink
Post by NF
Ciao a tutti,
ho colorato alcune celle che devono essere compilate ma vorrei che non
fossero colorate nella stampa.
E' possibile?
Ciao NF.

File > Imposta pagina > sezione Foglio

[x] Bianco e Nero



()-- cucchiaino
Mauro Gamberini
2005-07-11 07:57:19 UTC
Permalink
Post by NF
ho colorato alcune celle che devono essere compilate ma vorrei che non
fossero colorate nella stampa.
E' possibile?
Ho visto la stessa domanda nell'ng:
it.comp.lang.visual-basic
Presumo quindi tu voglia fare questa cosa da codice vba.

Avvia il registratore delle macro e poi
esegui:

File-->Imposta pagina
Linguetta: Foglio
Spunta: Bianco e nero

Se interrompi la registrazione, trovi in un modulo
il seguente codice:

With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.787401575)
.RightMargin = Application.InchesToPoints(0.787401575)
.TopMargin = Application.InchesToPoints(0.984251969)
.BottomMargin = Application.InchesToPoints(0.984251969)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = True
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With

La riga che ti interessa è questa:
.BlackAndWhite = True

Come vedi puoi, da codice, fare i settaggi
che trovi nelle finestre: imposta pagina, intestazione e piè di pagina,
stampa.
Puoi anche eliminare quelli che non ti interessano per avere
codice più snello:

With ActiveSheet.PageSetup
.BlackAndWhite = True
End With

o ancora:

ActiveSheet.PageSetup.BlackAndWhite = True
--
----------------------------
Mauro Gamberini
Tiscali Newsgroup
2005-07-11 11:11:00 UTC
Permalink
Post by Mauro Gamberini
Post by NF
ho colorato alcune celle che devono essere compilate ma vorrei che non
fossero colorate nella stampa.
E' possibile?
it.comp.lang.visual-basic
Presumo quindi tu voglia fare questa cosa da codice vba.
Avvia il registratore delle macro e poi
File-->Imposta pagina
Linguetta: Foglio
Spunta: Bianco e nero
Se interrompi la registrazione, trovi in un modulo
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.787401575)
.RightMargin = Application.InchesToPoints(0.787401575)
.TopMargin = Application.InchesToPoints(0.984251969)
.BottomMargin = Application.InchesToPoints(0.984251969)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = True
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With
.BlackAndWhite = True
Come vedi puoi, da codice, fare i settaggi
che trovi nelle finestre: imposta pagina, intestazione e piè di pagina,
stampa.
Puoi anche eliminare quelli che non ti interessano per avere
With ActiveSheet.PageSetup
.BlackAndWhite = True
End With
ActiveSheet.PageSetup.BlackAndWhite = True
Ti ringrazio per la risposta ma non devo stampare in bianco e nero tutto il
foglio ma solo alcune celle.
Un saluto
NF
Mauro Gamberini
2005-07-11 11:49:42 UTC
Permalink
Post by Tiscali Newsgroup
Ti ringrazio per la risposta ma non devo stampare in bianco e nero tutto il
foglio ma solo alcune celle.
Sicuramente ho letto male io,
però se tu avessi spiegato un po' meglio...
... avremmo perso meno tempo in due.

Le celle hanno tutte lo stesso colore?
Sono contigue?
Contengono una formula particolare?
Sono colorate tramite la formattazione condizionale?

Grazie.
--
----------------------------
Mauro Gamberini
NF
2005-07-11 16:29:04 UTC
Permalink
Post by Mauro Gamberini
Post by Tiscali Newsgroup
Ti ringrazio per la risposta ma non devo stampare in bianco e nero tutto
il
Post by Tiscali Newsgroup
foglio ma solo alcune celle.
Sicuramente ho letto male io,
però se tu avessi spiegato un po' meglio...
... avremmo perso meno tempo in due.
Le celle hanno tutte lo stesso colore?
Sono contigue?
Contengono una formula particolare?
Sono colorate tramite la formattazione condizionale?
Hai ragione sono stato un po' troppo stringato.
Le celle hanno lo stesso colore.
Non sono contugue.
Non contengono formule particolari e non sono colorate tramite la
formattazione condizionale.

In pratica alcune celle sparse per il foglio devono essere compilate con del
testo e per essere riconosciute le devo colorare. Il foglio va poi stampato
ma con le celle in bianco e nero. Non posso stampare tutto il foglio in
bianco e nero perchè contiene immagini e altre celle che devono restare
colorate.

Un saluto
NF
Mauro Gamberini
2005-07-11 18:04:04 UTC
Permalink
Post by NF
Le celle hanno lo stesso colore.
Non sono contugue.
Non contengono formule particolari e non sono colorate tramite la
formattazione condizionale.
Questa macro valuta un Range(qui A1:C4) e se
vi trova celle con sfondo giallo, lo elimina e ne registra l'indirizzo
in una stringa.
Dopo la stampa, rimette a ciascuna cella il colore primitivo.

Public Sub m()

Dim rng As Range
Dim c As Range
Dim s As String

Set rng = Range("A1:C4")

For Each c In rng
If c.Interior.ColorIndex = 6 Then
c.Interior.ColorIndex = xlNone
s = s & c.AddressLocal & ","
End If
Next

Set rng = Nothing

'Codice di stampa

Set rng = Range(Mid(s, 1, Len(s) - 1))

For Each c In rng2
c.Interior.ColorIndex = 6
Next

Set rng = Nothing

End Sub

Cambia i riferimenti con i tuoi.
Vedrai che qualcuno la migliorerà.
--
----------------------------
Mauro Gamberini
Mauro Gamberini
2005-07-11 18:07:56 UTC
Permalink
Post by Mauro Gamberini
For Each c In rng2
c.Interior.ColorIndex = 6
Next
For Each c In rng

sorry
--
----------------------------
Mauro Gamberini
NF
2005-07-12 07:38:00 UTC
Permalink
Post by Mauro Gamberini
Questa macro valuta un Range(qui A1:C4) e se
vi trova celle con sfondo giallo, lo elimina e ne registra l'indirizzo
in una stringa.
Dopo la stampa, rimette a ciascuna cella il colore primitivo.
Public Sub m()
Dim rng As Range
Dim c As Range
Dim s As String
Set rng = Range("A1:C4")
For Each c In rng
If c.Interior.ColorIndex = 6 Then
c.Interior.ColorIndex = xlNone
s = s & c.AddressLocal & ","
End If
Next
Set rng = Nothing
'Codice di stampa
Set rng = Range(Mid(s, 1, Len(s) - 1))
For Each c In rng2
c.Interior.ColorIndex = 6
Next
Set rng = Nothing
End Sub
Cambia i riferimenti con i tuoi.
Vedrai che qualcuno la migliorerà.
Funziona benissimo. Grazie
Sarebbe anche possibile intercettare il pulsante di anteprima di stampa? In
questo modo non dovrei creare un pulsante nuovo per la stampa.

Ciao

Loading...