» Poradna » Programy

Excel VBA - Formátování data

 |   | 

Ahoj!

Mám nějaké trable s formátem data..
Zadání úkolu zní tak, že uživatel chce zadat datum do buňky s časem s použitím TEČKY jako oddělovače hodin a minut (tedy dd/mm/yyyy hh.mm). Problém je ten, že Excel mi to s tečkou nepřijme a přijme pouze dvojtečku..

Napadlo mě použít pro WORKSHEET_CHANGE funkci Find and Replace a nahradit všechny tečky za dvojtečky (excel to pak rozezná jako datum) a pak pro buňky nastavit speciální formát (s oddělovačem tečkou), což SKORO funguje.. buňka se totiž musí otevřít a potvrdit, aby se změna projevila..

jediná fce kterou používám je:

Private Sub worksheet_change(ByVal Cell As Range)
Cell.Replace What:=".", Replacement:=":"
End Sub

Napadá někoho něco? Za všechny nápady moc děkuji!

Mohlo by vás také zajímat

Odpovědi na otázku

 |   | 

Jo, ještě doplněk.. pokud je datum 15/06/08 12:08 tak se datum po otevření a uložení buňky správně změní na 15/06/2008 12.08

jenže pokud je datum třeba 06/07/08 12:08, tak se datum změní hned.. ale prohodí se dny a měsíce.. takže výsledek je 07/06/2008 12.08

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

predpokladam, ze v OS je v mistnim nastaveni oddelovac pro datum "/"
muzes pouzit funkci Format:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect As Object
'identifikace oblasti
Set isect = Application.Intersect(ActiveSheet.Range("d:d"), Target)
If isect Is Nothing Then Exit Sub
If Target.Resize(1, 1).Value = vbNullString Then Exit Sub ' delete
Target.Value = Format(Target.Value, "dd/mm/yyyy hh.mm")
End Sub

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

jeste je nutno pouzit vlastnost EnableEvents - zabranit zacykleni, takze takto:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect As Object
'identifikace oblasti
Set isect = Application.Intersect(ActiveSheet.Range("d:d"), Target)
If isect Is Nothing Then Exit Sub
If Target.Resize(1, 1).Value = vbNullString Then Exit Sub ' delete
Application.EnableEvents = False
Target.Value = Format(Target.Value, "dd/mm/yyyy hh.mm")
Application.EnableEvents = True
End Sub

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Speciální formát, Trable, What


Určitě si přečtěte

Výmluvy filmových pirátů jsou stejně ostudné jako český autorský zákon (komentář)

Výmluvy filmových pirátů jsou stejně ostudné jako český autorský zákon (komentář)

** Autorský zákon vůbec nerespektuje internet a současnou realitu. ** Je stahování filmů legální a jaké se na to vztahují výjimky? ** Proč a za co všechno platíme výpalné?

Lukáš Václavík | 361

Lukáš Václavík
PirátstvíHudba, filmy, seriály
Bankovní identita bude jednotná. K České spořitelně, ČSOB a KB se připojí menší banky
Lukáš Václavík
Portál občanaBankaeGovernment
Avast Omni: Krabička, která vám hackne síť a promění se v unikátní antivirus

Avast Omni: Krabička, která vám hackne síť a promění se v unikátní antivirus

** Počítač dnes ochrání kdejaký antivirus ** Drobná krabička Omni se postará rovnou o celou domácí síť ** Bude ji odposlouchávat, analyzovat a blokovat útoky

Jakub Čížek | 120

Jakub Čížek
AntivirusIoT
Nejlepší příslušenství k počítači. Tipy na osvědčené klávesnice, tiskárny, routery…

Nejlepší příslušenství k počítači. Tipy na osvědčené klávesnice, tiskárny, routery…

** Tipy na užitečné příslušenství k počítačům ** Poradíme, s jakými produkty neuděláte chybu ** Od drobností do USB až po routery a tiskárny

David Polesný, Stanislav Janů | 20

David PolesnýStanislav Janů
Příslušenství
Nová volitelná aktualizace opravuje více než 40 chyb v operačním systému Windows 10
Karel Kilián
Windows UpdateAktualizaceWindows 10
26 užitečných rozšíření pro Chrome: Naučte prohlížeč nové věci

26 užitečných rozšíření pro Chrome: Naučte prohlížeč nové věci

** Prohlížeč Chrome obsahuje širokou škálu funkcí, neumí ale všechno ** Jeho schopnosti můžete rozšířit pomocí rozšíření ** Vybrali jsme pro vás zajímavé a užitečné doplňky

Karel Kilián | 47

Karel Kilián
Doplňky do prohlížečeChromeProhlížeče