HERBERS Excel-Forum - das Archiv
Druckbefehl soll Löschen einer Zelle auslösen
Juergen

Hallo,
habe schon öfters hilfreiche Antworten in diesem Forum gefunden und versuche es nun selbst mit einer Frage.
Ich habe ein "Arbeitblatt", welches mir über bedingte Formatierung Lösungen ein- und ausblenden kann. Das Blatt soll gedruckt werden können, aber nur ohne Lösung.
Eine Lösung wird z.B. eingeblendet, indem in den Zellen H33 und H48 ein "J" ("j" = Lösung anzeigen)geschrieben wird. Die bedingte Formatierung prüft die Zellen und schreibt die Inhalte und Berechnungen in schwarz - vorher weiß. (das war nur zur Info)
2 Lösungen sind aus meiner Sicht denkbar:
1. Zelle H33, H48 werden bei Ausführung des Druckbefehls gelöscht
2. Denkbar wäre auch, wenn bei Druckbefehl alle Zellen mit einem einfachen "J" als Inhalt gelöscht werden (Arbeitsblatt A1:H60) - wäre für mich ideal, da ich das Makro so universell einsetzen kann und nichts mehr anpassen muss.
Ideen?
Danke, Jürgen

AW: Druckbefehl soll Löschen einer Zelle auslösen
Michael

Hallo Jürgen!
zB so:

Variante 1:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Bereich As Range
'Variante 1, H33 und H48 werden gelöscht
'Tabellenname "Arbeitsblatt" ggf. anpassen
Set Bereich = Worksheets("Arbeitsblatt").Range("H33, H48")
Bereich.ClearContents
End Sub
Variante 2:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Bereich As Range
'Variante 2, A1:H60 wird gelöscht
'Tabellenname "Arbeitsblatt" ggf. anpassen
Set Bereich = Worksheets("Arbeitsblatt").Range("A1:H60")
Bereich.ClearContents
End Sub
Beide Varianten müssen in das Codeblatt der Arbeitsmappe: bei geöffneter Arbeitsmappe Alt + F11, DoKlick auf "DieseArbeitsmappe", den gewünschten Code dort einfügen. Achtung: Deinen Tabellenblattnamen habe ich jetzt mit "Arbeitsblatt" angenommen - ggf. ändern.
LG
Michael

AW: Druckbefehl soll Löschen einer Zelle auslösen
Juergen

Klasse, Variante 1 klappt prima. Damit kann ich schon arbeiten.
Kannst Du mir noch einen Tipp geben bzgl. Variante 2. So ausgeführt, würden ja alle Inhalte gelöscht werden. Gibt es eine Option nur Zellen bzw. deren Inhalte zu löschen, in denen ein einzelnes "J" eingetragen ist?
Super Forum!!! Danke nochmal!

AW: Variante 2 ergänzt
Michael

Hallo Jürgen!
Sorry, hab ich überlesen. Hier die ergänzte Variante 2:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Bereich As Range
Dim Zelle As Range
Set Bereich = Worksheets("Arbeitsblatt").Range("A1:H60")
For Each Zelle In Bereich
If Zelle.Value = "J" Then
Zelle.ClearContents
End If
Next
End Sub
Danke für Deine Rückmeldung!
LG
Michael

AW: Variante 2 ergänzt
Juergen

Super ... vielen Dank.
Jürgen

AW:Gerne, Danke für die Rückmeldung, owT
Michael

.

geht nicht.......
selli

hallo jürgen,
....denn, ein "druckbefehl" löst einen druck aus.
löschen geht nur mit einem "löschbefehl".
gruß
selli

Druckbefehl soll Löschen einer Zelle auslösen
Juergen

Hallo,
habe schon öfters hilfreiche Antworten in diesem Forum gefunden und versuche es nun selbst mit einer Frage.
Ich habe ein "Arbeitblatt", welches mir über bedingte Formatierung Lösungen ein- und ausblenden kann. Das Blatt soll gedruckt werden können, aber nur ohne Lösung.
Eine Lösung wird z.B. eingeblendet, indem in den Zellen H33 und H48 ein "J" ("j" = Lösung anzeigen)geschrieben wird. Die bedingte Formatierung prüft die Zellen und schreibt die Inhalte und Berechnungen in schwarz - vorher weiß. (das war nur zur Info)
2 Lösungen sind aus meiner Sicht denkbar:
1. Zelle H33, H48 werden bei Ausführung des Druckbefehls gelöscht
2. Denkbar wäre auch, wenn bei Druckbefehl alle Zellen mit einem einfachen "J" als Inhalt gelöscht werden (Arbeitsblatt A1:H60) - wäre für mich ideal, da ich das Makro so universell einsetzen kann und nichts mehr anpassen muss.
Ideen?
Danke, Jürgen

AW: Druckbefehl soll Löschen einer Zelle auslösen
Michael

Hallo Jürgen!
zB so:

Variante 1:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Bereich As Range
'Variante 1, H33 und H48 werden gelöscht
'Tabellenname "Arbeitsblatt" ggf. anpassen
Set Bereich = Worksheets("Arbeitsblatt").Range("H33, H48")
Bereich.ClearContents
End Sub
Variante 2:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Bereich As Range
'Variante 2, A1:H60 wird gelöscht
'Tabellenname "Arbeitsblatt" ggf. anpassen
Set Bereich = Worksheets("Arbeitsblatt").Range("A1:H60")
Bereich.ClearContents
End Sub
Beide Varianten müssen in das Codeblatt der Arbeitsmappe: bei geöffneter Arbeitsmappe Alt + F11, DoKlick auf "DieseArbeitsmappe", den gewünschten Code dort einfügen. Achtung: Deinen Tabellenblattnamen habe ich jetzt mit "Arbeitsblatt" angenommen - ggf. ändern.
LG
Michael

AW: Druckbefehl soll Löschen einer Zelle auslösen
Juergen

Klasse, Variante 1 klappt prima. Damit kann ich schon arbeiten.
Kannst Du mir noch einen Tipp geben bzgl. Variante 2. So ausgeführt, würden ja alle Inhalte gelöscht werden. Gibt es eine Option nur Zellen bzw. deren Inhalte zu löschen, in denen ein einzelnes "J" eingetragen ist?
Super Forum!!! Danke nochmal!

AW: Variante 2 ergänzt
Michael

Hallo Jürgen!
Sorry, hab ich überlesen. Hier die ergänzte Variante 2:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Bereich As Range
Dim Zelle As Range
Set Bereich = Worksheets("Arbeitsblatt").Range("A1:H60")
For Each Zelle In Bereich
If Zelle.Value = "J" Then
Zelle.ClearContents
End If
Next
End Sub
Danke für Deine Rückmeldung!
LG
Michael

AW: Variante 2 ergänzt
Juergen

Super ... vielen Dank.
Jürgen

AW:Gerne, Danke für die Rückmeldung, owT
Michael

.

geht nicht.......
selli

hallo jürgen,
....denn, ein "druckbefehl" löst einen druck aus.
löschen geht nur mit einem "löschbefehl".
gruß
selli

Bewerten Sie hier bitte das Excel-Portal