Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1856to1860
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

Makro wenn bestimmter Wert gelöscht

Makro wenn bestimmter Wert gelöscht
22.11.2021 12:37:55
Kerstin
Hallo zusammen!
Ich verzweifle gerade wieder einmal...
Ist es möglich ein Makro ausführen zu lassen, wenn ein BESTIMMTES Wort GELÖSCHT wurde?
Beispiel: Spalte A1:A31 hat folgende Zellinhalte: leer, Urlaub oder Krank
wenn ich jetzt mit klick auf die Zelle mit Inhalt "Urlaub" dieses Wort lösche (z.B. weil Urlaub verschoben wurde), dann möchte ich, daß die Urlaubstage, die in B1 stehen, um 1 erhöht werden.
Hier sind meine kläglichen Versuche (mit Hilfszelle, klappt aber auch nicht):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Row > 31 Then Exit Sub
'Hilfszelle
If Target.Value = "Urlaub" Then
Range("M1") = Target.Value
ElseIf Target.Value  "Urlaub" Then
Range("M1") = ""
Exit Sub
End If
If Target.Value = "" And Range("M1") = "Urlaub" Then
Range("B1") = Range("B1") + 1
End If
'If WorksheetFunction.CountA(Target) = 0 Then
'Range("B1") = Range("B1") + 1
'End If
'If Range("M1") = "Urlaub"  Then
'Range("B1") = Range("B1") + 1
'End If
End Sub
Weiß irgendjemand des Rätsels Lösung?
Liebe Grüße
Kerstin

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro wenn bestimmter Wert gelöscht
22.11.2021 13:27:00
ChrisL
Hi Kerstin
Theoretisch so...

Public strAlt As String

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strNeu As String
If Not Intersect(Target, Range("A1:A31")) Is Nothing Then
strNeu = Target
If strAlt = "Urlaub" And strNeu  "Urlaub" Then
Range("B1") = Range("B1") - 1
ElseIf strAlt  "Urlaub" And strNeu = "Urlaub" Then
Range("B1") = Range("B1") + 1
End If
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A31")) Is Nothing Then
strAlt = Target
End If
End Sub
Praktisch geht es spätestens in die Hose, wenn ganze Bereich kopiert werden. Eine zuverlässige Lösung lässt sich m.E. nicht erreichen. N.b. ist der Zähler erst einmal falsch, dann bleibt er fehlerhaft.
Das Vorgehen scheint mir ganz generell etwas abenteuerlich, weil eigentlich reicht ja:

=ZÄHLENWENN(A1:A31;"Urlaub")
oder

=Startsaldo-ZÄHLENWENN(A1:A31;"Urlaub")
cu
Chris
Anzeige
AW: Makro wenn bestimmter Wert gelöscht
22.11.2021 13:35:15
Kerstin
Hallo Chris!
Super! Klappt genau so wie ich es brauche!!!!!
Vielen lieben Dank!!!!
Liebe Grüße
Kerstin
Danke für die Rückmeldung owT.
22.11.2021 13:39:48
ChrisL
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige