Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1864to1868
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

Datum ohne Trenner Makro automatisch

Datum ohne Trenner Makro automatisch
07.01.2022 09:33:47
Noticon
Hallo zusammen,
ich habe eine Excel-Datei in der in Spalte C immer ein spezifisches Datum eingetragen wird.
Um das Datum ohne Punkt eintragen zu können benutze ich folgenden Code in Modul 1:

Dim regex As Object
Sub ProcessRanges()
Dim cell As Range, result As String
Set regex = CreateObject("vbscript.regexp")
regex.Pattern = "^(0?[1-9]|[1-2][0-9]|3[0-1])(0[1-9]|1[0-2])(19[0-9][0-9]|[2-9]\d{3})$"
With ActiveSheet
For Each cell In .Range("C2:C" & .Cells(Rows.Count, "C").End(xlUp).Row)
FormatDate cell
Next
End With
Set regex = Nothing
End Sub
Sub FormatDate(rngCell As Range)
Dim result As Date
If regex.Test(rngCell.Text) Then
result = regex.Replace(rngCell.Text, "$1.$2.$3")
rngCell.NumberFormatLocal = "TT.MM.JJJJ"
rngCell.Value = CDate(result)
End If
End Sub

Darüber hinaus habe ich im Tabellenblatt folgenden Code, der dafür sorgen soll, dass das Makro ProcessRanges ()
automatisch ausgeführt wird, wenn die entsprechende Zelle mit dem Datum verlassen wird.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("C:C")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
ProcessRanges
End If
End Sub

Ich habe folgendes Problem: Wenn ich in C1 ein Datum eintrage, setzt das Makro
erst die Punkte ein, wenn ich in Zelle C2 klicke/springe. Ich möchte aber, dass die Punkte direkt
eingesetzt werden, sobald ich Zelle C1 verlasse. Kann mir hier jemand helfen wie ich das umsetzen kann?
Hier ist eine Testdatei: https://www.herber.de/bbs/user/150223.xlsm


		

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum ohne Trenner Makro automatisch
07.01.2022 09:49:02
Herbert_Grom
Hallo,
probiers mal damit:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim KeyCells As Range
Application.Volatile
Set KeyCells = Range("C:C")
If Not Intersect(KeyCells, Range(Target.Address)) Is Nothing Then Call ProcessRanges
End Sub
Servus
AW: Datum ohne Trenner Makro automatisch
07.01.2022 09:51:11
Herbert_Grom
sorry, ich meinte so:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Application.Volatile
Set KeyCells = Range("C:C")
If Not Intersect(KeyCells, Range(Target.Address)) Is Nothing Then Call ProcessRanges
End Sub
Servus
Anzeige
AW: Datum ohne Trenner Makro automatisch
07.01.2022 09:53:28
Herbert_Grom
"Application.Volatile" kannst du auch noch weglassen!
AW: Datum ohne Trenner Makro automatisch
07.01.2022 10:00:58
Noticon
Vielen Dank, das klappt schonmal.
Allerdings bekomme ich jetzt die Fehlermeldung:
Objektvariable oder With-Blockvariable nicht festgelegt. Wie behebe ich das?
VG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige