Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  266 267 268 269 270 271 272 273 274   další » ... 289

V Exceli nieje možné urobiť zoznam listov pomocou vzorcov. Ak nechcete alebo nemôžete použiť makrá, máte iba jedinú možnosť. Ručne si udržiavať menný zoznam listov. Ak chcete a/alebo môžete používať makro, tak Vám napíšem kód, ktorý Vám ten zoznam urobí. Napr. vytvorte si nový list, ktorý si nazvite napr. ZoznamListov.
1.a ) Do tohoto listu napíšte od bunky A1 dole zoznam všetkých listov na ktoré sa budete chcieť prepínať.
1.b ) Zoznam práve používaných listov Vám tam vloží makro.

2.a) Do listu, kde chcete mať to prepínanie si rozvrhnite, kde chcete mať výberový zoznam, a kde hyperlinkový odkaz. Označte bunku kde bude výberový zoznam, a na karte Údaje, kliknite na Overenie údajov, tam vyberte v poli Povoliť položku Zoznam. Do poľa Zdroj zadajte tento vzorec, ktorý Vám vypočíta zaplnenú oblasť s menami v liste ZoznamListov
=OFFSET(ZoznamListov!A1;;;COUNTA(ZoznamListov!A:A);)
COUNTA spočíta zaplnené bunky v stĺpci A, a OFFSET zväčší oblasť od A1 o tento počet.
2.b) Do toho listu, v ktorom budete prepínať, vložte do bunky, na ktorú budete klikať tento vzorec :

=HYPERLINK(MID(CELL("filename");SEARCH("[";CELL("filename")); SEARCH("]";CELL("filename"))-SEARCH("[";CELL("filename"))+1)&"'"&$C$1&"'!$A$1";"Prejdi na")

pričom "Prejdi na" si nahraďte za čo chcete, a $C$1 nahraďte za adresu bunky so zoznamom (z kroku 2.b)

3. Toto si nevšímajte, to zisťuje názov zošitu, potrebný pre fungovanie hyperlinku

MID(CELL("filename");SEARCH("[";CELL("filename")); SEARCH("]";CELL("filename"))-SEARCH("[";CELL("filename"))+1)

Neviem, aký iný návod chcete.

EDIT:
Upravil som prílohu, teraz tam máte ešte okrem Hypertextového odkazu v riadkoch (A1:A30), aj hypertextový odkaz B1, ktorý sa počíta pomocou výberového zoznamu C1. Teraz ten výberový zoznam berie mená z A1:A30, ale to si môžete kľudne schovať na nejaký list, a budú použité len 2 bunky B1 a C1 (alebo adekvátne)

Nechcete náhodou vypočítať číslo znížené o percentuálny úbytok ? Ak áno, tak zmente vzorec na toto.
Máte tam 2 varianty (% číslom a % vo formáte %), a ak je to tak ako si myslím, tak aj keď zadáte úbytok 100, dostanete 0, čo v predošlom prípade nedostanete. Úplne vpravo máte kontrolu nuly.

Ešte raz som si to prečítal (no dobre tak ešte 3x), a myslím, že som to pred tým pochopil zle. Pôvodne som si myslel, že ak je nejaký dátum v celej skupine <= prvému dátumu skupiny ( podľa čísla v A), tak do tohto "titulného" riadku skupiny dať OK, alebo opačne NOK. Ale teraz som to pochopil tak, že OK/NOK treba dať asi do každého riadka v skupine okrem titulného.
Nech sa páči riešenie (maticový vzorec, čiže Ctrl+Shit+Enter):
=IF(OR($A1<>"";$B1="");"";IF($B1<=INDEX($B$1:$B1;LARGE(IF($A$1:$A1<>"";ROW($A$1:$A1);0);1));"OK";"NOK"))
stačí iba nakopírovať na potrebný počet riadkov. V predošlom prípade bolo potrebné ešte vypočítať poslednú bunku, v tomto prípade nie.

Vyskúšajte toto. Každý list má svoj variant oblastí Sucet01...

@marjankaj
??? Teraz ide o čo ? O tú moju vetu, že je blbé, lebo treba myslieť na 2 veci ? Áno je to blbé, a uviedol som alternatívu na získanie relatívnej adresy, ktorá mi na pochopenie pripadá ľahšia (Address). To neznamená, že sa má prepracovávať výkonné jadro Excelu. Samozrejme, že si Excel interne neprekladá písmenká stĺpcov na čísla, ale pracuje rovno s číslami R1C1. To by boli vysoké "režijné náklady".

Ak má byť na to UDF, nieje problém, ale ak tých vzorcov bude veľa, tak to UDF neúmerne zaťaží, a preto to chce zadávateľ urobiť tak, že sa validné vzorce pripravia, a vložia naraz v jednej procedúre. To sú síce cca rovnaké režijné náklady ako UDF, ale následne sú už vzorce natívne počítané, a to je výhoda oproti UDF (pri veľkom množstve).

Nemienim sa tu baviť o MS. Na to sú iné Flame diskusie. Ja som to spomenul iba všeobecne, ako reakciu na Vás. To je celé. Ale ak chcete príklad, nech sa páči. Nechcete mi snáď povedať, že nemožnosť vytvoriť zoznam listov pomocou vzorca (napr. pomocou indexu), je ojedinelý problém... Ale Excel je výborný program, o tom žiadna diskusia. To nemôže nikto napadnúť. Väčšina problémov tak či onak, je spôsobená iba nedostatočnými vedomosťami.

Ak niečo nejako je alebo nieje, nikto s tým nič neurobíme, iba to môžeme akceptovať.

Teraz si počkáme na zac1234, či sa to bude dať teda takto riešiť.

Sub ZapisVzorec()
Dim sB As Integer, rB As Long, sV As Integer, rV As Long
sB = 5 'stĺpec bunky kam chceme zapísať nový vzorec - E5
rB = 5 'riadok bunky kam chceme zapísať nový vzorec - E5
sV = 2 'stĺpec bunky, ktorá je počítaná v novom vzorci - B2
rV = 2 'riadok bunky, ktorá je počítaná v novom vzorci - B2
Cells(rB, sB).FormulaR1C1 = "=R" & rV & "C[" & sV - sB & "]+R[" & rV - rB & "]C" & sV & "*R" & rV & "C" & sV
End Sub

V skratke, ak chcete $ (absolútne) nedávate [ ], ak chcete bez dolára (relatívne) musíte zadať [ ], a v nich je treba číslo ktoré počíta posun hodnoty riadku/stĺpca čo má vo vzorci byť, od hodnoty riadku/stĺpca tej bunky, do ktorej sa vzorec vkladá.

OT: Áno, Microsoft na zákazníkov nedbá, a ich želania (ak vôbec) prehodnocuje až po rokoch.

Skúsil som maticu, vyskúšajte. (Dátumy som pomenil)

??? Absolútne nemám potuchy, čo chcete. Akože vybrať názov oblasti zo zoznamu ? Akej oblasti, tej ktorá sa bude kopírovať ? Čiže sa bude od teraz kopírovať iba jedna oblasť (tabuľka) ? Alebo chcete do databázy zapísať iba súčet zaplnených buniek v jednej jedinej oblasti určenej tým zoznamom oblastí, ktoré sa pred tým kopírovali cez tlačítko ? A ako bude makro vedieť z ktorého listu chcete túto oblasť adresovať, keď vravíte že listov bude viac ? Asi bude výber oblasti v každom liste.

Narýchlo som pozrel na to makro, a poviem Vám to na rovinu, vôbec sa mi nechce to makro celé naštudovať, vymyslieť riešenie toho čo požadujete, a hlavne zisťovať to čo vlastne chcete. A napíšte pre lepšie pochopenie aj presne čo chcete mať v tom zozname, nie xxx,yyy, to nič nikomu nenapovie.

Takže lepšie, presnejšie napíšte čo chcete. Krištáľová guľa sa mi rozbila, a tak som pri týchto slovných logicko-vešteckých úlohách fakt natvrdlý.

Definované názvy, by sa dali jednoducho priradiť iba k určitým listom, čiže by mal každý list svoje, alebo by ich možno šlo nahradiť poľom.

Do pondelku nemám absolútne čas, od utorka ešte neviem. Ja osobne Vám to teda určite nesľúbim.

To Address máte dobre vysvetlené na MSDN:
https://msdn.microsoft.com/en-us/library/office/ff837625.aspx

To R1C1 (konkrétne relatívny odkaz pomocou []) mi príde úplne blbý, pretože treba myslieť nielen na premenné vo vzorcoch, ale navyše aj na konkrétne súradnice bunky, pretože do [] sa zapisuje rozdiel (posun chcenej bunky oproti aktuálne nastavovanej).

Tak to skúste okľukou :
Cells(hoa, hoa).Formula = "=" & Cells(hoa, hob).Address(0, 0)

Áno, napadlo ma to po odoslaní, že by to malo byť nakoniec asi takto. Všetko funguje, eLCHa je hlava, darmo ...

Ja do toho nechcem rýpať, to v žiadnom prípade, ale ak tam mal zostať aj posledný deň z predošlého mesiaca, tak u mňa teda neostane. Chybu to nehodí, ale ani posledný deň tam nieje. Je tam iba 01, teda prvý deň, čo vlastne bolo tak isto aj pred úpravami.
Mier...

Chyba je inde.
Tu je treba iba presunúť ")"
Set sh = ThisWorkbook.Sheets(Format(dDen - 1), "dd")
Set sh = ThisWorkbook.Sheets(Format(dDen - 1, "dd"))


Ale po vyplnení 31 v Júli a stlačení Ďalší deň, sa správne vytvorí nový mesiac s posledným dňom predošlého (31), ale ak dám opäť Ďalší deň, tak to stroskotá na
Set sh = Worksheets(Format(dDen - 1, "dd") & " (2)")
pri odkaze na neexistujúci list, lebo dDen má už hodnotu 2.8. List "01" tam ale nieje.
Pri prechode na nový mesiac, bude treba ako som písal, zachovať 3 listy, nie 2. (31, 01, SAKO)

To akože chcete mať po vytvorení napr. nového mesiaca Júl (Červenec), ako prvý list posledný deň z Júna (Červen) čiže 31 ? Potom budete mať vlastne 3 listy - 31,01,SAKO. Takto ? Tak to bude problém, pretože keď prídete potom na koniec Júla (Červenec), tak sa vytvorí list 31, to ale nieje možné keď už list 31 existuje (ten Júnový - Červnový). Muselo by sa napr. testovať, pri vytváraní listov, či je deň číslo 2, a vtedy ten posledný Júnový 31 zmazať. Plus iné komplikácie, spojené s náväznosťou na list 01. Možno keď bude čas a chuť ... snáď si ale eLCHa nájde ešte na Vás čas, predsalen je to najlepšie upravovať autorovi makra.


Strana:  1 ... « předchozí  266 267 268 269 270 271 272 273 274   další » ... 289

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

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49

Vzorec pro zkopírování obsahu buňky.

veny • 6.7. 8:28