Zdravím,
vytvořil jsem pomocí předlohy z jednoho fóra následující file s formulářem.
Jde mi o to, aby datum se mohl zadávat pouze jako datum a ne jako text.
Microsoft Date and Time Picker nelze použít (zkoušel jsem doinstalovat, zaregistrovat - bez úspěchu). Existuje nějaké jiné řešení?
Děkuji.
Excel - Datum ve formuláři Vyřešeno
Excel - Datum ve formuláři
- Přílohy
-
- Skoroúrazy.xlsm
- (32.23 KiB) Staženo 52 x
Re: Excel - Datum ve formuláři
Můžete správné zadání data ve formuláři kontrolovat VBA fukcí IsDate.
Doplnění:
Asi jsem správně nepochopil, nač jste se tázal. Takže dotazu:
1. Ve sloupci datum v listě nastavte formát data, jaký si přejete.
2. Upravte kód pro zápis datumu
Původně: .Cells(r, 1) = txtDatum
Nově:
Dim d As Date
d = txtDatum
.Cells(r, 1) = d
Případně nemusíte předem formátovat sloupec datum na listě a pro každý nový záznam provést formátování z kódu pro příslušný řádek.
Doplnění:
Asi jsem správně nepochopil, nač jste se tázal. Takže dotazu:
1. Ve sloupci datum v listě nastavte formát data, jaký si přejete.
2. Upravte kód pro zápis datumu
Původně: .Cells(r, 1) = txtDatum
Nově:
Dim d As Date
d = txtDatum
.Cells(r, 1) = d
Případně nemusíte předem formátovat sloupec datum na listě a pro každý nový záznam provést formátování z kódu pro příslušný řádek.
Re: Excel - Datum ve formuláři
Odzkoušeno - funguje - děkuji.
Pro zobrazování formátu dd.mm.rrrr jsem musel naformátovat sloupec na listě. Bez toho by to ukazovalo formát d.m.rrrr.
Lze ještě nějak vyřešit, aby se na formuláři dal zapisovat pouze datum (tedy ne text)? Když nyní zadám místo data text, tak to pouze hodí při uložení chybnou hlášku ("Runtime-Error ´13´ Type mismatch - laik z toho nevyčte, co je špatně).
Děkuji
Pro zobrazování formátu dd.mm.rrrr jsem musel naformátovat sloupec na listě. Bez toho by to ukazovalo formát d.m.rrrr.
Lze ještě nějak vyřešit, aby se na formuláři dal zapisovat pouze datum (tedy ne text)? Když nyní zadám místo data text, tak to pouze hodí při uložení chybnou hlášku ("Runtime-Error ´13´ Type mismatch - laik z toho nevyčte, co je špatně).
Děkuji
-
- Pohlaví:
Re: Excel - Datum ve formuláři
Drobná inspirace:
http://excelplus.net/news.php?readmore=85
Jinak čistě teoreticky: Textové pole se tak původně jmenuje proto, že se vším pracuje jako s textem a zbytek je o to poradit si s konverzí číslo-text a list-formulář. VBA obsahuje ty původní prvky (cca 13 let staré) bez nějaké zvláštní inteligence. Není to VB.NET, ani třeba InfoPath, kde už jsou ty možnosti alespoň o špetku jinde.
http://excelplus.net/news.php?readmore=85
Jinak čistě teoreticky: Textové pole se tak původně jmenuje proto, že se vším pracuje jako s textem a zbytek je o to poradit si s konverzí číslo-text a list-formulář. VBA obsahuje ty původní prvky (cca 13 let staré) bez nějaké zvláštní inteligence. Není to VB.NET, ani třeba InfoPath, kde už jsou ty možnosti alespoň o špetku jinde.
Re: Excel - Datum ve formuláři Vyřešeno
Ve Vašem případě v principu třeba takto (rozšíření úpravy části kódu) s využitím funkce IsDate:
With wsh
Dim d As Date
If IsDate(txtDatum) = False Then
MsgBox "Chyba ve formátu data, vložte znovu!"
Exit Sub
Else
d = txtDatum
.Cells(r, 1) = d
.Cells(r, 2) = txtJmeno
.Cells(r, 3) = txtPracoviste
.Cells(r, 4) = txtDruh
.Cells(r, 5) = txtSkoda
.Cells(r, 6) = txtVyskyt
.Cells(r, 7) = txtPopis
.Cells(r,
= txtKonzultace
.Cells(r, 9) = txtVyreseno
End If
End With
Není striktně vyžadováno užívat jen funkci IsDate, viz např. rada kolegy výše. IsDate propustí např zadání "1 září 2012" - tj. zrovna v textové formě.
With wsh
Dim d As Date
If IsDate(txtDatum) = False Then
MsgBox "Chyba ve formátu data, vložte znovu!"
Exit Sub
Else
d = txtDatum
.Cells(r, 1) = d
.Cells(r, 2) = txtJmeno
.Cells(r, 3) = txtPracoviste
.Cells(r, 4) = txtDruh
.Cells(r, 5) = txtSkoda
.Cells(r, 6) = txtVyskyt
.Cells(r, 7) = txtPopis
.Cells(r,

.Cells(r, 9) = txtVyreseno
End If
End With
Není striktně vyžadováno užívat jen funkci IsDate, viz např. rada kolegy výše. IsDate propustí např zadání "1 září 2012" - tj. zrovna v textové formě.
-
- Pohlaví:
Re: Excel - Datum ve formuláři
Tak na datum já mám zpracovaný TextBox i doslova znak po znaku, nicméně IsDate pro kontrolu stačí. Ano, pustí i neúplné zapisy. ono, když půjdeme do důsledku, tak ideální je nabídnout kalendář u textového pole pěkně po ruce.
Re: Excel - Datum ve formuláři
Děkuji Jigovi... tohle mi úplně stačí.
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw) - 2
- 4818
-
od Riviera kid
Zobrazit poslední příspěvek
02 zář 2024 16:21
-
-
- 2
- 12233
-
od Snekment
Zobrazit poslední příspěvek
29 led 2025 15:05
-
- 1
- 4778
-
od atari
Zobrazit poslední příspěvek
07 kvě 2025 09:41
-
- 3
- 3357
-
od lubo.
Zobrazit poslední příspěvek
24 říj 2024 00:00
-
- 5
- 3945
-
od atari
Zobrazit poslední příspěvek
26 dub 2025 09:11
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti