Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hallo!

hab hier ein modul das über das worksheet so aufgerufen wird.

Private Sub Worksheet_Change(ByVal Target As Range)

Call ZellenAendern(Target, Target.Address)

End Sub

Public Sub ZellenAendern(inhalt, zelle As String)

'Farben definieren laut PatternColorIndex-Eigenschaften (xlPatternNone = ohne Füllung)

rot = 3

blau = 5

grün = 4

'Wenn Eingabe der folgenden Buchstaben dann Select ausführen

Select Case inhalt

Case "u", "U"

Range(zelle).Select 'Zelle mit U selektieren

With Selection.Interior

.ColorIndex = rot 'Innenfüllung rot

.Pattern = xlSolid

End With

Case "G", "g"

Range(zelle).Select 'Zelle mit G selektieren

With Selection.Interior

.ColorIndex = rot

.Pattern = xlSolid

End With

Case "S", "s"

Range(zelle).Select 'Zelle mit S selektieren

With Selection.Interior

.ColorIndex = blau 'Innenfüllung blau

.Pattern = xlSolid

End With

Case "D", "d"

Range(zelle).Select 'Zelle mit D selektieren

With Selection.Interior

.ColorIndex = blau

.Pattern = xlSolid

End With

Case "X", "x"

Range(zelle).Select 'Zelle mit X selektieren

With Selection.Interior

.ColorIndex = grün 'Innenfüllung grün

.Pattern = xlSolid

End With

Case Else

Range(zelle).Select 'Default Wert

With Selection.Interior

.ColorIndex = xlNone 'Keine Füllung

.Pattern = xlSolid

End With

End Select

MsgBox (inhalt.Value)

End Sub

Das Modul wird in einer Abwesenheitsverwaltung in Excel eingesetzt. Trägt man einen Wert aus dem Select in eine Zelle ein, verändert sich die Hintergrundfarbe.

Hat man sich in der Abwesenheitsverwaltung vertippt, kann man eine Zelle ja ganz normal mit Entfernen löschen. Dadurch wird ja das Case else aufgerufen. Wenn ich aber mehrere Zellen markiere und diese löschen will, bekomme ich einen Laufzeitfehler (Fehler 13) Typen unverträglich.

Wie kann ich das abfangen, dass das ganze auch funktioniert, wenn mein Range größer als eine Zelle ist.

Problem verstanden? Ich komme irgendwie nicht weiter. Googeln bringt irgendwie nix. Habe auch nichts vergleichbares hier gefunden. Bitte um Hilfe.

MfG

thekbrothers

Geschrieben

1. wäre fein, wenn du einrückungen und code-tags verwenden würdest (farbe wird ja aufgrund der VBA-umgebung schwer reinzubringen sein).

2. verwende On Error Resume Next, dann überspringt er den fehler 13 und markiert mit mehrfachauswahl gelöschte felder rot.

s'Amstel

Geschrieben

Public Sub ZellenAendern(inhalt, zelle As String)

    On Error Resume Next

    '...

End Sub

die "on error"-behandlung gehört normalerweise an den beginn einer funktion oder an die stelle, ab der die fehlerbehandlung geschehen soll.

s'Amstel

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...