Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro bearbeiteter Zelle automatisch ausführen

Makro bearbeiteter Zelle automatisch ausführen
03.05.2018 06:47:38
Corinna
Guten Morgen an Alle,
ich bin VBA-Neuling und nun leider mit meiner Excel-Liste festgefahren. Vielleicht könnt Ihr mir helfen.
In die Zelle (H2) wird eine Zahlenfolge eingegeben. Durch "Bestätigen" wird in einer der eingegebenen Zahlenfolge zugeordneten Zelle der Spalte "H" das aktuelle Datum mit Uhrzeit eingetragen. Da diese Datum-Uhrzeitangabe durch JETZT bestimmt wird, ist diese nicht fixiert - was aber zwingend notwendig wäre. Bisher habe ich das durch ein händisch ausgeführtes Makro gelöst. Ist aber auf Dauer unpraktisch.
Gibt es eine Möglichkeit, das Makro automatisch auszuführen, wenn das Datum erfasst wird? Oder wie muss ich das Makro verändern, damit es erkennt, welche Zelle im Bereich der Spalte H gerade bearbeitet wurde?
Der Code, der der Tabelle zugeordnet ist sieht wie folgt aus:

Private Sub Worksheet_Calculate()
Dim objCell As Range
For Each objCell In Range("H4:H386")
If objCell.HasFormula Then _
If IsNumeric(objCell.Text) Then _
If Fix(objCell.Value) = objCell.Value Then _
objCell.Value = objCell.Value
Next
End Sub

Das bisher verwendete Marko ist:
Sub FormelnDurchWerte()
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
Wie bringe ich die beiden zusammen, dass das Ergebnis passt? Hab schon vieles ausprobiert - ohne Erfolg und google bringt mich leider auch nicht weiter. Daher wäre ich für jede Hilfe dankbar.
LG
Corinna
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro bearbeiteter Zelle automatisch ausführen
03.05.2018 07:06:59
Hajo_Zi
Hallo Corina,
falsches Ereignis, ich sehe da auch nicht NOW?
http://hajo-excel.de/gepackt/vba/datum_bei_aenderung.zip

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Makro bearbeiteter Zelle automatisch ausführen
03.05.2018 07:07:44
MCO
Guten Morgen!
Du denkst noch etwas um die Ecke.
Nimm einfach das Ereignis Worksheet_Change
Darin fragst du ab, ob gerade in Spalte H was geändert wird und trägst dann direkt den Datums-Wert in deine Zielzelle ein (Hier links neben Eingabezelle).
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 _
And Target  "" _
And IsNumeric(Target) Then Target.Offset(0, -1) = Date
End Sub

Das ganze mußt du im Modul des Tabellensheets eintragen, nicht im allgemeinen Modul.
Gruß, MCO
Anzeige
AW: Makro bearbeiteter Zelle automatisch ausführen
03.05.2018 07:09:37
Wastl
Hi,
beide Makros tragen kein Datum ein in Spalte H und auch sonst nirgends.
Da muss es noch was anderes geben, das verändert werden kann / muss.
AW: Makro bearbeiteter Zelle automatisch ausführen
03.05.2018 07:16:09
Hajo_Zi
dem stimme ich zu
Gruß Hajo
AW: Makro bearbeiteter Zelle automatisch ausführen
03.05.2018 08:17:27
Corinna
Schon mal Danke für die Beispiel-Excel. Ich werde es ausprobieren.
Und zur Ergänzung: aktuell ist es so: in der Zelle H2 wird z.B. der Code "170824-200004" (Hier geben die letzten 3 Ziffern immer die entsprechende H-Zelle an, in der das Datum erfasst wird) eingetragen.
Durch Enter bestätigt wird in dem Beispiel in der Zelle H4 das Ergebnis "Datum und Uhrzeit" durch die Formel =WENN(SVERWEIS($H$2;D4:D4;1;FALSCH)=D4;JETZT();"NICHT GEFUNDEN") eingetragen.
Wenn jetzt ein neuer Code in H2 geschrieben wird, bekomme ich in der Zelle H4 den Eintrag #NV, da ja der Bezug weg fällt. Deshalb möchte ich das Ergebnis als WERT fixieren.
LG Corinna
Anzeige
AW: Makro bearbeiteter Zelle automatisch ausführen
03.05.2018 09:30:26
Werner
Hallo Corinna,
das Makro muß ins Tabellblattmodul des Blattes, auf dem er sich auswirken soll.
Rechtsklick auf den Tabellenblattreiter - Code anzeigen - Code rechts ins Codefenster kopieren
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "H2" Then
If Target  "" Then
Cells(CLng(Right(Target, 3)), 8) = Now
End If
End If
End Sub
Gruß Werner
Anzeige
AW: Makro bearbeiteter Zelle automatisch ausführen
03.05.2018 10:25:25
Corinna
Hallo Werner,
Mensch klasse - es funktioniert. Du hast mir sehr geholfen.
Danke schön :)
Viele Grüße
Corinna
Gerne u. Danke für die Rückmeldung. o.w.T.
03.05.2018 10:33:30
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige