Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Formát buňky v Excelu

Private Sub Worksheet_Change(ByVal Target As Range)
    If (Target.Column <> 1 _
    And Target.Column <> 7 _
    And Target.Column <> 8 _
    And Target.Column <> 9 _
    And Target.Column <> 15) _
    Or Mid(Target, 3, 1) = "." Then Exit Sub
    Target = Left(Target, 2) & "." & Mid(Target, 3, 2) & ".20" & Right(Target, 2)
End Sub

ale kontrola bude musieť byť inak. Môžeš tam totiž zadať aj číslo, ktoré sa nedá týmto spôsobom previesť na korektný dátum, napr. 3213nn.
Už som skúšal test Target-u na IsDate ale neposlúchalo. Ešte porozmýšľam...
Napadá ma skúsiť spätný prevod na číslo, ktoré reprezentuje v Exceli dátum a TAM zadať interval, v ktorom sa má Target nachádzať napr Tebou udávaný minimálny dátum je reprezentovaný číslom 36526).
A asi si sa sekol v maximálnom dátume (uviedol si rok 1999).
P.S. vynechať bodku je prúser, lebo sa procedúra zacyklí, Nejak ju treba zastaviť a na to som využil skutočnosť, že akonáhle je tam už vložená bodka, nesmie opätovne reagovať na udalosť Change.
A nehovoriac o tom, že v stĺpci s dátumami by sa nemalo nachádzať nič iné (ak som dobre pochopil)

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny