< návrat zpět

MS Excel


Téma: number format do textboxu rss

Zaslal/a 13.1.2016 11:57

zdravím
mám kod

Set TextBox1 = list.OLEObjects.Add(ClassType:="Forms.TextBox.1")
With TextBox1
.Name = "box1"
.Left = list.Cells(23, 5).Left
.Top = list.Cells(23, 5).Top
.Width = list.Range("E23:F23").Width
.Height = list.Cells(23, 5).Height
.Object.BackColor = RGB(255, 255, 255)
.Object.ForeColor = RGB(0, 0, 0)
.Object.Text = ""
.Object.FontSize = 11
End With

může mi někdo prosím poradit jak nadefinovat number format pro tenhle textbox tak aby byl
NumberFormat = "#,##0"

díky :-)

Zaslat odpověď >

Strana:  « předchozí  1 2
icon #029283
eLCHa
@vovka
Naopak, je to velmi logické.
https://en.wikipedia.org/wiki/Visual_Basic_for_Applications

Pokud chcete kódy Ascii - použijte KeyPress místo KeyDown

Key codes neidentifikují znak, ale klávesu. Klávesa pro "a" je stejná jako pro "A" - proto má stejný kód. Pokud je potřebujete rozlišit, můžete to udělat pomocí argumentu Shift.

Ne, nesouhlasím. To není ZOO ze strany MS, ale nepochopení z vaší strany.

edit:
Nenašel jsem tam ale žádné logické vysvětlení, proč mají klávesy numerické klávesnice jiné hodnoty KeyCode než jejich "dvojčata" z velké klávesnice.
Jsou to jiné klávesy.citovat
#029284
avatar
Zbytečně ostrá odpověď s užitečným obsahem (KeyPress / KeyDown). To kvalitativní odlišení znak / klávesa je právě to, co mi v nápovědě chybělo. Počítám, že v tom nebudu sám.citovat
#029307
elninoslov
@eLCHa: "vknullstring" ... samozrejme vbNullString 5
Aj by som to opravil, ale zmizla mi na tablete možnosť Edit.
A formát ešte checknem niekedy.
Ten Váš kód snáď dnes vyskúšam tiež.
A tem KeyCode : Ja som si to tiež neskôr uvedomil, že to nieje kód znaku ale klávesy. Človeka všetko nenapadne hneď, ale zrovna tie kódy som mal zistené pokusným stlačením ďaleko skôr ako z nápovedy.

3:26 Poďme už spať...citovat
icon #029311
eLCHa
@vovka
Zbytečně ostrá odpověď...
Nerozumím.

Jen tak jsem koukl. Za poslední dobu založil vary 3 vlákna a poté už ani jediná reakce...citovat
#029312
elninoslov
Rýchlo som to testol. Vaše riešenie je určo elegantnejšie. Moje nemá ešte ošetrené vloženie 2 des. čiarok, takže Vaše je aj správnejšie. Nech si ho len dotyčný ak chce doplní o ENTER pre opustenie TextBoxu.

PS: Tiež Vám nejde Editovať predošlý príspevok v ktorom je CODE ? Moje staršie príspevky v ktorých nieje CODE majú voľbu "upravit", tie s CODE nie. Iba jeden krát som zazrel "upravit" na prisp. s CODE, opravil, dal Uložit zmeny, a namiesto opravy mi dalo nový príspevok s vlastnou citáciou. Rovnako na všetkých prehliadačoch. Win aktuálny, skúsim ešte Javu updatnúť...citovat
icon #029313
eLCHa
@elninoslov
žádný problém.
Google Chromecitovat
#029335
avatar
Rozhodl jsem se udělat si inventuru tématu. To ostatně dělám vždycky, když narazím na (pro sebe) nové věci. V první řadě jsem si napsal testovací úlohu na to, co vlastně vzniká při ťukání do kláves, když plním TextBox. Výsledkem je pro mne poznatek, že pro kontrolu plnění TextBoxu po znaku je rozumné zásadně používat KeyPress, nikoliv KeyCode. Druhý poznatek z tohoto testu je nalezení třídy KeyCodeConstants, která umožňuje do textů pohodlně vkládat nejrůznější speciální znaky (včetně řídících).
Následně jsem si dal do pořádku rutiny pro plnění TextBoxů formátovanou informací. Po léta jsem to řešil případ od případu a vždycky jsem to dost pracně ladil. Tak jsem to vzal z gruntu a vnesl jsem si do hry dostatečný a jednotný řád. Kontrolu obsahu TextBoxu provádím při události Exit, a to pokusem o nastavení předepsaného formátu. Filtruji vše, co pokládám za užitečné odfiltrovat a v kladném případě změním obsah TextBoxu podle tohoto formátu. Pokud při tom narazím, prohlásím vstup za vadný a nedovolím TextBox opustit. Výsledkem je, že obsah TextBoxu je potom vždy korektní a automaticky zpracovatelný v dalších fázích programu.
Jak test kláves, tak vzorový formulář pro sběr formátované informace jsou obsahem sešitu v příloze.
Příloha: zip29335_editovanitextboxu.zip (40kB, staženo 28x)
citovat
#029404
avatar
Ahoj možná by ti stačilo dát po afterUpdate
TextBox1 =Format(val(replace(TextBox1,",",".")),"#.##0")-ten replace zajistí převod čárky na tečku(to vyžaduje vba) a funkce val zajistí vklad jen numerických dat(vše ostatní ignoruje), ale pozor jestli to budeš vkládat do listu musíš zase to samé provést s hodnotou texboxu a číslo v listu poté formátovat třeba podmíněným formátováním. R.citovat

Strana:  « předchozí  1 2

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Čas od do

lubo • 19.4. 16:30

Makro smyčka

MilanKop • 19.4. 10:46

Makro smyčka

elninoslov • 19.4. 9:02

Čas od do

elninoslov • 19.4. 8:46

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32