Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
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
Inhaltsverzeichnis

Farbige Zellen zurücksetzen

Farbige Zellen zurücksetzen
20.04.2022 18:35:15
mike49
Hallo Leute,
ich habe ein Löschen Makro, dass die Inhalte des Tabellblattes bzw. alle Tabellenblätter löscht. Das funktioniert auch.
Jetzt hätte ich das gerne erweitert, dass auch die manuell eingefärbten Zellen zurückgesetzt werden (farblos machen).
Meine Erweiterungszeile (.Range("D3:L33").Interior.ColorIndex = 0) funktioniert nicht! Was habe ich falsch gemacht?
Option Explicit
Sub Löschen()
Dim strAntwort As String
strAntwort = MsgBox("Achtung: Das gesamte Tabellenblatt wird zurückgesetzt!", _
vbExclamation + vbOKCancel, "Hinweis")
If strAntwort = vbCancel Then Exit Sub 'Bei "Abbrechen" abbrechen.
With Application
.ScreenUpdating = False 'Bildschirmaktualisierung abschalten.
.EnableEvents = False 'Ereignissprozeduren deaktivieren.
.Calculation = xlCalculationManual
End With
With ActiveSheet
' .Unprotect
.Range("D3:L33").ClearContents
.Range("D3:L33").Interior.ColorIndex = 0
' .Range("H5:H35").FormulaLocal = _
' "=WENN(ISTNV(INDEX($R$9:$S$37;VERGLEICH($B5;$R$9:$R$37;0);2));"""";INDEX($R$9:$S$37;VERGLEICH($B5;$R$9:$R$37;0);2))"
' .Range("D37").Value = "0"
.Range("E1").Select
' .Protect
End With
strAntwort = MsgBox("Die anderen Tabellenblätter ebenfalls zurücksetzen?", _
vbQuestion + vbYesNo + vbDefaultButton2, "Frage")
If strAntwort = vbYes Then
If ANDERE_TABELLEN = True Then
MsgBox "Alle Monate auf Null gesetzt.", vbInformation, "Information"
End If
End If
With Application
.ScreenUpdating = True 'Bildschirmaktualisierung abschalten.
.EnableEvents = True 'Ereignissprozeduren deaktivieren.
.Calculation = xlCalculationAutomatic
.ActiveWindow.ScrollRow = 3
End With
End Sub

Private Function ANDERE_TABELLEN() As Boolean
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name  ActiveSheet.Name And Len(Sh.Name) = 3 Then
If TABELLE_AUF_NULL(Sh.Name) = False Then
MsgBox "Fehler bei Tabelle: " & Sh.Name, _
vbCritical, "Abbruch"
Exit Function
End If
End If
Next
ANDERE_TABELLEN = True 'Erfolg vermerken.
End Function

Private Function TABELLE_AUF_NULL(strTabelle As String) As Boolean
'    On Error GoTo Ende 'Fehlerbehandlung übernehmen.
With ThisWorkbook.Sheets(strTabelle) 'Alles auf dieses Tabellenblatt beziehen:
' .Unprotect
.Range("D3:L33").ClearContents
.Range("D3:L33").Interior.ColorIndex = 0
' .Range("H5:H35").FormulaLocal = _
'  "=WENN(ISTNV(INDEX($R$9:$S$37;VERGLEICH($B5;$R$9:$R$37;0);2));"""";INDEX($R$9:$S$37;VERGLEICH($B5;$R$9:$R$37;0);2))"
' .Range("D37").Value = "0"
' .Protect
Application.GoTo .Range("E1")
ActiveWindow.ScrollRow = 3
ThisWorkbook.Sheets("Jan").Activate
End With
TABELLE_AUF_NULL = True 'Erfolg vermerken.
Ende:
'    On Error GoTo 0 'Fehlerbehandlung zurückgeben.
End Function
Gruß
mike49

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbige Zellen zurücksetzen
20.04.2022 18:50:28
oraculix
Hallo versuch mal
Interior.ColorIndex = xlNone
statt
Interior.ColorIndex = 0
Gruß
Oraculix
AW: Farbige Zellen zurücksetzen
20.04.2022 19:02:11
mike49
Hallo Oraculix,
das habe ich auch schon probiert, funktioniert aber nicht! (Laufzeitfehler)
AW: Farbige Zellen zurücksetzen
20.04.2022 19:12:35
Oberschlumpf
Hi Mike
Meine Erweiterungszeile (.Range("D3:L33").Interior.ColorIndex = 0) funktioniert nicht! Was habe ich falsch gemacht?
Du weißt, Interior färbt den Hintergrund. Du willst auch den Hintergrund färben, oder geht es um die Text-Farbe?
Am besten, du zeigst mal bitte per Upload eine Bsp-Datei mit Bsp-Daten und deinem Code, so dass man das Problem "erleben" und testen kann.
Ciao
Thorsten
Anzeige
Makrorekorder...
20.04.2022 19:13:34
Yal
... weisst fast alles:

With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Davon ist eigentlich nur .Interior.Pattern = xlNone zu gebrauchen.
VG
Yal
AW: Makrorekorder...
20.04.2022 19:39:38
mike49
Hi,
ich lade mal die Mustermappe hoch:
https://www.herber.de/bbs/user/152552.xlsm
Nehmt mal das Januarblatt.
Ich habe die Zellen der Wochentage manuell für jeden Fahrer unterschiedlich gefärbt.
Durch Doppelklick in eine Zelle wird ein "X" gesetzt.
Wenn ich nun im Januarblatt den Button "Inhalte löschen" drücke, wird gefragt, ob ich das Blatt zurücksetzen will. Bestätige ich mit "Ja", werden alle gestzten "X" gelöscht.
Die manuell eingefärbten Zellen bleiben aber erhalten.
Ich möchte jetzt, dass die Einfärbungen auch zurückgesetzt werden.
Mit einer eingefügten Zeile ".Range("D3:L33").Interior.ColorIndex = 0" bzw. ".Range("D3:L33").Interior.ColorIndex = xlNone" funktioniert das aber nicht.
Weiß jemand Rat?
Anzeige
AW: Makrorekorder...
20.04.2022 19:56:30
Yal
Moin Mike,
ein Herz für Anfänger...

Sub Löschen()
'Bei "Abbrechen" abbrechen.
If MsgBox("Achtung: Das gesamte Tabellenblatt wird zurückgesetzt!", vbExclamation + vbOKCancel, "Hinweis") = vbCancel Then Exit Sub
With Application
.ScreenUpdating = False 'Bildschirmaktualisierung abschalten.
.EnableEvents = False 'Ereignissprozeduren deaktivieren.
.Calculation = xlCalculationManual
End With
With ActiveSheet
' .Unprotect
.Range("D3:L33").ClearContents
.Range("D3:L33").Interior.Pattern = xlNone
' .Range("H5:H35").FormulaLocal = _
'  "=WENN(ISTNV(INDEX($R$9:$S$37;VERGLEICH($B5;$R$9:$R$37;0);2));"""";INDEX($R$9:$S$37;VERGLEICH($B5;$R$9:$R$37;0);2))"
' .Range("D37").Value = "0"
.Range("E1").Select
' .Protect
End With
If MsgBox("Die anderen Tabellenblätter ebenfalls zurücksetzen?", vbQuestion + vbYesNo + vbDefaultButton2, "Frage") = vbYes Then
If ANDERE_TABELLEN = True Then
MsgBox "Alle Monate auf Null gesetzt.", vbInformation, "Information"
End If
End If
With Application
.ScreenUpdating = True 'Bildschirmaktualisierung abschalten.
.EnableEvents = True 'Ereignissprozeduren deaktivieren.
.Calculation = xlCalculationAutomatic
.ActiveWindow.ScrollRow = 3
End With
End Sub
VG
Yal
Anzeige
AW: Makrorekorder...
20.04.2022 20:42:32
mike49
Hallo Yal,
danke für deine Hilfe.
Ich habe das bestehende Löschen-Makro durch das deinige ersetzt..
Aber leider funktioniert das bei mir nicht!
Diese Zeile wird gelb eingefärbt mit Laufzeitfehler:
.Range("D3:L33").Interior.Pattern = xlNone
Hast du es in meiner hochgeladenen Musterdatei getestet?
Gruß
mike49
AW: Makrorekorder...
20.04.2022 21:24:23
Yal
Hallo Mike,
der Fehler kommt, weil das Blatt noch geschützt ist. Das ".Unprotect" 2 Zeilen davor muss reaktiviert werden.
VG
Yal
Genau das war's . . .
20.04.2022 21:44:06
mike49
vielen Dank für deine Hilfe.
Gruß
mike49

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige