Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
676to680
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
676to680
676to680
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

hintergrundfarbe

hintergrundfarbe
06.10.2005 12:53:47
flo
hallo
habe folgendes problem:
ich habe in der ganzen arbeitsmappe felder markiert (farbe 19, die nur diese felder bekommen) und möchte, das diese farbe (19) beim ausdruck nicht dabei ist.
s/w ist keine lösung, da andere felder und text farbig sein muss.
es sollte möglich sein, dass ich die mappe oder nur register einzeln ausdrucken kann.
optimal wäre, wenn die farbe vor dem ausdruck verschwindet und nach dem ausdruck wieder kommt.
in einem anderen beitrag hat mir thomas soweit geholfen, das in einem gewissen bereich die farbe verschwindet.
Code dazu:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim c As Range
For Each c In ActiveCell.CurrentRegion
If c.Interior.ColorIndex = 19 Then c.Interior.ColorIndex = xlNone
Next
End Sub

2 probleme habe ich aber noch:
1. gibt es keinen anderen ausdruck wir CurrentRegion, der einfach alles erfasst? wenn ich ein teil die mittlere tabelle markiert habe wird nur dieser verändert, jedoch nicht die tabelle, die weiter oben ist.
2. schon wenn ich auf seitenansicht gehe wird der hintergrund gelöscht und ist danach nicht mehr da. es wäre super, wenn die farbe erst mit dem druckauftrag verschwindet oder ähnliches.
ich hoffe, dass ich das problem halbwegs schildern konnte
mfg flo

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: hintergrundfarbe
06.10.2005 13:53:01
Galenzo
mein Vorschlag: ändere die Farbe für den Farbindex temporär und setze nach dem Drucken die Farbe wieder zurück.
z.B.:
ActiveWorkbook.Colors(38) = RGB(255, 255, 255)
ActiveWindow.SelectedSheets.PrintOut
ActiveWorkbook.ResetColors
Das setzt dir die Farbe "Hellrosa" (im Farb-Dialog unten links) auf weiß, druckt, und setzt anschließend das Farbschema auf Standard zurück.
Viel Erfolg!
AW: hintergrundfarbe
06.10.2005 14:44:05
flo
hallo galenzo,
vielen dank für die schnelle lösung.
das ist genau das, was ist gesucht habe.
bis jetzt hat es überall, wo ich es ausprobiert habe, funktioniert.
danke
mfg flo
Anzeige
AW: hintergrundfarbe
06.10.2005 14:58:29
Galenzo
ein Nachteil ist jedoch, daß mit "ActiveWorkbook.ResetColors" ALLE Änderungen an der Farbpalette rückgängig gemacht werden. Das kannst du umgehen, indem du die Farbe zwischenspeicherst. Dazu wird im folgenden Code die Variable lngColor verwendet:
Dim lngColor as Long
lngColor = ActiveWorkbook.Colors(38)
ActiveWorkbook.Colors(38) = RGB(255, 255, 255)
ActiveWindow.SelectedSheets.PrintOut
ActiveWorkbook.Colors(38) = lngColor
Viel Erfolg!
AW: hintergrundfarbe
06.10.2005 14:59:41
Franz
hallo flo,
Private Sub Workbook_BeforePrint(Cancel As Boolean)
..
End Sub
Dieses Makro wird sowohl bei Seitenvorschau als auch Drucken gestartet.
Wenn du bestimmte Zellen in einer Tabelle vor dem Drucken "entfärben" und anschließend wieder "einfarben" willst , dann solltest du für die farbigen Zellen eine Formatvorlage verwenden (die nur die Farbe der Zellen verändert) und für das Drucken ein eigenes Makro erstellen.
Das Makro kann dann etwa wie folgt aussehen.:
Sub Drucken_ohne_Farbe19()
'Farbe ausblenden
With ActiveWorkbook.Styles("Farbe19")
.IncludeNumber = False
.IncludeFont = False
.IncludeAlignment = False
.IncludeBorder = False
.IncludePatterns = True
.IncludeProtection = False
End With
ActiveWorkbook.Styles("Farbe19").Interior.Pattern = xlNone
' Druckendialog anzeigen
Application.Dialogs(xlDialogPrint).Show
'Farbe einblenden
With ActiveWorkbook.Styles("Farbe19")
.IncludeNumber = False
.IncludeFont = False
.IncludeAlignment = False
.IncludeBorder = False
.IncludePatterns = True
.IncludeProtection = False
End With
With ActiveWorkbook.Styles("Farbe19").Interior
.ColorIndex = 19
.PatternColorIndex = xlAutomatic
.Pattern = xlSolid
End With
End Sub

Alternative:
Du verwendest das beforePrint-Ereignismakro zum Ausblenden der Farbe und schaltest die Farbe mit einem weiteren Makro oder dem Activate-Ereignismakro für die Tabelle wieder ein. Dann schauen die Makros etwa so aus:

Für DieseArbeitsmappe:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Call Farbe19_AUS
End Sub
Für die Tabelle mit den farbigen Zellen:
Private Sub Worksheet_Activate()
Call Farbe19_EIN
End Sub
In einem Modul:
Sub Farbe19_EIN()
'Farbe einblenden
With ActiveWorkbook.Styles("Farbe19")
.IncludeNumber = False
.IncludeFont = False
.IncludeAlignment = False
.IncludeBorder = False
.IncludePatterns = True
.IncludeProtection = False
End With
With ActiveWorkbook.Styles("Farbe19").Interior
.ColorIndex = 19
.PatternColorIndex = xlAutomatic
.Pattern = xlSolid
End With
End Sub
Sub Farbe19_AUS()
'Farbe ausblenden
With ActiveWorkbook.Styles("Farbe19")
.IncludeNumber = False
.IncludeFont = False
.IncludeAlignment = False
.IncludeBorder = False
.IncludePatterns = True
.IncludeProtection = False
End With
ActiveWorkbook.Styles("Farbe19").Interior.Pattern = xlNone
End Sub

Gruß
Franz
Anzeige
AW: hintergrundfarbe
06.10.2005 16:59:49
flo
hallo franz,
vielen dank für deine hilfe.
wie kann ich ihm die farbe bekannt geben? ich weiss ja nur, dass es farbe 19 ist, aber du verwendest das irgendwie als name wie z.b. hier:
With ActiveWorkbook.Styles("Farbe19")
wie kann ich ihm da sagen, welche farbe ich wirklich meine, weil so bringt er mir eine fehlermeldung.
mfg flo
AW: hintergrundfarbe
07.10.2005 15:24:42
Franz
Hallo flo,
Du muss einmal die Formatvorlage erstellen. Anschließend funktioniert das Makro.
Vorgehensweise:
1. formatiere eine Zelle mit der von Dir gewünschten Farbe (hier 19)
2. Menü Format --> Formatvorlage
3. Unter "Formatvorlage" gibts Du den Namen der Vorlage ein z.B. Farbe19
4. Unter "Formatvorlage enthält" entfernst Du alle Häckchen außer bei "Muster"
Dadurch wirkt sich die Formatierung der Formatvorlage nur auf Farbe und Muster aus, aber nicht auf Zahlen, Rahmen etc.
5. OK
Damit ist das Format unter dem Namen gespeichert.
6. Markiere alle Zellen, die die Farbe erhalten sollen.
7. Weise die Formatvorlage den markierten Zellen zu
Entweder über die Symbolleiste (Auswahlfeld, in dem meist Standard steht)
oder via Menü Format --> Formatvorlage (hier Formatvorlage auswählen und OK)
Im Makro wird die Formatvorlage "Farbe19" vor dem Drucken auf Füllfarbe ="Keine" gesetzt.
    ActiveWorkbook.Styles("Farbe19").Interior.Pattern = xlNone
nach dem Drucken wird die Füllfarbe der Formatvorlage "Farbe19" auf 19 gesetzt.
    With ActiveWorkbook.Styles("Farbe19").Interior
.ColorIndex = 19
.PatternColorIndex = xlAutomatic
.Pattern = xlSolid
End With

mfg
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige