Datums-Schreibweise überprüfen (VB6 für Excel2003)

AndreasRoe

Grünschnabel
Hallo.

In der Reihe B12:B36 stehen diese Datumsangaben:

13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13,11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008
13.11.2008

Ich kann mit diesem Makro/Funktion die Schreibweise des Datums in der Zelle B12 überprüfen:

Code:
Option Explicit

Sub Schreibweisetesten()

'Dim objRange  As Object
'Dim objSht As Excel.Worksheet

Dim xText$ 'Die Datumsschreibweise die getestet werden soll
'Dim Startzeile      As Long
'Dim Endzeile        As Long
'Dim nFirstRow       As Long      'Erste Zeile  mit Daten
'Dim nLastRow        As Long      'Letzte Zeile  mit Daten

'nLastRow = Cells(Cells.Rows.Count, "B").End(-4162).Row - 1 'letzte Zeile in Spalte B
'Startzeile = 12
'Endzeile = nLastRow

xText = ActiveSheet.Range("B12").Value
        
        If Not DatumGetestet(xText) = False Then
    
            xText = Format(DatumGetestet(xText), "m/d/yyyy")
    
            MsgBox "richtige Datumschreibweise!"
        Else
            MsgBox "falsche Datumschreibweise!"

        End If
        
End Sub

Function DatumGetestet(xDatum$) As Variant
'Funktion erkennt A L L E fehlerhaften Datumsangaben
'Function gibt bei Fehler False (Boolean) und bei gültigem Datum das Datum (Date) zurück
DatumGetestet = False
If IsDate(xDatum$) Then
 Select Case xDatum$
  Case Format(CDate(xDatum$), "d/m/yy"), _
       Format(CDate(xDatum$), "d/m/yyyy"), _
       Format(CDate(xDatum$), "d/mm/yy"), _
       Format(CDate(xDatum$), "d/mm/yyyy"), _
       Format(CDate(xDatum$), "dd/m/yy"), _
       Format(CDate(xDatum$), "dd/m/yyyy"), _
       Format(CDate(xDatum$), "dd/mm/yy"), _
       Format(CDate(xDatum$), "dd/mm/yyyy")
   DatumGetestet = CDate(xDatum$)
 End Select
End If
 
End Function

Möchte aber den Bereich B12:B36 überprüfen lassen.

Sind alle Datumsangaben ok dann = MsgBox "richtige Datumschreibweise!"

Findet das Makro eine fehlerhafte Datumsangabe (B29) dann = MsgBox "In der Zelle" & "B29" & "falsche Datumschreibweise! bitte korrigieren"


Könnt Ihr helfen?

Grüße, Andreas

_____________________________________________
wenn ich alles wüsste, wäre ich nicht hier...
 
Dann musst Du doch nur durch Dein Sheet durchlaufen.

Code:
      Dim Zelle As String
      Dim Row As Integer
   
      For Row = 12 To 36
             Zelle = "B"+Ltrim(Str(Row))
             xText = ActiveSheet.Range(Zelle).Value
             ' Hier dann Deine Prüfungen
     Next
 
Oder er zwingt den User bei der Eingabe des Datums gleich zur richtigen Schreibweise, dann kann er sich das ganze Gezeter mit nachträglicher Überprüfung der Schreibweise sparen.
 
Oder er zwingt den User bei der Eingabe des Datums gleich zur richtigen Schreibweise, dann kann er sich das ganze Gezeter mit nachträglicher Überprüfung der Schreibweise sparen.

Das geht dann nicht, wenn man die Sheets sonst woher bekommt. Mit solchen Dingen muss ich mich auch manchmal beschäftigen, wenn fremde Sheets über Schnittstellen in Datenbanken eingelesen werden müssen.
 
Das geht dann nicht, wenn man die Sheets sonst woher bekommt. Mit solchen Dingen muss ich mich auch manchmal beschäftigen, wenn fremde Sheets über Schnittstellen in Datenbanken eingelesen werden müssen.

Stimmt auch wieder, wobei sich aber dann die Frage stellt, wieso Info an User, wenn was nicht stimmt?

Einfach nur dann in einer Schleife:
Visual Basic:
If IsDate(Tabelle1.Cells(Zeile, Spalte)) Then Tabelle1.Cells(Zeile, Spalte)=Format(Tabelle1.Cells(Zeile, Spalte), "dd.mm.yyyy")

und fertig ist!
 

Neue Beiträge

Zurück