Nach Ablauf eines Zeitglieds führe Aktion aus
22.03.2015 13:32:50
Daniel
ich stehe vor folgender Herausforderung:
Ich habe in mehrere Zellen eine Dropdown-Liste mit Schlüssel, die für gewisse Aktionen stehen, wie Schlüssel 3, um eine ganze Zeile zu löschen.(DropDownList rein über Excel!)
Nun möchte ich, dass wenn der Schlüssel 3 ausgewählt ist, zunächst ein Zeitglied abläuft und dann erst die Zeile gelöscht wird!
Ich habe zwei verschiede Ansätze geltend gemacht, die leider beide nicht ordnungsgemäß funktionieren.
Die Fehlermeldung "Das Makro ist nicht verfügbar, kann nicht ausgeführt werden ... etc."
Ansatz 1:
Option Explicit
Public Sub StartZeitGeber()
Application.OnTime Now + TimeValue("0:0:3"), "Worksheet_Change"
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("M7").Value = 3 Then Range("B7:C7,E7:K7,M7").ClearContents
If Range("M8").Value = 3 Then Range("B8:C8,E8:K8,M8").ClearContents
If Range("M9").Value = 3 Then Range("B9:C9,E9:K9,M9").ClearContents
If Range("M10").Value = 3 Then Range("B10:C10,E10:K10,M10").ClearContents
If Range("M11").Value = 3 Then Range("B11:C11,E11:K11,M11").ClearContents
If Range("M13").Value = 3 Then Range("B13:C13,E13:K13,M13").ClearContents
If Range("M14").Value = 3 Then Range("B14:C14,E14:K14,M14").ClearContents
If Range("M15").Value = 3 Then Range("B15:C15,E15:K15,M15").ClearContents
If Range("M16").Value = 3 Then Range("B16:C16,E16:K16,M16").ClearContents
If Range("M17").Value = 3 Then Range("B17:C17,E17:K17,M17").ClearContents
' usw
Ansatz 2:
Private Timer As Boolean
Sub starten()
Timer = True
zeit = Time + TimeSerial(0, 0, 3)
Application.OnTime zeit, "generate_meldung"
End Sub
Sub generate_meldung()MsgBox "Zeile wird gelöscht!"
If Timer = True Then starten
End Sub Sub beenden()
Timer = False
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("M7").Value = 3 Then Range("B7:C7,E7:K7,M7").ClearContents
If Range("M8").Value = 3 Then Range("B8:C8,E8:K8,M8").ClearContents
If Range("M9").Value = 3 Then Range("B9:C9,E9:K9,M9").ClearContents
If Range("M10").Value = 3 Then Range("B10:C10,E10:K10,M10").ClearContents