02.03.2020, 12:18
Hallo zusammen,
ich würde mich freuen wenn Ihr mir bei einem Problem weiterhelfen könntet.
Von Hajo habe ich ein tolles Macro gefunden das bei Änderungen, egal in welchen Tabellenblättern seinen Dienst tut.
Also wenn ich in einer Zelle einen bestimmten Eintrag einfüge dann reagiert das Makro das in "DieserArbeitsmappe" eingefügt ist.
Soweit so gut.
Da ich aber immer wieder neue Tabellenblätter einfügen muss und diese dann gleich automatisch mit Informationen fülle schlägt das Macro unweigerlich zu und bringt dann diese Fehlermeldung:
"Laufzeitfehler 1004: Die Methode Intersect für das Objekt_Global ist fehlgeschlagen.
Gibt es hier eine Möglichkeit das Workbook_SheetChange irgendwie zu blockieren wenn neue Blätter eingefügt werden und diese dann mit Default-Informationen gefüllt werden?
Oder gibt es eine andere Möglichkeit?
Hier das Macro von Hajo:
Vielen Dank für Eure Hilfe!
ich würde mich freuen wenn Ihr mir bei einem Problem weiterhelfen könntet.
Von Hajo habe ich ein tolles Macro gefunden das bei Änderungen, egal in welchen Tabellenblättern seinen Dienst tut.
Also wenn ich in einer Zelle einen bestimmten Eintrag einfüge dann reagiert das Makro das in "DieserArbeitsmappe" eingefügt ist.
Soweit so gut.
Da ich aber immer wieder neue Tabellenblätter einfügen muss und diese dann gleich automatisch mit Informationen fülle schlägt das Macro unweigerlich zu und bringt dann diese Fehlermeldung:
"Laufzeitfehler 1004: Die Methode Intersect für das Objekt_Global ist fehlgeschlagen.
Gibt es hier eine Möglichkeit das Workbook_SheetChange irgendwie zu blockieren wenn neue Blätter eingefügt werden und diese dann mit Default-Informationen gefüllt werden?
Oder gibt es eine andere Möglichkeit?
Hier das Macro von Hajo:
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'***********************************************
'* H. Ziplies *
'* 21.06.15 *
'* erstellt von HajoZiplies@web.de *
'* http://Hajo-Excel.de/ *
'***********************************************
' Füllfarbe
' für Schrift RaZelle.Font.ColorIndex
Dim RaBereich As Range ' Variable für Bereich
Dim RaZelle As Range ' Variable für Zelle
Set RaBereich = Range("B2:BF51") ' Bereich der Wirksamkeit
Set RaBereich = Intersect(RaBereich, Target)
If Not RaBereich Is Nothing Then
'ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In RaBereich
With RaZelle
Select Case UCase(.Value) ' Umwandlung der Eingabe in Großbuchstaben
Case "1"
.Interior.Color = 0 ' Füllfarbe Schwarz
.Font.Color = 16777215 ' Schriffarbbe weiß
.NumberFormat = "General" ' Zellenformat Standard
Case "2"
.Interior.Color = 65535 ' Füllfarbe Gelb
' Schriffarbe automatisch
.Font.ColorIndex = xlAutomatic
.NumberFormat = "General"
Case "3"
.Interior.Color = 255 ' Füllfarbe Rot
.NumberFormat = "General" ' Zellenformat Standard
'.NumberFormat = ";;;" ' Zellformat nicht sichtbar
Case "4"
.Interior.Color = 65280 ' Füllfarbe Grün
.Font.ColorIndex = xlAutomatic
.NumberFormat = "General"
Case "FOCUS"
.Interior.Color = 16711680 ' Füllfarbe blau
.Font.Color = 12632256 ' Schriftfarbe Grau - 25%
.NumberFormat = "General"
Case Else
' keine Füllfarbe, ColorIndex nicht Color
.Interior.ColorIndex = 50 ' oder xlNone
.Font.ColorIndex = xlAutomatic
.NumberFormat = "General"
End Select
End With
Next RaZelle
'ActiveSheet.protect ("Passwort")
End If
Set RaBereich = Nothing ' Variable leeren
End Sub
Vielen Dank für Eure Hilfe!