Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VBA in Excel

Empfohlene Antworten

Veröffentlicht

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

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

hey amstelchen,

danke für die glorreichen tipps.

wo mach ich das on error resume next rein?

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.