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

ESC-Taste im Makro

ESC-Taste im Makro
10.03.2020 14:08:45
kultnoob
Hi zusammen,
stehe gerade von einer kleinen Herausforderung und möchte euch fragen, ob mein Hirnfurz überhaupt in VBA abzubilden ist. Googeln und probieren haben bisher keine Lösung hervorgebracht...
Im unten aufgeführten Makro wird in einem definierten Bereich per Doppelklick auf eine Zelle das aktuelle Datum mit Doppelpunkt und Leerzeichen eingefügt sofern die Zelle leer ist. Falls die Zelle nicht leer ist, aber das aktuelle Datum nicht unter den ersten 10 Zeichen zu finden ist, wird ein Absatz eingefügt und das aktuelle Datum an erster Stelle eingefügt. Falls das aktuelle Datum bereits unter den ersten 10 Zeichen vorhanden ist, passiert nichts.
Zu meiner Verständnisfrage.
Ein User wählt eine Zelle im definierten Bereich. Die Zelle ist leer, das Datum wird eingefügt. Jetzt merkt der User, ups, falsche Zelle. Wenn ich eine Zelle mit Inhalt befülle kann man normalerweise mit ESC den Inhalt bzw. die Änderung an der Zelle rückgängig machen. Kann man dies auch in einem Makro programmieren? Wenn ich jetzt ESC drücke, bleibt der Inhalt, der durch das Makro eingefügt wurde bestehen.
Ziel - Zelle ausgewählt - ups falsche Zelle - ESC drücken - Änderungen rückgängig gemacht.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
'Die Variable DATUM als Zeitwert deklarieren
Dim Datum As Date
'Die Range festlegen, in welchem die IF-Anweisung agieren soll - im Beispiel ist die  _
Spalte D (Column 4) im Bereich Zeile 4 bis Zeile 1000 gewählt
If Target.Column = 4 And Target.Row >= 4 And Target.Row  Empty Then
'Der Variable "DATUM" den Wert der ersten 10 Zeichen der gewählten Zelle zuweisen
'Datum wurde als Zeitwert deklariert, damit diese später mit einem Datum  _
verglichen werden kann
Datum = Left(Target, 10)
'Prüfen, ob der Wert der Variable "DATUM" dem aktuellem Datum entspricht
If Datum  Date Then
'Falls das aktuelle Datum nicht den ersten 10 Zeichen der ersten Zeile der gewä _
hlten Zelle entspricht, füge das aktuelle Datum, einen Doppelpunkt, eine Leerzeile, einen Absatz
'und den ursprünglichen Inhalt der Zelle ein - Falls bereits etwas  _
dokumentiert (Historie) wurde, wird dies nach dem Absatz eingefügt
Target.Value = Date & ": " & Chr(10) & Target.Value
End If
End If
End If
End Sub
Bedanke mich für jeglichen Input. Egal ob positiv oder negativ.
Grüße

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ESC-Taste im Makro
10.03.2020 14:20:20
kultnoob
Kleine Korrektur...
Ein User wählt eine Zelle im definierten Bereich. Die Zelle ist leer, das Datum wird eingefügt. Jetzt merkt der User, ups, falsche Zelle.
Wenn ich eine Zelle mit Inhalt befülle kann man normalerweise mit ESC den Inhalt bzw. die Änderung an der Zelle rückgängig machen.
Kann man dies auch in einem Makro programmieren? Wenn ich jetzt ESC drücke, wird der Inhalt, der durch das Makro eingefügt wurde, wieder entfernt. Falls in der Zelle bereits was vorhanden war, bleibt dies bestehen aber der neu eingefügte Inhalt wird entfernt.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige