A včetně století, 49 = 2049, 50 = 1950.
Do formátování jsou zařazeny pouze sloupce 1,2,3,4 a 6, kromě prvních 4 řádků. Formátovaní je na těch buňkách nastaveno na text. Ignorováno je cokoliv mimo celá čísla 10100-311299. Není kontrola, zda datum existuje, ale to mi nevadí. Takže "projde" třeba 32.14.17 jako 32.14.2017. To mi nevadí.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Chyba
Application.EnableEvents = False
If (Target.Column <> 1 _
And Target.Column <> 2 _
And Target.Column <> 3 _
And Target.Column <> 4 _
And Target.Column <> 6) _
Or Target.Row < 5 Or Target > 311299 Or Target < 10100 Or Mid(Target, 6, 1) = "," Or Mid(Target, 7, 1) = "," Then
Application.EnableEvents = True
Exit Sub
End If
If Mid(Target, 5, 1) > 4 Then
Stoleti = 19
Else: Stoleti = 20
End If
Target = Left(Target, 2) & "." & Mid(Target, 3, 2) & "." & Stoleti & Right(Target, 2)
Application.EnableEvents = True
Exit Sub
Chyba:
Application.EnableEvents = True
Exit Sub
End Sub
Skoro bych řekl, že vyřešeno.
Lepší zápis, případně kontrola existence datumu jsou už jen perličky..