Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  114 115 116 117 118 119 120 121 122   další »

jj, už som to medzitým našiel, fakt ma občas neskutočne štve, koľko vecí človek pozabúda, o logaritmoch som naposledy počul tak pred 10 rokmi, to určite nepreháňam. Takže, cez dekadický logaritmus chceš spočítať rád toho najdlhšieho reťazca v desiatkovej sústave a používaš doleuvedený prevod
Log(x)=ln(x)/ln(10)
čo je samozrejme povolená matematická operácia, akurát človek zabúda a nespomenie si, že čosi také existuje. Díky moc, bolo to poučné :)

Marian, nejaký borec by to dal ešte i nejakým maticovým vzorcom, mám tušenie, že to by šlo tiež nejak, ale hlava už neslúži.
Rozhodne som rád, že som vďaka Tebe objavil funkciu split.
Našiel by si si moment a objasnil to kúzlo s delením logaritmov? Zo školy som už nejaký ten rok preč a toto bez nakopnutia asi nepoberiem :)

Keďže som to medzitým napísal, tak prikladám svoju verziu (tá Marianova je nádherná a určite ju preštudujem :))

Function NajdlhsiaSeria(bunka As Range) As Integer
Dim i, N As Integer
N = 0
NajdlhsiaSeria = 0
For i = 1 To Len(bunka)
If Mid(bunka, i, 1) = 1 Then
NajdlhsiaSeria = NajdlhsiaSeria + 1
Else:
N = WorksheetFunction.max(NajdlhsiaSeria, N)
NajdlhsiaSeria = 0
End If
Next i
If NajdlhsiaSeria < N Then NajdlhsiaSeria = N
End Function

Najjednoduchšie sa mi javí napísať si pre túto úlohu užívateľskú funkciu. Jej argumentom by bol uvedený reťazec, funkcia by si zistila počet znakov a pre každý znak vyhodnotila, či je rovný jednej. Počet jedničiek by si postupne kumulovala, v nejakej pomocnej premennej držala predošlé maximum, t.j. počet jedničiek idúcich za sebou. Pokiaľ si na to netrúfneš, tak daj vedieť, skúsil by som to potom spíchnuť :)

Pre zobrazenie dialógového okna pre výber súboru môžeš použiť napr. inštrukciu Application.FileDialog
zadaj si to do nápovedy, alebo Googlu, tam zistíš, ako sa s tou inštrukciou pracuje. Vracia názov súboru, prípadne adresára, túto hodnotu potom použiješ pre samotné otvorenie súboru, z ktorého chceš dáta načítať.
Kopírovanie z niekoľkých zdrojov pod seba poriešiš napr. tak, že v cykle vždy odskočíš do prvej prázdnej bunky nachádzajúcej sa pod už vyplnenou oblasťou, alebo zistíš takto v cykle adresu prvej prázdnej bunky a kopíruješ potom do nej.

Bude trochu záležať na tom, či tie políčka sú v nejakom formulári, alebo priamo na liste. Bolo by asi lepšie, keby si priložil vzor, ona sa určite nejaká dobrá duša, ktorá Ti ten kód napíše, potom nájde :)

Klikanie a následný prepočet sa dá riešiť udalostnou procedúrou Worksheet_SelectionChange, stačí jednoduchý kód vložený do konkrétneho listu, čiže osobne by som asi rezignoval na hyperlink, ktorý mi príde zbytočný.
Nejak ale nerozumiem vytvoreniu vzorca s textom "vyšiel tip"...

Ahoj, reč je o objektoch, resp. objektovom modeli VBA pre aplikáciu Excel, ktoré by som rád videl v hierarchickej štruktúre (pavúkovi), ako to bolo dostupné ešte v XPčkach, kde stačí po stlačení klávesy F1 z VBA editoru napísať do vyhladávacieho okna "object model" a vybrať si tému Microsoft Excel Objects, objekty sa zobrazia v diagrame (pavúkovi), ktorý si môžem rozklikávať a dostávať sa postupne na nižšie úrovne, k jednotlivým objektom potom zobrazovať ich vlastnosti a metódy.
V 2007 existuje Excel Object Model Map, tá už je ale dosť nepoužiteľná voči tomu, čo existovalo v Excel 2002. No, a v 2010 už nie je pre istotu radšej dodané vôbec nič, sa mi zdá...
Stačí takto?

Ahoj, neviete náhodou, ako sa dá zobraziť tá hierarchická štruktúra objektov? Mám dojem, že v predošlých verziách Excelu sa mi to vždy nejako nakoniec podarilo, ale u 2010 to nedokážem nájsť, neviete, kde sa to prípadne nachádza? Chystám pre kolegov nejaké školenie a rád by som im tú štruktúru ukázal, budem vdačný za pomoc...

Môžeš použiť countifs v prípade, že máš Excel 2007 a vyšší, inak skalárny súčin, alebo maticový vzorec. Predpokladajme, že tie dáta sú v stĺpcoch A a B, ten maticový vzorec je potom v tvare:
=SUMA((B1:B5<>0)*(A1:A5=0))
po zadaní vzorca do bunky nemačkáš enter, ale kombináciu ctrl+shift+enter
skalárny súčin a countifs si nájdeš v nápovede

do bunky A1 zapíšeš: 19+40 (presne, ako to vidíš)

vzorec, ktorý to prevedie na čas, je:
=ČAS(;ZLEVA(A1;HLEDAT("+";A1)-1);ZPRAVA(A1;DÉLKA(A1)-HLEDAT("+";A1)))

sformátuj na mm:ss
potom môžeš sčítať, výsledok sformátuj na [mm]:ss
bude to ukazovať čas v minútach a sekundách, tzn 61 min zobrazí ako 61 min, nie 1 hodina a 1 minúta

gogy, bohužiaľ, mám trochu honičku, takže makro pre túto chvíľu písať nebudem a nedostanem sa k tomu skôr, než budúci týždeň. Každopádne, výber najbližšej väčšej hodnoty je možný zo zoznamu, zoradeného vzostupne, pomocou funkcie:
=INDEX(Zoznam; POZVYHLEDAT(PRAVDA; INDEX(Zoznam>HodnotaKtoruPorovnavasVociHodnotamVzozname;0); ))
Zvyšok si buď dorobíš, alebo pomôže niekto iný, sorry, ja nestíham 7

Skúsil by som sa na to pozrieť, určite to pôjde cez Worksheet_Change procedúru, podmienku a funkcie INDEX a POZVYHLEDAT. Akurát v práci neotvorím súbor *.7z. Mohol by si sem upnúť archív v *.zip formáte?

jablicko, som lenivý písať makro na vytvorenie nových súborov, prepáč. Každopádne, pokiaľ si skopíruješ List 1 do Listov 2 a 3 a spustíš doleuvedené makro (musíš mať aktivovaný Tvoj súbor s uvedenými listami), dostaneš na listoch 2 a 3 ako výsledok to, čo požaduješ. Výsledok z Listov 2 a 3 si potom môžeš uložiť do nových súborov tak, ako potrebuješ.
Option Explicit

Sub Vyfiltruj()

Dim cell As Range
For Each cell In Worksheets(2).UsedRange
If InStr(cell, "SA") = 0 Then cell.ClearContents
Next

For Each cell In Worksheets(3).UsedRange
If InStr(cell, "SA") > 0 Then cell.ClearContents
Next

End Sub

Pokiaľ by nefungoval Jezov návod (neskúšal som), tak pridanie label počas run-time makra ide napr. nasledovne:Sub pom()
UserForm1.Show
End Sub

Private Sub UserForm_Initialize()
Dim lbl As MSForms.Label
Set lbl = Me.Controls.Add("Forms.Label.1")
With lbl
.Top = 30
.Left = 24
.Height = 36
.Width = 102
.Caption = "MyLabel"
End With
End Sub

akurát si podmienkou musíš ošetriť kedy má dojsť k vytvoreniu nového label


Strana:  1 ... « předchozí  114 115 116 117 118 119 120 121 122   další »

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