< návrat zpět

MS Excel


Téma: číselná řada řím. rss

Zaslal/a 31.3.2011 13:35

Dobrý den
opět obtěžuji dotazem.
Potřebuji vytvořit číselnou řadu v římských číslicích od 0 do XXI, která se bude opakovat stále za sebou 0,I,...,XXI,0,I,...
Asi jsem si vzal větší sousto, než jsem schopen sníst a nevím, jak na to. 3
Další info je v příloze. Děkuji

Příloha: rar4481_ciselna-rada.rar (5kB, staženo 13x)
Zaslat odpověď >

icon #004482
Poki
Nic jednoduchyho jsem nevymyslel, zkus se podivat.
Pokud budes chtit kod napastovat na jinou tabulku, nastaveni je provedeno ze zacatku kodu u promennych.
kdyby neco, ozvi se...
Příloha: zip4482_ciselna-rada.zip (13kB, staženo 13x)
citovat
#004483
avatar
děkuji, je to trochu složitější, než jsem si představoval, ale hlavní je, že to funguje, ted se to pokusím přepasovat do své tabulky a uvidíme 7
Dík moccitovat
#004486
avatar
Tak a problém je tu 7

Poki, promiň, že opět otravuji, ale mam problém s převedením kodu do jiné tabulky. Hodnoty jsem přepsal dle mé tabulky.
1. vymazání sloupce funguje
2. vložení 1. NULY funguje
3. začátek zapisování číselné řady = problém
v tomto zápisu (viz kod), mi to číselné řady vypíše správně, ale místo v umístění H40:H11 jsou v H1048575:H1048398
4. vložení další Nuly a 5. zpět na cyklus nevím, zda je zápis správně, tam jsem se nedostal

Toto dělá, když J5=5

Sub DoplnRimskeDS()
Dim OblastKONEC As Range
Dim kdeKONEC As Long
Dim radekKONEC As Long
Dim Radek As Long
Dim PosledniBUNKA As Range

'smazani oblasti B
Range("H11:H46").ClearContents

Set OblastKONEC = Range("a38:a46")
kdeKONEC = Range("j5").Value
radekKONEC = OblastKONEC.Find(kdeKONEC, , , xlWhole).Row
Set PosledniBUNKA = Range("h11")

'první vložení nuly
Cells(radekKONEC, 8) = 0

dalsi:
'cyklus pro 1-21
For i = 1 To 21
If Len(PosledniBUNKA) = 0 Then
Radek = Cells(41, 8).End(xlDown).Row - 1
Cells(Radek, 8).Formula = "=roman(" & i & ",4)"
End If
Next i

'vlozeni dalsi nuly
If Len(PosledniBUNKA) = 0 Then
Radek = Cells(41, 8).End(xlDown).Row - 1
Cells(Radek, 8).Formula = 0
End If

'zpet na cyklus
If Len(PosledniBUNKA) = 0 Then
GoTo dalsi
End If

End Sub

když J5=6, tak umístění je správné, ale v H41 se I-XXI stále mění, jako by se losovalo dokud nezastavím makro. H40 se neděje nic
pokud je J5=1, tak je H41=V, H42IV, H43=III, H44II, H45=XIX, H46=0
snad jsem to vysvětlil srozumitelně, nevíš náhodou, co s tím??citovat
#004491
avatar
Takové prostěští řešení pokud vyhovuje?
Příloha: zip4491_ciselna-rada.zip (6kB, staženo 13x)
citovat
icon #004493
Poki
Kdyz to nevidim, tak se to dost tezko odhaduje, ale co me napada:

1) Musis smazat cely sloupec H (protoze se tam pracuje s .end(xldown))
2) S tim souvisi toto: Radek = Cells(41, 8).End(xlDown).Row - 1 (tady by melo byt cells(1,8) - proto se nachazi bunka pred tou, ktera neni prazdna).citovat
#004497
avatar
Super děkuji, funguje to, akorát jsem použil vzorce od krapla, je to jednodušší a funguje automaticky, ale Poki, děkuji za snahu, ve VBA jsem lama, tak to je na mě trochu moc složité, možná časem, až budu vzdělanější 7 .
Krapl děkuji, funguje to, akorát jsem musel vložit a následně skrýt sloupeccitovat

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