Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Hintergrundfarbe der Tabelle nicht mitdrucken





Frage

Hallo, ich brauch mal wieder Eure Hilfe!!! Ich habe mehrere Kleine Tabellen in ein Tabellenblatt erstellt um dort Messergebnisse einzutragen. Jetzt hab ich aus optischen Gründen für den Benutzer die Zeilen grau ausgefüllt die ohne jeglichen Inhalt und die nicht zu den Tabellen gehört. Es ist nur gemacht das die Tabelle besser hervorgehebt wird. Nur das Problem ist jetzt dabei, wenn ich drucken möchte wird der graue Hintergrund auch mitgedruckt. Jetzt meine Frage, kann man irgendwie die Hintergrundfare ändern (nur aus optischen Gründen), aber es wird trotzdem der Hintergrund nicht mit gedrucket und bleibt weiß??? Vielen Dank für Eure Mühe!! Gruß Elhamplo

Antwort 1 von Flupo

Wenn du auf Farben im Ausdruck verzichten kannt, aktiviere die Option "Schwarzweißdruck" in "Datei" - "Seite einrichten..." Registerkarte "Tabelle".

Gruß Flupo

Antwort 2 von nighty

hi all :)

sollten dennoch andere farben mitgedruckt werden,dann so

gruss nighty

Sub Makro1()
Dim zaehler0 As Long
Dim zaehler1 As Integer
ReDim tab1(Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row, Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column)
For zaehler0 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column
If Cells(zaehler0, zaehler1).Interior.ColorIndex <> -4142 Then
tab1(zaehler0, zaehler1) = Cells(zaehler0, zaehler1).Interior.ColorIndex
Cells(zaehler0, zaehler1).Interior.ColorIndex = -4142
End If
Next zaehler1
Next zaehler0

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

For zaehler0 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column
If tab1(zaehler0, zaehler1) > 0 Then Cells(zaehler0, zaehler1).Interior.ColorIndex = tab1(zaehler0, zaehler1)
Next zaehler1
Next zaehler0
End Sub

Antwort 3 von Elhamplo

Hallo,

@ Flupo

Danke für den Tipp. Doch die Überschriften solten doch farbig ausgedruckt werden.

Danke!!!

@ nighty

Danke für den Code. Das Problem dabei ist, das alle Füllfarben zurückgesetzt werden auch die in den Überschriften.

Kann man nicht sagen alle Zellen mit der Farbe Grau (helstes Grau, als Füllfarbe) werden vor dem Drucken weiß und anschließend wieder grau?? So im Prinziep wie im Code??

Auchwollte ich dieses dann auch Anwenden in Dateien wo ich verschiedene Tabellen untereinader habe und Leerzeilen dazwischen.

Ich danke für die Mühe die Du Dir (Ihr) machst!!!

Gruß

Elhamplo

Antwort 4 von nighty

hi all :)

dann so,der hellste grauton farbindex 15 wird beruecksichtigt

gruss nighty

Sub Makro1()
Dim zaehler0 As Long
Dim zaehler1 As Integer
ReDim tab1(Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row, Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column)
For zaehler0 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column
If Cells(zaehler0, zaehler1).Interior.ColorIndex = 15 Then
tab1(zaehler0, zaehler1) = Cells(zaehler0, zaehler1).Interior.ColorIndex
Cells(zaehler0, zaehler1).Interior.ColorIndex = -4142
End If
Next zaehler1
Next zaehler0
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
For zaehler0 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column
If tab1(zaehler0, zaehler1) = 15 Then Cells(zaehler0, zaehler1).Interior.ColorIndex = tab1(zaehler0, zaehler1)
Next zaehler1
Next zaehler0
End Sub

Antwort 5 von nighty

hi all :)

bzw mit bereichsangabenerklärung

gruss nighty

Sub Makro1()
Dim zaehler0 As Long
Dim zaehler1 As Integer

zellenanzahl des unten angegebenen bereiches=Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row, Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column

ReDim tab1(Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row, Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column)

1 = Anfang senkrechte

Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row = Ende senkrechte

For zaehler0 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row

1 = Anfang waagerechte

Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column =Ende waagerechte


For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column
If Cells(zaehler0, zaehler1).Interior.ColorIndex = 15 Then
tab1(zaehler0, zaehler1) = Cells(zaehler0, zaehler1).Interior.ColorIndex
Cells(zaehler0, zaehler1).Interior.ColorIndex = -4142
End If
Next zaehler1
Next zaehler0
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

wie oben beschrieben

For zaehler0 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row

wie oben beschrieben

For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column
If tab1(zaehler0, zaehler1) = 15 Then Cells(zaehler0, zaehler1).Interior.ColorIndex = tab1(zaehler0, zaehler1)
Next zaehler1
Next zaehler0
End Sub

Antwort 6 von Elhamplo

Hallo nighty,

der erste Code fust Super, danke!!!!!

Den zweiten versteh ich noch nicht so ganz, klappt irgendwie auch nicht, bekomm immer Fehlermeldungen und die Zeilen sind rot Makiert. Keine Ahnung wo ich den Fehler gemacht habe.

Danke!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Gruß

Elhamplo

Antwort 7 von nighty

hi Elhamplo

wenn es dich interessieren sollte,hier hab mir mehr muehe gegeben,rem zeilen sind kommentare

gruss nighty

Sub Makro1()
Rem deklarierung
Dim zaehler0 As Long
Dim zaehler1 As Integer
Dim SenkrechteAnfang As Long
Dim SenkrechteEnde As Long
Dim WaagerechteAnfang As Integer
Dim WaagerechteEnde As Integer
Rem angenommen es sind 20 felder,daher 4*5=20
Rem in diesem beispiel E4 als linke obere ecke bis I9 als rechte untere ecke als bereich definiert
Senkrechte = 4
Waagerechte = 5
Rem dimensionierung eines 2 dimensionalen feldes,wobei feld index 0 nicht genutzt wird
ReDim tab1(Senkrechte, Waagerechte)
Rem zuweisung des bereiches bzw 4*5 felder bzw zellen
SenkrechteAnfang = 4
SenkrechteEnde = 7
WaagerechteAnfang = 5
WaagerechteEnde = 9
For zaehler0 = SenkrechteAnfang To SenkrechteEnde
For zaehler1 = WaagerechteAnfang To WaagerechteEnde
Rem abfrage auf hintergrundfarbindex 15 bzw statt =15 <>-4142 auf beliebige farben
If Cells(zaehler0, zaehler1).Interior.ColorIndex = 15 Then
Rem bei der zuweisung des array ist
Rem -3 bzw -4 bei dem array um auf 1 als startwert zu kommen
tab1(zaehler0 - 3, zaehler1 - 4) = Cells(zaehler0, zaehler1).Interior.ColorIndex
Cells(zaehler0, zaehler1).Interior.ColorIndex = -4142
End If
Next zaehler1
Next zaehler0
Rem druckbefehl
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Rem weitere schleife zum zuruecksetzen des farbhintergrundes der im zwei dimensionalen array gespeicherten werte
For zaehler0 = SenkrechteAnfang To SenkrechteEnde
For zaehler1 = WaagerechteAnfang To WaagerechteEnde
Rem -3 bzw -4 bei dem array um auf 1 als startwert zu kommen
If tab1(zaehler0 - 3, zaehler1 - 4) > 0 Then Cells(zaehler0, zaehler1).Interior.ColorIndex = tab1(zaehler0 - 3, zaehler1 - 4)
Next zaehler1
Next zaehler0
End Sub

Antwort 8 von Elhamplo

Hallo,

sorry, kam jetzt erst dazu alles auszuprobieren. Super, danke für die gute Beschreibung des Codes. Der funst Super!!!

Vielen, vielen Dank für die Mühe die Du Dir gemacht hast.

Gruß

Elhamplo

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: