Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  159 160 161 162 163 164 165 166 167   další » ... 286

xlnc napsal/a:

...(teď se někdo jistě kousne a dá sem řešení :-)...
9
Sakriš, v noci o 1:02 som dokončil makierko na import dát z jedného súboru aj s konvertom. Len sa mi to sem nechcelo už dávať ...

Inak Vy tam nepotrebujete vkladať vzorce. Veď Vás zaujíma iba DATE / TIME / SOUND.

Terazky to sem už nemôžem dať. Mám tu na stole veľmi podobnú problematiku už rok, vôbec to nehorí, ale možno sa teraz dokopem s tým aj pohnúť 5 ...

fasd39 : xlnc je profík, skúste sa s ním dohodnúť.

No a na niekoľko viet v bunke je už potreba UDF.

Napr takouto UDF, ale treba ju ešte doošetriť napr. na to, aby preskočila bunku,ktorá je zároveň parameter.
Function HLADAJ_BUNKU(Co As Variant, Optional Typ As Byte = 1) As Variant
Dim Bunka As Range, WS As Worksheet, CX As Long, CY As Long

On Error GoTo KONIEC:
With ActiveWorkbook
With Worksheets(1)
CY = .Rows.Count: CX = .Columns.Count
End With

For Each WS In .Worksheets 'Prehľadá všetky listy
With WS
Set Bunka = .Cells.Find(What:=Co, After:=.Cells(CY, CX), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
End With
If Not Bunka Is Nothing Then Exit For
Next WS
End With

If Not Bunka Is Nothing Then
Select Case Typ
Case 1: Set HLADAJ_BUNKU = Bunka 'Odkaz na bunku
Case 2: HLADAJ_BUNKU = Bunka.Address 'Adresa bunky
Case 3: HLADAJ_BUNKU = Bunka.Parent.Name 'List bunky
Case 4: HLADAJ_BUNKU = Bunka.Worksheet.Parent.Name 'Zošit bunky
Case 5: HLADAJ_BUNKU = Bunka.Address(External:=True) 'Celá cesta
Case 6: HLADAJ_BUNKU = Bunka.Row 'Súradnica Y - riadok
Case 7: HLADAJ_BUNKU = Bunka.Column 'Súradnica X - stĺpec
End Select
Else
HLADAJ_BUNKU = CVErr(xlErrNA) 'nenájdené
End If

KONIEC:
If Err.Number <> 0 Then HLADAJ_BUNKU = CVErr(xlErrValue) 'iná chyba
Set WS = Nothing: Set Bunka = Nothing
End Function

Myslím, že tak ako navrhujete, to bude asi najschodnejšie.

Neviem, ako toto pomôže. Skúste to rozvinúť. Neviem ako získať z práve zmenenej bunky naformátovanej ako čas (teda číslo) informáciu o tom, či bolo zadané:
• 8,25 - číslo s desatinnou čiarkou, ktorá má byť premenená na ":"
• 8:25 - čas vo formáte "h:mm", čo je tiež desatinné číslo
• 0,350694444444444 -prípadne ešte (to ale nepredpokladám) desatinné číslo, ako skutočné číslo času, reprezentujúce čas "8:25"

Najskôr ste zmienil oblasť dát

...vyhledat v oblasti C1:E357...

potom
...to co chci hledat se může nacházet kdekoliv (v daném sešitě)...

následne
...SOUČIN.SKALÁRNÍ((B1:Z2000=A1)*ŘÁDEK(B1:Z2000))...

Či už {matica} alebo SUMPRODUCT/SOUČIN.SKALÁRNÍ (to je tiež matica), musí mať obmedzený rozsah. Nemôže to pri každom prepočítaní listu hľadať niekoľkokrát v 1048576x16384
=17179869184 buniek, to je výpočtovo neúnosné.
Hľadať v celom zošite pomocou vzorca nieje možné. Navyše vôbec nie univerzálne, pretože ak by aj šiel použiť 3D odkaz na viac listov, tak to určite nepôjde na všetky listy, lebo vzorec nedokáže zistiť mená prvého a posledného listu v hocijakom súbore a následne ich použiť v 3D odkaze.

...odkaz zapsat do buňky A2...

...abych dokázal určit umístění (souřadnice)...

...odkaz(souřadnice) hledané buňky...

- odkaz odkazuje na bunku/oblasť a má typ Range. Ak nazveme odkaz ODKAZ, tak ho môžeme použiť napr. =SUM(ODKAZ)
- umiestnenie (povedzme, že myslíte adresu), ktorá má typ String, teda napr. ak toto umiestnenie nazveme rovnako ODKAZ, použijeme ju =SUM(INDIRECT(ODKAZ))
- súradnice určujú pozíciu X a pozíciu Y, teda sú typu 2x Long. Ak si ich nazveme SURADNICA_X a SURADNICA_Y tak ich môžeme použiť napr. =INDEX(oblasť; SURADNICA_Y; SURADNICA_X)

... i bez přiloženého excelu (který by pouze směřoval ke konkretizaci výsledného vzorce)...

Záleží na tom, čo chcete ďalej s tým robiť, a nie že nie. To je dôležité pre tvorbu riešenia.

Předtím jsem neuvedl, nevím jak moc je to podstatné, že se hodnota bude v oblasti dat vyskytovat právě jednou.

Veľmi podstatné. Matica s funkciou SMALL nájde prvý (alebo X-tý) výskyt hľadanej hodnoty, čo je potrebné v prípade viacnásobného výskytu, kdežto SUMPRODUCT/SOUČIN.SKALÁRNÍ "nájde" všetky a urobí súčet súradníc, teda výsledok je blbosť.
Aspoň toto je uvedené na správnu mieru.

Ak chcete riešenie, ktoré nájde hocičo, kdekoľvek v akomkoľvek zošite s koľkokoľvek riadkami a stĺpcami a v hocijakom počte a názvoch listov, tak jedine makrom, napr. tak, že si umiestnite makro do "Osobného zošitu makier" PERSONAL.XLSB, alebo urobíme doplnok s danou funkcionalitou a ten si doinštalujete do Excelu. Každopádne taká funkcia je neprenosná na iný PC obyčajným prenesení vzorca, ale je potrebné aj makro (PERSONAL.XLSB alebo doplnok).


"elninoslov" napsal/a:

Vy viete čo chcete, ale neviete to dať na papier.
My vieme čo ste dal na papier, ale nevieme čo chcete.

Práve som snáď vymyslel príslovie alebo čo 1

Function UDF_DATUM_SUBORU(Subor As String) As Date
Application.Volatile
UDF_DATUM_SUBORU = FileDateTime(Subor)
End Function

alebo
Function UDF_DATUM_SUBORU2(Subor As String) As Date
Application.Volatile
UDF_DATUM_SUBORU2 = CreateObject("Scripting.FileSystemObject").GetFile(Subor).DateLastModified

End Function
A do bunky si dajte obdobný vzorec, kde E1 je cesta a E12 je súbor:
=UDF_DATUM_SUBORU(E1&E12)

A čo Vám bráni odpovedať na to, na čo sa pýtam ?
Kde je teda reálna príloha ?
Ten vzorec, čo som dal, nieje jednoduchý, a preto, aby sa dal ľahšie čítať sa používa Definovaný názov, ale kľudne si to môžete spojiť do jediného supervzorca, to je na Vás. Rovnako ako reakcie...
Aby ste vedel, ako sa dá vnímať rôznymi spôsobmi to, čo popisujete, tak mrknite na prílohu, čo všetko človek môže z popisu-nepopisu vydedukovať.

Šmarjá ... to je zas iný popis ako na začiatku, a príloha, čo so začiatkom nekorešponduje, a navyše nepriekazná (chýbajú tie "iné stĺpce" čo spomínate).

V buňce A1 bude hodnota(text, číslo)

To znamená, že prehľadávaná tabuľka obsahuje krížom/krážom nepravideľne a nepredvídateľne rozhádzané čísla texty ? Uveďte reálny príklad vyplnenej oblasti C1:E357.
Vy chcete nájsť niekde v oblasti bunku s hodnotou z A1, potom niekde v oblasti bunku s hodnotou z A2, a hodnoty medzi týmito dvomi nájdenými bunkami chcete spočítať ?
Uveďte na príklade s vyplnenými dátami v C1:E357 príklad, kde manuálne vyfarbite, ktorých buniek sa má súčet týkať.
Časom nešetrite, lebo takéto vysvetľovanie akurát odrádza.

Hmm, no ono "nahradiť" tú čiarku dvojbodkou tak, aby vznikol správny zamýšľaný čas nieje problém, rozdelením desatinnej a nedesatinnej časti a použitím TimeSerial(). Ale vidím tam problém, čo ak niekto zadá čas v korektnom formáte 8:25 (nie 8,25)? Vy nájdete v procedúre Worksheet_Change desatinné číslo, ktoré už zodpovedá desatinnému číslu skutočného času, ale to neviete, lebo pre makro to bude zase iba číslo, ktoré treba zmeniť na "správnu" formu čísla času - teda ten čas pokaká. Zatiaľ ma nenapadá možnosť, ako zistiť či bolo zapísané desatinné číslo 8,25, alebo čas 8:25, lebo v oboch prípadoch dostanete až výsledok = desatinné číslo.
Ak ten oddeľovací znak bude iný ako čiarka, tak sa to bude dať identifikovať a spracovať. Ale zase nesmie to byť bodka na EN Office, lebo tá je desatinným oddeľovačom na EN.

No tak to Vám potom z toho všetkého stačí len tá jednoduchá funkcia UDF:
Function UDF_OBSAH_SUBORU(Cesta As String, Subor As String) As String
Dim F As Integer
Application.Volatile
F = FreeFile
Open Cesta & Subor For Input As #F
UDF_OBSAH_SUBORU = Replace(Input(LOF(F), F), vbCrLf, vbNullString)
Close #F
End Function

Iný príklad...

No a ktorá predstava bola tá správna ???
Zoznam súborov a obsahov v liste?
Výberový zoznam a následný VLOOKUP?
Výberový zoznam a následná UDF na obsah?
ListBox v liste naplnený definovanou oblasťou?
ListBox so súbormi vo formulári, a po kliku načíta do TextBoxu obsah súboru?
ListBox s obsahmi vo formulári?
...
Ani ste si nevšimol, že je tam viacero príkladov použitia?

S tým sa dá v makre dobre vyblbnúť 5

PS: Nieje to ošetrené ešte na chyby, napr. neexistencia súboru a pod. Možno neskôr po upresnení, či sa niečo z toho bude hodiť. Pretože, ako vždy, nechápem čo fortes chce 7

Worksheet_Change je procedúra vyvolaná pri zmene hodnoty nejakej bunky. Či už v jednom liste, alebo aj v celom zošite. Makro máte vložené v procedúre Worksheet_Change listu "1", ale máte tam aj "pokus nakopírovania" tohto makra v globálnej procedúre Worksheet_Change celého zošitu. Tam je to samozrejme nefunkčné, lebo globálna má o 1 parameter, ktorý určuje práve menený list, naviac.
Celé to píšem preto, že z Vášho popisu nieje zrejmé, ako to má fungovať.
Na prvom liste má byť zoznam mien listov A1:A6 ?
Kontrola zmeny bunky sa má diať práve a len na prvom liste, a podľa týchto hodnôt v A1:A6 sa premenujú listy ?
Bude vždy presne 6 listov ?
Alebo kontrola zmeny nejakej bunky má prebiehať v celom zošite, na každom liste ?
Ak áno, tak na každom liste sa kontroluje bunka s rovnakou adresou, napr. A1 ?
Ak áno, prečo pole adries obsahuje raz stĺpec A a inokedy stĺpec TA ?
Ak nie vždy rovnaká bunka, aký je kľúč na určenie adresy kontrolovanej bunky v každom liste ?
...


Strana:  1 ... « předchozí  159 160 161 162 163 164 165 166 167   další » ... 286

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

Vynásobit hodnoty kurzem - Power Query

Alfan • 26.4. 7:56

Relativní cesta - zdroje Power Query

Alfan • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

elninoslov • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

lubo • 25.4. 19:18

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 15:12

Relativní cesta - zdroje Power Query

Alfan • 25.4. 15:08

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 14:21