Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  110 111 112 113 114 115 116 117 118   další » ... 140

10 hodnot - počáteční čas 12:00 - interval 30 minut
Range("A1:A10").Value = Evaluate("(""12:00"")/1+(ROW(1:10)-1)*(""0:30"")/1")

To není názor, to je fakt ;)
Nevím kdo vám co říkal, ale asi jste to špatně pochopil ;)

Nepište makro pro každý prvek - napište jedno a odkazujte se na něj

Dobře, tak ještě jednou a pomalu

Textové pole (TextBox) vrací textovou hodnotu. Jak si ji zobrazíte, záleží na vás. Nicméně, i když tam máte číslo, je to pořád text.
Tento text můžete převést na číslo, ale když už to bude číslo, nebude to mít žádný formát (nebude mít oddělené tisíce).
S tímto číslem můžete provést nějaké výpočty a výsledek si naformátovat podle přání - naformátováním ho zase převedete na text.
Pokud s tímto výsledkem budete chtít něco dělat - budete ho muset znovu převést na číslo.

Nic jiného vám tady nikdo neřekne.

Jirka32 napsal/a:

potřebuji jen aby mi výstup ze zadavacího pole platil za číslo (nikoliv text) a měl formát s oddělením tisíců

číslo nemá žádný formát
formát má buňka
naformátujte si buňku a vložte do ní číslo

Asi takhle - vy jste tam sice dal On Error, ale zbytečně. Váš kód žádnou chybu nevyvolá.
U mne tu chybu vyvolává to / 1
Replace(.Value, SUFFIX, vbNullString) / 1, protože jsem mu dovolil textový řetězec (tedy nejen po stisku BckSp) dělit 1.
On ten kód není dokonalý ani náhodou - stiskněte si např. klávesu Del ;)
V podstatě bychom mu měli zakázat, aby pracoval s jinou, než číselnou hodnotou a k tomu můžeme využít další Static proměnné ;)

Private Sub TextBox1_Change()
Const SUFFIX As String = " Kč"

Static bCallingItself As Boolean
Static sPreviousValue As String

Dim iNewValue As Long
If Not bCallingItself Then
bCallingItself = True

With TextBox1

If Not .Value = SUFFIX Then
On Error Resume Next
iNewValue = Replace(.Value, SUFFIX, vbNullString) / 1
Dim bError As Boolean
bError = Not Err.Number = 0
On Error GoTo 0

If Not bError Then
.Value = Format(iNewValue, Format:="#,##0") & SUFFIX
sPreviousValue = .Value
Else
.Value = sPreviousValue
End If
.SelStart = Len(.Value) - Len(SUFFIX)
Else
.Value = vbNullString
End If

End With 'TextBox1
End If

bCallingItself = False
End Sub


Teď už by to mělo být správně ;)

Opičák napsal/a:

...ale netuším jak tam dostat měnu (Kč)


Jen tak z legrace a taky ukázka využití static proměnné

Private Sub TextBox1_Change()
Const SUFFIX As String = " Kč"

Static bCallingItself As Boolean
If Not bCallingItself Then
bCallingItself = True

With TextBox1
.Value = Format(Replace(.Value, SUFFIX, vbNullString) / 1, Format:="#,###") & SUFFIX
.SelStart = Len(.Value) - Len(SUFFIX)
End With 'TextBox1
End If

bCallingItself = False
End Sub


Při vkládání do buňky to pak zase nesmíte zapomenout dát pryč ;)

Ale lze skrýt okno ;)

Tak se mi podařilo zavolat Excel4 vlastní funkci pomocí VBA
Takže i ostatní postižené národy si mohou pohodlně napsat vlastní fci ve VBA a použít pro Evaluate lokalizované názvy funkcí
Function EVALUATE_VBA(Vzorec As String)
' Makro1!EVALUATE_EXCEL4 - pouze následující 2 řádky
' =ARGUMENT("vzorec"; 2)
' =NÁVRAT(VYHODNOTIT(vzorec))

Dim vVysledek
vVysledek = Application.Run("Makro1!EVALUATE_EXCEL4", Vzorec)
'a tady si teď s proměnnou vVysledek můžeme dělat pohodlněji co chceme ;)))

EVALUATE_VBA = vVysledek
End Function

Proveďte svoje "bádání" úplně stejně na jiném PC. Pokud to bude dělat, taxte možná i něco objevil.

Ale pochybuju, tipuju to na problém v instalaci, protože mě to nespadlo ani jednou, i když jsem se snažil ;)

Já hlavně nechápu, jaxe vám podařilo pojmenovat modul
jako "Modul 1", když mezera není povolený znak
Přejmenujte na "Modul1" a zkuste.

V souboru Form.xls žádná makra nemám.

Vlastní formát
Například:
"+420 ("000")" 000" "000

Áno - mýlite sa ;)

Využijte vlastností ListFillRange (odkaz na oblast se seznamem hodnot) a LinkedCell (aktuální hodnota)

Pokud dobře vidím, používáte formulářové prvky. Ty já nepoužívám, používám ActiveX, takže netuším.

Nebo můžete sloučit A1:B1 a A2:B2 a použít Ověření dat

Myslíte - vybrat Január nebo 2012, uložit, zavřít, otevřít a pak ta máte něco jiného?
Mně to tam zůstává.

Teď jsem mimo. Co je Drop Down?

Příloha?


Strana:  1 ... « předchozí  110 111 112 113 114 115 116 117 118   další » ... 140

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje