Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: gewisse Zellen anzeigen aber nicht Drucken

gewisse Zellen anzeigen aber nicht Drucken
Marc
Hallo Excel Freunde
Ich habe hier eine Excel Tabelle, wo gewisse Zellen nicht gedruckt werden sollen. In der Tabelle sollen sie jedoch angezeigt werden. Die Tabelle hat in denn Zellen auch verschiedene Farben(hintergrund).
Nun habe ich einen Druckbereich von A51:H51 gemacht, und die Zellen die nicht geduckt werden sollen, habe ich mit "rechter Maustaste" - "Zellen formatieren" - "Ausgeblendet" gemacht. Zudem noch denn Blattschutz aktiviert.
Danach habe ich denn Blattschutz gemacht.
Jetzt Druckt es mir immer noch alles aus, sogar die Zellen die ich als "Ausgeblendet" markiert habe.
Gibt es irgend sonst eine Möglichkeit?
Vielleicht via VBA?
Bitte euch um Hilfe.
PS:
Folgende Zellen sollen einfach nur "weiss" ohne Inhalt geduckt werden.
B12:G12, B13:G13, B32:G32, B33:G33, B34:G34, B35:G35, B36:G36
Anzeige
AW: gewisse Zellen anzeigen aber nicht Drucken
26.04.2011 23:56:43
Marc
Ich habe noch folgendes Versucht.
Habe das Makro gefunden, und habe Probeweise es nur mit einer Zelle ausprobiert, die nicht Farblich hinterlegt ist.
Das Makro habe ich als Modul eingefügt.
Jedoch geht dies auch nicht.
Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
'Code von Uwe Küstner
If ActiveSheet.Name = "Tabelle3" Then 'Tabellennamen anpassen
On Error GoTo Ende
Application.EnableEvents = False
Cancel = True
With ActiveSheet
Range("G13").NumberFormat = ";;;"
.PrintOut
Range("G13").NumberFormat = "General"
End With
End If
Ende:
Application.EnableEvents = True
End Sub
In der Tabelle ist nur dieses Makro vorhanden, andere Makros sind nicht aufgeführt.
Anzeige
AW: gewisse Zellen anzeigen aber nicht Drucken
27.04.2011 02:17:47
fcs
Hallo Marc,
dies ist ein Ereignismakro, das sich auf die Arbeitsmappe (Workbook) bezieht. Damit es vor dem Drucken automatisch gestartet wird, muss es im VBA-Editor unter "DieseArbeitsmappe" bzw. "ThisWorkbook" eingefügt werden.
Nachfolgend mit Anpassung für deine Bereiche.
Falls die Zellen besondere Zahlen/Datumsformate haben. Dann muss du den Zellbereichen nach dem Drucken statt "General" (deutsch=Standard) ein entsprechendes Zahlen/Datumsformat zuweisen.
Gruß
Franz
Private Sub Workbook_BeforePrint(Cancel As Boolean)
'Code von Uwe Küstner
If ActiveSheet.Name = "Tabelle3" Then 'Tabellennamen anpassen
On Error GoTo Ende
Application.EnableEvents = False
Cancel = True
With ActiveSheet
Range("B12:G13").NumberFormat = ";;;"
Range("B32:G36").NumberFormat = ";;;"
.PrintOut
Range("B12:G13").NumberFormat = "General" 'oder z.B. auch "#,##0.00"
Range("B32:G36").NumberFormat = "General"
End With
End If
Ende:
Application.EnableEvents = True
End Sub

Anzeige
AW: gewisse Zellen anzeigen aber nicht Drucken
27.04.2011 03:18:32
Marc
hallo fcs
Vielen Dank für deine späte Hilfe. Sehr flott von dir.
Endlich ein Lichtblick, suche seit Stunden eine Lösung.
Habe das Makro natürlich gleich ausprobiert, aber ich brinnge es nicht hin. Kannst du mir mal bitte in meine Tabbele bzw. ins Makro schauen, und mir sagen ob ich das so richtig gemacht habe?
Denn es druckt mir immernoch alles aus. Hat also bis jetzt kein Einfluss.
Habe mal die Tabelle hier hochgeladen: https://www.herber.de/bbs/user/74554.xlsm
Danke dir gruss
marc
Anzeige
AW: gewisse Zellen anzeigen aber nicht Drucken
27.04.2011 09:07:12
robert
Hi Marc,
2 Punkte:
1.du hast nicht genau gelesen, was franz geschrieben hat:
in " DieseArbeitsmappe " gehört das makro.
2. dein blatt offerte ist geschützt
probier diesen leicht modifizierten code aus
gruß
robert
Private Sub Workbook_BeforePrint(Cancel As Boolean)
'Code von Uwe Küstner
If ActiveSheet.Name = "Offerte" Then 'Tabellennamen anpassen
On Error GoTo Ende
Application.EnableEvents = False
Cancel = True
With ActiveSheet
.Unprotect
Range("B11:G12").NumberFormat = ";;;"
Range("B31:G35").NumberFormat = ";;;"
.PrintPreview
Range("B11:G12").NumberFormat = "General" 'oder z.B. auch "#,##0.00"
Range("B31:G35").NumberFormat = "General"
.Protect
End With
End If
Ende:
Application.EnableEvents = True
End Sub

Anzeige
AW: gewisse Zellen anzeigen aber nicht Drucken
27.04.2011 11:52:19
Marc
Super vielen vielen Dank, jetzt geht es.
Diese "nicht durcken" Zellen B11:G12 und B31:G35 sind ja noch Farbig ausgefüllt. Gibt es eine Möglichkeit, das die mir beim Drucken Wiess bleibt. Also die Farbe in denn Zellen soll auch nicht gedruckt werden.
Da ja noch ein Logo hinein kommt, ist schwarz-Weiss-Drucken auch keine Option.
Gruss Marc
Anzeige
meinst Du so........ Gruß
27.04.2011 12:17:15
robert

Private Sub Workbook_BeforePrint(Cancel As Boolean)
'Code von Uwe Küstner
If ActiveSheet.Name = "Offerte" Then 'Tabellennamen anpassen
On Error GoTo Ende
Application.EnableEvents = False
Cancel = True
With ActiveSheet
.Unprotect
Range("B11:G12").NumberFormat = ";;;"
Range("B31:G35").NumberFormat = ";;;"
Range("B11:G12").Interior.ColorIndex = xlNone
Range("B31:G35").Interior.ColorIndex = xlNone
.PrintPreview
Range("B11:G12").NumberFormat = "General" 'oder z.B. auch "#,##0.00"
Range("B31:G35").NumberFormat = "General"
.Protect
End With
End If
Ende:
Application.EnableEvents = True
End Sub

Anzeige
AW: Ja.. gibt aber noch Probleme ....
27.04.2011 17:29:50
Marc
Nochmals recht herzlichen Dank für Eure Super Hilfe.
Auf anhieb ging das Makro mit der Datei die ich hier hochgeladen habe. Ohne Probleme.
Was mir jetzt aufgefallen ist, dass es nach dem Drucken, dass Formular nicht mehr in die Ausgangs-Ansicht über ging. Es zeigte mir nach dem Drucken die Zellen nur noch ausgeblendet an. Ich könnte also so nicht mehr weiterarbeiten. Nun dachte ich, wäre nicht so schlimm, mache das Excel einfach wieder neu auf.
Nun habe jetzt das Formular noch ein wenig verschönnert, und jetzt bekomme ich immer ein:
Laufzeitfehler 50290
Die Methode `EnableEvents` für das Objekt`_Application`ist fehlgeschalgen
Und danach stürzt das ganze Excel ab.
Was ich noch geändert habe, ist die Währung auf "Benutzerdefiniert" gestellt d.h. unter "Zellen formatieren" unter "Zahl" "Beutzerdefiniert" eingestellt:
"CHF"* 0.00
"EUR"* 0.00
Habe im Makro dann es mit verschiedenen Möglichkeiten wie beschrieben auf "#,##0.00" usw. probiert.
Jetzt klappt absolut nichts mehr. Habe sogar alles wieder auf die Ursprüngliche Version zurückgestellt, aber beim Drucken stürtzt mir Excel immer noch ab.
Hier habe ich nun mal die Endgültige Excel-Tabelle: https://www.herber.de/bbs/user/74562.xlsm
Irgendwo ist der Wurm drin. Aber wahrscheinlich liegt es jetzt nur noch an denn Formatierten Zellen (Währung).
Gruss Marc
Anzeige
AW: Wieso gehts bei mir nicht...
28.04.2011 14:58:31
Marc
Habe jetzt nochmals alles ganz genau angeschaut und das Makro für die engültige Tabelle erweitert.
Folgendes Makro habe ich jetzt:
In "DieseArbeitsmappe"

Private Sub Workbook_Open()
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
'Code von Uwe Küstner
If ActiveSheet.Name = "Offerte" Then 'Tabellennamen anpassen
On Error GoTo Ende
Application.EnableEvents = False
Cancel = True
With ActiveSheet
.Unprotect
'      Range("B11:G12").NumberFormat = ";;;"
'      Range("B31:G35").NumberFormat = ";;;"
Range("B11:G12").Font.ColorIndex = 2
Range("B28:G32").Font.ColorIndex = 2
Range("B12").Interior.ColorIndex = xlNone
Range("D11:G12").Interior.ColorIndex = xlNone
Range("B29:G29").Interior.ColorIndex = xlNone
Range("C12").Interior.ColorIndex = xlNone
Range("B30:G32").Interior.ColorIndex = xlNone
Range("B28:G28").Interior.ColorIndex = xlNone
.PrintPreview
'      Range("B11:G12").NumberFormat = "General" 'oder z.B. auch "#,##0.00"
'      Range("B31:G35").NumberFormat = "General"
Range("D11:G11").Font.ColorIndex = 1
Range("B12:G12").Font.ColorIndex = 1
Range("B12").Interior.ColorIndex = 44
Range("D11:G12").Interior.ColorIndex = 44
Range("B29:G29").Interior.ColorIndex = 44
Range("C12").Interior.ColorIndex = 36
Range("B30:G32").Interior.ColorIndex = 36
Range("B28:G28").Interior.ColorIndex = 3
.Protect
End With
End If
Ende:
Application.EnableEvents = True
End Sub

und im Modul1:

Option Explicit
Sub Makro1()
' Makro1 Makro
' Makro am 27.04.2011 von robert aufgezeichnet
Range("B11:G32").Select
ActiveSheet.Unprotect
Selection.NumberFormat = ";;;"
End Sub

Ich erhalte jetzt immernoch diese
Laufzeitfehler 50290
Die Methode `EnableEvents` für das Objekt`_Application`ist fehlgeschalgen
Wo ist hier der Fehler?
Bin jetzt schon gute 2 Tage daran, und weiss wirklich nicht mehr weiter.
meine Datei hier geht nicht: https://www.herber.de/bbs/user/74588.xlsm
Die letzte Datei von robert am 27.04.2011 18:13:37 geht.
Aber wieso meine Datei nicht?
Bitte euch höfflichst nochmals um Rat.
Anzeige
AW: Wieso gehts bei mir nicht...
28.04.2011 17:19:38
Marc
Habe das Problem Entdeckt !!!
Makro geht!
Das Problem ist, sobald ich oben ein Logo als Grafik in die Excel Tabelle einfügen, erhalte ich diese Fehlermeldung.
Die Grafik ist ja wirklich nicht gross, ca 5kb.
Wenn ich die Grafik in die Kopfzeile setze, geht das Makro auch. Aber wenn die Grafik in der Linken oberen Kopfzeile ist, ist immer sie einfach zu weit rechts. Die Kopfzeile müsste mehr nach Links. Geht aber auch nicht.
Kennt jemand das Problem?
Könnte man das Makro noch etwas, dass es trotzdem mit dem Logo (normal eingefügt) geht?

Private Sub Workbook_Open()
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
'Code von Uwe Küstner
If ActiveSheet.Name = "Offerte" Then 'Tabellennamen anpassen
On Error GoTo Ende
Application.EnableEvents = False
Cancel = True
With ActiveSheet
.Unprotect
'      Range("B11:G12").NumberFormat = ";;;"
'      Range("B31:G35").NumberFormat = ";;;"
Range("B11:G12").Font.ColorIndex = 2
Range("B31:G35").Font.ColorIndex = 2
Range("B12").Interior.ColorIndex = xlNone
Range("C12").Interior.ColorIndex = xlNone
Range("D11:G12").Interior.ColorIndex = xlNone
Range("B31:G31").Interior.ColorIndex = xlNone
Range("B32:G32").Interior.ColorIndex = xlNone
Range("B33:G35").Interior.ColorIndex = xlNone
.PrintPreview
'      Range("B11:G12").NumberFormat = "General" 'oder z.B. auch "#,##0.00"
'      Range("B31:G35").NumberFormat = "General"
Range("B11:G12").Font.ColorIndex = 1
Range("B31:G35").Font.ColorIndex = 1
Range("B12").Interior.ColorIndex = 44
Range("C12").Interior.ColorIndex = 36
Range("D11:G12").Interior.ColorIndex = 44
Range("B31:G31").Interior.ColorIndex = 37
Range("B32:G32").Interior.ColorIndex = 44
Range("B33:G35").Interior.ColorIndex = 36
.Protect
End With
End If
Ende:
Application.EnableEvents = True
End Sub

meine Tabelle: https://www.herber.de/bbs/user/74591.xlsm
Anzeige
AW: Wieso gehts bei mir nicht...
29.04.2011 10:21:08
fcs
Hallo Marc,
ich hab deine aktuelle Datei als auch den Vorgänger bei mir unter Windows Vista + Excel 2007 getestet. Beide Dateien konnte ich problemlos öffnen und die Druckausgabe funktionierte auch ohne Fehlermeldung.
Warum jetzt das Einfügen eines Logos hier Probleme macht ?
Tritt das Problem bei allen 3 Logos auf, die du eingefügt hast? Oder davon, wo du es einfügst.
Das einzige was mir noch aufgefallen ist, du verwendest extreme Randeinstellungen für das Drucken. Bei mir mit einem HP Lj 1000 werden (oberer Rand: 3 mm, Kopfzeile: 8 mm) angezeigt. Ich wüßte aber nicht, dass das dieses Problem verursacht.
Gruß
Franz
Anzeige
AW: Danke ... Feedback ...
29.04.2011 11:43:24
Marc
Hallo alle zusammen
Als erstes möchte ich hier ein riesen Dankeschön loswerden. Ist einfach toll.
Nun letztendlich konnte ich es mit den Randeinstellungen doch noch lösen, und ich konnte wenigsten das obere (Haupt)Logo in die Kopfzeile einfügen. Die beiden anderen kleinen Logos habe ich jetzt noch nicht eingefügt, da ich das Formular für dieses Wochenende für die grosse Ausstellung (Messe) brauche. Werde es aber danach noch machen, da ich sicher das Formular im Alltag auch gebrauchen werde.
Beim Einfügen von denn Logos bin ich wie folgt vorgegangen.
Zelle B1:C1(Zellen sind verbunden) angeklickt -- Einfügen -- Grafik -- danach das Bild ausgewählt.
Gibt es denn noch eine andere Möglichkeit ein Bild einzufügen?
Bei welchem der Logos (*.jpg) dies auftritt kann ich noch nicht sagen. Werde es dann noch mit jedem einzelnen Logo mal ausprobieren.
freundlicher Gruss
Marc
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Gewisse Zellen in Excel anzeigen, aber nicht drucken


Schritt-für-Schritt-Anleitung

  1. Gehe zu den Zellen, die Du nicht drucken möchtest. Markiere die Zellen (z.B. B12:G12), die nicht im Druck erscheinen sollen.

  2. Zellen formatieren: Klicke mit der rechten Maustaste auf die markierten Zellen und wähle „Zellen formatieren“. Setze im Reiter „Zahlen“ das Format auf „;;;", um den Inhalt nicht drucken zu lassen.

  3. Blattschutz aktivieren: Aktiviere den Blattschutz, um sicherzustellen, dass die Formatierungen nicht versehentlich geändert werden.

  4. Druckbereich festlegen: Setze den Druckbereich auf die gewünschten Zellen, indem Du die Zellen A51:H51 auswählst und dann über „Seitenlayout“ > „Druckbereich“ > „Druckbereich festlegen“ gehst.

  5. VBA-Makro erstellen: Öffne den VBA-Editor (ALT + F11) und füge den folgenden Code in das Modul „DieseArbeitsmappe“ ein:

    Private Sub Workbook_BeforePrint(Cancel As Boolean)
       If ActiveSheet.Name = "DeinTabellenname" Then ' Tabellennamen anpassen
           Application.EnableEvents = False
           Cancel = True
           With ActiveSheet
               Range("B12:G12").NumberFormat = ";;;"
               .PrintOut
               Range("B12:G12").NumberFormat = "General"
           End With
       End If
    End Sub
  6. Testen: Versuche, das Dokument zu drucken und überprüfe, ob die Zellen wie gewünscht nicht gedruckt werden.


Häufige Fehler und Lösungen

  • Fehler: Zellen werden trotzdem gedruckt.

    • Überprüfe, ob das Makro im richtigen Modul eingefügt ist (muss in „DieseArbeitsmappe“ sein).
  • Fehler: Laufzeitfehler 50290.

    • Dieser Fehler kann auftreten, wenn das Makro auf eine geschützte Arbeitsmappe zugreifen möchte. Stelle sicher, dass der Blattschutz vor dem Drucken entfernt wird.
  • Fehler: Formatierung wird nicht übernommen.

    • Achte darauf, dass die Formatierung nach dem Drucken zurückgesetzt wird, um sicherzustellen, dass die Zellen wieder korrekt angezeigt werden.

Alternative Methoden

  • Drucken ohne Farbfüllung: Du kannst die Hintergrundfarbe der Zellen vor dem Drucken auf „Keine Farbe“ setzen, um sicherzustellen, dass die Farbe nicht gedruckt wird. Füge folgenden Code in das Makro ein:

    Range("B12:G12").Interior.ColorIndex = xlNone
  • Verwendung von Druckoptionen: Gehe zu „Datei“ > „Drucken“ und wähle „Druckeinstellungen“, um spezifische Optionen wie „Drucklinien nicht anzeigen“ zu aktivieren.


Praktische Beispiele

  • Beispiel für ein einfaches Makro: Dieses Makro blendet den Inhalt bestimmter Zellen beim Drucken aus:

    Private Sub Workbook_BeforePrint(Cancel As Boolean)
      Application.EnableEvents = False
      Cancel = True
      With ActiveSheet
          Range("B12:G12").NumberFormat = ";;;"
          .PrintOut
          Range("B12:G12").NumberFormat = "General"
      End With
      Application.EnableEvents = True
    End Sub
  • Beispiel für das Ausblenden von Zeilen: Um ganze Zeilen beim Drucken auszublenden, kannst Du die Zeilen ebenfalls im Makro anpassen:

    Rows("12:13").Hidden = True

Tipps für Profis

  • Verwende Kommentare: Setze Kommentare in das Makro, um zu dokumentieren, was jeder Abschnitt des Codes bewirkt. Dies erleichtert die spätere Anpassung.

  • Testen in verschiedenen Excel-Versionen: Teste die Makros in unterschiedlichen Excel-Versionen, um sicherzustellen, dass sie überall funktionieren.

  • Backup der Arbeitsmappe: Erstelle vor größeren Änderungen immer ein Backup der Excel-Datei, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Frage Wie kann ich einzelne Zellen nicht drucken?

Antwort: Du kannst die Zellen formatieren und das Makro verwenden, um sicherzustellen, dass der Inhalt nicht gedruckt wird.

2. Frage Was kann ich tun, wenn Excel beim Drucken abstürzt?

Antwort: Überprüfe die Blattschutz-Einstellungen und die Formatierungen der Zellen. Manchmal kann auch das Hinzufügen von Grafiken in Excel zu Problemen führen.

3. Frage Wie kann ich sicherstellen, dass keine Drucklinien angezeigt werden?

Antwort: Gehe zu „Seitenlayout“ und deaktiviere die Option „Drucklinien anzeigen“.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige