Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem excel 2010, ako sa z indexoveho zoznamu harkov presunut na dany harok 1 klikom

Budem zlucovat vela harkov do jedneho zosita(subora).
Videl som niekde ze sa da urobit prvy harok ako zoznam harkov (ako obsah v knihe).
Ak sa klikne na niektory nazov, hned to cloveka presunie na dany harok.

1, Pomocou akych funkcii sa to robi ?

2, Ako je mozne nastavit, aby sa pri kazdom novom spusteni zosita(subora), nezobrazil posledny navstiveny harok, ale ten indexovy zoznam - rozcestnik ?
Ale nie vseobecne pri vsetkych excel suboroch, ale iba pri tomto jednom.

3, Nieco som vygooglil, sa to pouzit pre moju potrebu ?

=IF(A17<>"";"";HYPERLINK("#'("&COUNTBLANK(C$3:C17)&")'!A"&MATCH(C17;INDIRECT("'("&COUNTBLANK(C$3:C17)&")'!A1:A1000");0);VLOOKUP(C17;INDIRECT("'("&COUNTBLANK(C$3:C17)&")'!$A$2:$B$1000");2;0)))
Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
siki pouzivam seznam listu upraven 2 ale narazil som na chybu. ked je v nazve harka apostrof ', tak…
IT_lamiak 24.06.2015 20:55
IT_lamiak
Da to opravit. Jednoducho do nazvu harka nedavaj apostrof! Kto to kedy videl! Vidim, ze este stale…
robert13 24.06.2015 22:03
robert13
ty curak, len do mna rypes ja to musim mat v anglictine cele, a preto sa apostrofu nevyhnem !
IT_lamiak 24.06.2015 22:44
IT_lamiak
Ehm, apostrofu sa da vyhnut vzdy, aj v anglictine. Necital som to tu cele, (to je tak na pol dna),…
MM.. 24.06.2015 23:42
MM..
Ja VBA neviem. Do nazvov apostrof musi ist. Cize vo VBA sa musi odignorovat ako koment a zobrat ako…
IT_lamiak 25.06.2015 19:29
IT_lamiak
To sa nerobi cez ziadne if ale ten apostrof sa zvycajne escapuje specialnym znakom pred tym, ak ma b…
MM.. 25.06.2015 19:55
MM..
Toto su 2 makra v jednom module: Sub seznam_listu() Dim ceLL As Range Dim i As Long Dim Tlacitko As…
IT_lamiak 25.06.2015 20:06
IT_lamiak
Prenesením makra do iného zošita sa neprenesie aj priradenosť ku klávesovej skratke. Makro "Zpet" je…
robert13 25.06.2015 20:51
robert13
Vzdy ked otvorim sikiho subor mi vyskakuje: je to z internetoveho zdroja povolit otvorenie, a tiez P…
IT_lamiak 25.06.2015 20:55
IT_lamiak
Povoliť. Vieš o čo ide, robil Ti ho Siki. (Dúfam, že ho už máš stiahnutý a spúšťaš ho u seba) Ja mám…
robert13 25.06.2015 20:57
robert13
Pocuvaj robertko okolo teba sa svet netoci, to ze ty nie si ochotny tu poradit nic neznamena. Nie si… nový
IT_lamiak 04.07.2015 15:37
IT_lamiak
Reagoval sem na toto: Da sa urobit makrom, aby ked zmenim obsah komentu v harku1 so zoznamom, aby s…
Siki83 01.07.2015 21:12
Siki83
Je to loteria ? Co by sa mohlo zle stat, nerozumiem. Ak vravis, ze to nie je dobre, dalo by sa co na…
IT_lamiak 01.07.2015 21:20
IT_lamiak
Makro sem psal jen pro aktualizaci komentářů, podle Tvého požadavku. To znamená, že provedeš změnu k…
Siki83 01.07.2015 21:31
Siki83
To je problem, lebo on sa tu niekde uz vyjadril, ze ziaden kod uz pisat pre mna nebude A dal som ta…
IT_lamiak 01.07.2015 21:36
IT_lamiak
up nový
IT_lamiak 02.07.2015 11:55
IT_lamiak
up nový
IT_lamiak 03.07.2015 08:30
IT_lamiak
up nový
IT_lamiak 03.07.2015 22:08
IT_lamiak
Ešte jeden nezmyselný príspevok podobného typu a vlákno zamknem. nový
los 03.07.2015 22:41
los
Namiesto upovania si vytvor na kazdom liste makro s public funkciou nazvi si ju jak chces (trebars G… nový
MM.. 04.07.2015 01:30
MM..
Ale to by predsa mal zas povinnost vybavovat jednotlive listy makrami! On proste nemieni mat dalsiu… nový
robert13 04.07.2015 08:28
robert13
Pockaj teraz nechapem. Los napisal, ze sa to bude dat ak: "Ešte existuje možnosť mať tú tvoju poznám… nový
IT_lamiak 04.07.2015 12:12
IT_lamiak
Obavam sa, ze tu ti uz ziadne makro nikto neurobi... Takze moja posledna (a vobec nie ironicka) rada… nový
robert13 04.07.2015 14:16
robert13
Stale to riesim, ale teraz sa chcem vratit k tomuto mini makru: Private Sub Workbook_Open() Sheets(… nový
IT_lamiak 17.07.2015 22:12
IT_lamiak
Private Sub Workbook_Open() Sheets("Sheet List").Activate ActiveWindow.ScrollRow = 1 End Sub nový
Siki83 17.07.2015 23:21
Siki83
Ked si chcem oddychnut od mysi a pouzivat excel bez nej a otvorim si ten subor s vela harkami, chcel… nový
IT_lamiak 19.07.2015 16:26
IT_lamiak
V nastaveních Excelu máš volbu, co má kurzor po stisknutí Enter udělat. Když si nastavíš aby zůstal… nový
jirka44 19.07.2015 16:35
jirka44
Pozrel som si to cele, ale nesplna to moje poziadavky pretoze: - ak to nezafajknem, po od-enterovani… poslední
IT_lamiak 19.07.2015 16:46
IT_lamiak

Ehm, apostrofu sa da vyhnut vzdy, aj v anglictine.

Necital som to tu cele, (to je tak na pol dna), ale tak si predsa ten odkaz uprav tak, aby fungoval, ked nutne potrebujes apostrof. Bud treba ten apostrof escapovat (\pred neho alebo co) alebo zapisat ako hex hodnotu, v zavislosti od toho co to tam mas za makra alebo co to tam vlastne robis.

Toto su 2 makra v jednom module:

Sub seznam_listu()
Dim ceLL As Range
Dim i As Long
Dim Tlacitko As Object
Dim Tlacitko2 As Object
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
Dim Exist As Boolean

Application.ScreenUpdating = False

For Each Ws1 In Worksheets
    If Ws1.Name Like "Seznam listù" Then Exist = True: Exit For
    Next
        If Exist = True Then
            With Sheets("Seznam listù")
                .Activate
                .Columns(1).Clear
            End With
        Else
            Sheets.Add before:=Worksheets(1)
            ActiveSheet.Name = "Seznam listù"
            
            With Range("A1")
                Set Tlacitko2 = ActiveSheet.Buttons.Add(Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
            End With
    
            With Tlacitko2
                .Name = "Tlacitko2"
                .OnAction = "seznam_listu"
                .Characters.Text = "Vytvor zoznam"
                .Characters.Font.Name = "Arial"
                .Characters.Font.Size = 11
                .Characters.Font.Color = vbRed
                '.Characters.Font.Bold = True
            End With
            
        End If


For i = 2 To Sheets.Count
Cells(i + 1, 1) = Sheets(i).Name
Columns(1).AutoFit

If Columns(1).ColumnWidth < 18 Then
    Columns(1).ColumnWidth = 18
End If

Cells(i + 1, 1).NumberFormat = "@* "
Next i


For Each ceLL In Range("A3", Range("A3").End(xlDown))
ceLL.Hyperlinks.Add Anchor:=ceLL, Address:="", _
SubAddress:="'" & ceLL.Value & "'" & "!a1", ScreenTip:="Kliknutím se pøesuneš do tohoto listu", TextToDisplay:=ceLL.Value
Next

Range("A3:A" & Cells(Rows.Count, "A").End(xlUp).Row).Font.Underline = xlUnderlineStyleNone


Application.ScreenUpdating = True
Sheets("Seznam listù").Activate
End Sub

Sub zpet()
Sheets("Seznam listù").Activate
End Sub



Druhe je to Sub zpet. Pri stlaceni ctrl+q ma vrati na zoznam harkov
Potom do dalsieho modulu davam toto, aby ma pri kazdom otvoreni suboru vratilo na prvy harok s tym makrom:

Private Sub Workbook_Open()
Sheets(1).Select
End Sub

Co som urobil:
vsetky potrebne harky co som mal v suboroch ako .xls, som ulozil do novej podoby .xlsx. Vsetky harky zo vsetkych suborov som preniesol do jedneho spolocneho suboru.
Potom som tam pridal to makro, ale nejako to nefungovalo do druhe Zpet makro.
Je dovolene nakoniec pridat makro co sluzi na pracu s harkami, ci to musi byt ako prva vec vlozena do noveho suboru ? Nechapem, taketo malickosti co mi nevychadzaju, mi zaberaju kopu casu. Neviem preco sa to deje..

Prenesením makra do iného zošita sa neprenesie aj priradenosť ku klávesovej skratke. Makro "Zpet" je treba znova naviazať na skratku CTRL+Q.
Za ďalšie, hárok 1 musíš mať nazvaný tak, ako je nazvaný vo VBA t.j. "Seznam listu"
Za ďalšie, makrá si môžeš do zošita preniesť kedy chceš.
Za ďalšie, počnúč Excelom 2007 je potrebné zošity obsahujúce makrá ukladať vo formáte xlsm
Za ďalšie všetkým problémom by si sa bol vyhol, keby si si bol svoje hárky preniesol do Sikiho predpripraveného zošita, čo som Ti už písal, ale ty samozrejme nedávaš pozor na to, čo sa tu hovorí...

Reagoval sem na toto:

Da sa urobit makrom, aby ked zmenim obsah komentu v harku1 so zoznamom, aby sa tie zmeny automaticky premietli do skutocnych komentoch v harkoch na pozicii A1 ?

Robert má pravdu pokud však trváš na spuštění makra (Update_comments) před vytvořením seznamu stačí vložit jeden řádek kódu do:

If Exist = True Then
Call Update_comments
With Sheets("Sheet List")

Děláš to však na vlastní riziko !!!

Je to loteria ? Co by sa mohlo zle stat, nerozumiem.
Ak vravis, ze to nie je dobre, dalo by sa co navrhol Los ?

"Ešte existuje možnosť mať tú tvoju poznámku uloženú v makre toho listu, ku ktorému patrí. Definuješ si tam Public funkciu pomenovanú napr. GetDescription, ktorá vráti text poznámky, a potom ju už len budeš (dynamicky) volať. Takže poznámka nemusí byť v bunke alebo v komentári, ale v makre. Nič zložité."

dik

Makro sem psal jen pro aktualizaci komentářů, podle Tvého požadavku. To znamená, že provedeš změnu komentáře a ručně (klávesovou zkratkou) spustíš makro. To jak se to bude chovat při každém vytvoření seznamu si budeš muset otestovat sám.

To co navrhuje Los není složité pro Losa. Já sem se s tím nesetkal, tudíž netuším jak na to. Budeš muset počkat na něj.

Namiesto upovania si vytvor na kazdom liste makro s public funkciou nazvi si ju jak chces (trebars GetDescription), jak ti pisal los. Funkcia len vrati string.

P.S> a zabudni na to ze si budes editovat kommenty na prvom liste. Vymyslas si uplne gebuziny, naprogramuj si normalnu aplikaciu, ta bude robit presne to co chces, a ne znasilnovat excel.

Ale to by predsa mal zas povinnost vybavovat jednotlive listy makrami! On proste nemieni mat dalsiu pracu, len si upravit komenty na harku zoznamu. Sikiho makro update_komments by sa dalo upravit, aby kommenty pridelovalo nie doradu ale podla nazvov harkov, co vsak znamena preverovanie existencie harka... A ked zisti neexistenciu, tak dotaz, ci s tym suhlasi a pod a pod a pod. A ked mu niekto pre jeho pohodlie bude venovat svoj cas, tak ho odmeni tak, ze jeho pracu a vedomosti nazve ako par riadkov sprostosti. On proste ziadnu namahu vynalozit nemieni... Sice som mu tymto zas spravil "up" ale vidim, ze uz konci a ak sa mieni takto spravat, tak uz aj jeho meno bude podnetom na ignorovanie dotazu. Ak aj zmeni meno, myslim, ze uz ho spozname...

Pockaj teraz nechapem. Los napisal, ze sa to bude dat ak:
"Ešte existuje možnosť mať tú tvoju poznámku uloženú v makre toho listu, ku ktorému patrí. Definuješ si tam Public funkciu pomenovanú napr. GetDescription, ktorá vráti text poznámky, a potom ju už len budeš (dynamicky) volať. Takže poznámka nemusí byť v bunke alebo v komentári, ale v makre. Nič zložité."
Ty si to tiez napisal:
"Namiesto upovania si vytvor na kazdom liste makro s public funkciou nazvi si ju jak chces (trebars GetDescription), jak ti pisal los. Funkcia len vrati string."
Ale potom si napisal, ze nebudem moct pisat poznamky v prvom liste, aby sa ulozili to makra a potom z makra vytiahli, ked sa bude robit list tlacitkom Make list.
Lenze to je nutnost vyriesit to tak, aby som mohol komenty upravovat v zoznamovom liste. Inac to cele strati zmysel.

robertko napisal nizsie ze:
"Sikiho makro update_komments by sa dalo upravit, aby kommenty pridelovalo nie doradu ale podla nazvov harkov, co vsak znamena preverovanie existencie harka... A ked zisti neexistenciu, tak dotaz, ci s tym suhlasi a pod a pod a pod."
Z toho ale neviem posudit ako to myslel, ci sa to da alebo neda.

Este ma napadla taka vec, ze ak je skutocne pravda, ze navrhovane riesenie Losom, by znamenalo manualne vytvorit v kazdom novom harku nove makro, tak nebolo by mozne napisat makro aby to robilo same ?
Ze bude zvlast makro na to, ze ked sa objavi novy harok v zosite, automaticky sa k nemu priradi to vseobecne makro, ktore bude mat na starosti uchovavanie komentov.

Dobry napad, co povies MM ?
Ale stale musi platit, ze editujem komenty vyhradne v prvom harku.

Obavam sa, ze tu ti uz ziadne makro nikto neurobi...
Takze moja posledna (a vobec nie ironicka) rada:
Na vsetko zabudni, urob si zoznam harkov manualne, pricom si tie harky v zozname nazvi ako len chces (aj s apostrofmi) a manualne si ich naviaz hypertextovymi odkazmi na prislusne harky. A vsetko ostatne bude zalezat na tvojej inteligencii narabania s obycajnym zositom excelu xlsx.
Zbohom!

Stale to riesim, ale teraz sa chcem vratit k tomuto mini makru:

Private Sub Workbook_Open()
Sheets("Sheet List").Activate
End Sub

Robi to, ze ked otvorim subor, otvori sa mi to vzdy na prvom harku. Ale ten zoznam harkov je dlhsi ako zobrazovacie pole obrazovky (ano, ak ked si dam mensiu lupu) a problem je, ze excel vzdy lipne na poslednom riadku z toho zoznamu, cize je to dole a zakazdym sa musim posuvat hore na zaciatok listu.
Potreboval by som to makro upravit tak, aby sa aj bunkovy kurzor excelu dal prinutit, aby spocival na jednej hornej bunke (napr. A1, alebo na tej kde je tlacitko Make list).
Dalo by sa ?
Dik

Ked si chcem oddychnut od mysi a pouzivat excel bez nej a otvorim si ten subor s vela harkami, chcel by som sa presuvat do danych harkov od-enterovanim na danej kurzorovej bunke v zozname.
Tzn. otvorim si subor, stlacim CTRL+Home, sipkou dole - zoznamom dole a enter. Ale enter urobi, ze prejde na dalsi riadok.

Je mozne upravit v tom jednom harku spravanie excelu, ze stlacenie enteru na zoznamovej bunke, bude znamenat to, akoby som tam stlacil lavym mysitkom ?

Dakujem

Zpět do poradny Odpovědět na původní otázku Nahoru