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
Teraz ked som preniesol vsetky harky do spolocneho zosita, narazil som na problem, ze dlzka nazvu ha…
IT_lamiak 27.06.2015 18:38
IT_lamiak
stale potrebujem
IT_lamiak 29.06.2015 16:54
IT_lamiak
A s čím konkrétne nevieš pohnúť?
los 29.06.2015 17:02
los
Ako zvycajne. Neovladam makro vba programming ani trosku. Prosim o napisanie celeho riesenia. Ale id…
IT_lamiak 29.06.2015 17:18
IT_lamiak
Napr. ak bude ten komment na kazdom liste v bunke A1, tak si myslim ze staci pridat za Cells(i + 1,…
MM.. 29.06.2015 21:03
MM..
Sub Sheet_lister() Dim ceLL As Range Dim i As Long Dim Button1 As Object Dim Button2 As Object Dim W…
IT_lamiak 29.06.2015 21:13
IT_lamiak
Ano v tom pridas za ten riadok ten dalsi riadok a bude to brat kommenty z A1 bunky na sheetoch. Teda…
MM.. 29.06.2015 21:22
MM..
Ale komenty zacinaju v C1 a nizsie (hore je obrazok) teda hovoris ze nieco mam nahradit inym, ci nan…
IT_lamiak 29.06.2015 21:31
IT_lamiak
Precitaj si este raz co som pisal a pomaly. 1. kommenty ktore si dopisujes k zoznamu ti ziadne makr…
MM.. 29.06.2015 21:44
MM..
To je problem. Pokial to spravne chapem, navrhujes, aby som komenty vpisoval dovnutra sheetu na vopr…
IT_lamiak 29.06.2015 22:31
IT_lamiak
Když máš tedy problém s umístěním popisu listu do nějaké konkrétní buňky (i když myslím, že třeba um…
MachR55 30.06.2015 07:53
MachR55
Človek by mu to aj spravil, napriek tomu, aký je arogantný, veď napokon ide len o "pár riadkov spros…
robert13 30.06.2015 17:08
robert13
A co mu chces spravit, ked to neni mozne spravit?
MM.. 30.06.2015 17:31
MM..
co navrhujes prosim ta kuk na moj post o 13:36
IT_lamiak 30.06.2015 18:06
IT_lamiak
Tak chces to riesit ty?!? Vravim ti, ze daj sem posledny stav (dufam,ze si ho nemodifikoval !!!) a n…
robert13 30.06.2015 18:14
robert13
Pisal si si s inymi clenmi tejto diskusie, tak odkial som mal vediet, ze chces pomoct ? Aj ked za ce…
IT_lamiak 30.06.2015 18:23
IT_lamiak
zas príliš filozofuješ... čakaj...
robert13 30.06.2015 18:34
robert13
Tu máš... Komentáre sú vždy v bunkách A1 aj keď sú nevidteľné. Upravíš si ich tak, že klikneš na A1…
robert13 30.06.2015 18:49
robert13
ok vdaka 1, takze si pripisal tieto 3 riadky. to bolo vsetko co by som o tom mal vediet pre buducnos…
IT_lamiak 30.06.2015 19:33
IT_lamiak
Sub aktualizace_komentu() Dim y As Long Dim new_koment As String For y = 2 To Sheets.Count new_komen…
Siki83 30.06.2015 22:20
Siki83
siki som rad ze si dosiel ;-) dik za pomoc skusil som toto makro pridat na koniec povodneho, aby sa…
IT_lamiak 01.07.2015 12:00
IT_lamiak
Uprav si riadok: Cells(i + 1, 3) = Sheets(i).Range("A1").Comment.Text na tento riadok sprostosti:…
robert13 01.07.2015 13:37
robert13
Ok dik cize toto by mala byt finalna verzia: Sub Sheet_lister() Dim ceLL As Range Dim i As Long Dim…
IT_lamiak 01.07.2015 14:44
IT_lamiak
1) Uprav Sikiho kód nasledovne: Sub Update_comments() Dim y As Long Dim new_comment As String For y… nový
robert13 01.07.2015 15:06
robert13
Nie nie ved predsa sikiho makro funguje tak, ze ak ja urobim zmenu komentu v prvom harku(tam kde mam… nový
IT_lamiak 01.07.2015 15:16
IT_lamiak
Veď to robím! A nejde o žiadne porovnávanie, ide o priradenie Neanalyzuj, konaj! nový
robert13 01.07.2015 15:19
robert13
"Veď to robím!" - teda mam pockat na dalsiu upravu ? nový
IT_lamiak 01.07.2015 15:22
IT_lamiak
Ďalšia úprava nebude Na kieho koňov by si vytváral nanovo komenty v prvom hárku? Toto Ti má ušetriť… nový
robert13 01.07.2015 15:30
robert13
Vobec si ma nepochopil. Cely ucel tohto vsetkeho tykajuceho sa komentov je: - komenty si vzdy pisem… nový
IT_lamiak 01.07.2015 15:45
IT_lamiak
Vobec si ma nepochopil. Do zoznamu sa ti budu natahovat tvoje komenty, vycitane z jednotlivych harko… nový
robert13 01.07.2015 16:14
robert13
Ok budem cakat na dalsieho spolupracovnika. Ale stavim sa, ze keby si to mal robit takto ako je to… nový
IT_lamiak 01.07.2015 16:32
IT_lamiak
A jeje opičkuješ po heavenlee? :-D Spravil som chybu, ked som sa dokopal do druhej serie pomoci pre… nový
robert13 01.07.2015 17:12
robert13
napadá ma, že vypnutie indikátorov komentárov je vec nastavenia aplikácie, nie súboru, takže si to b…
robert13 30.06.2015 19:34
robert13
Indikator komentaru je ten cerveny trojuholnik ? Aj ked ho skryjem stale sa bude viezd s bunkou(ten…
IT_lamiak 30.06.2015 19:35
IT_lamiak
ano, úlohou komentára je poskytovať informáciu k tej bunke, takže s tou bunkou ostane stále, kým ho…
robert13 30.06.2015 19:44
robert13
Lebo teraz ked presuniem tu bunku s komentom inde, vratim sa k zoznamu, dam Make list, tak sa posaha…
IT_lamiak 30.06.2015 19:49
IT_lamiak
Tak nepresuvaj tu bunku inde. OMG. Ked chces mat tie kommenty automaticky v zozname, tak musia byt n…
MM.. 30.06.2015 20:08
MM..
Ok, ale tiez to plati aj pri kopirovani. Oznacim ju, skopirujem a mam tam aj koment. Inak pravym so…
IT_lamiak 30.06.2015 20:34
IT_lamiak
Ešte existuje možnosť mať tú tvoju poznámku uloženú v makre toho listu, ku ktorému patrí. Definuješ… nový
los 01.07.2015 18:23
los
Reagoval sem na toto: Da sa urobit makrom, aby ked zmenim obsah komentu v harku1 so zoznamom, aby s… nový
Siki83 01.07.2015 21:12
Siki83
stačí ak zmení poradie hárkov a obslúži tlačidlo a má to v prdeli ale kto chce kam, pomôžme mu tam..… nový
robert13 01.07.2015 21:19
robert13
Je to loteria ? Co by sa mohlo zle stat, nerozumiem. Ak vravis, ze to nie je dobre, dalo by sa co na… nový
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… nový
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… nový
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í...

Teraz ked som preniesol vsetky harky do spolocneho zosita, narazil som na problem, ze dlzka nazvu harka je dost obmadzena na to, aby sa dalo plnohodnotne pomenovat vsetky harky pre ich rozlisitelnost v zozname.
Tak ma napadlo, ze ci by sa nedalo upravit makro, aby aj s tymi sucasnymi bunkami, presuvalo aj ob-susedne bunky, kde si napisem poznamky k tomu.

Pre istotu nechcem, aby to presuvalo cele riadky, ale radsej iba bunky v zozname s nazvami harkov + ob-susedne bunky s komentmi.

Prikladam finalny subor, ktory budem pouzivat a naznacil som v nom ako by to mohlo byt.

Dik moc

Ako zvycajne. Neovladam makro vba programming ani trosku. Prosim o napisanie celeho riesenia.
Ale ide len o modifikaciu toho, co uz siki porobil.
Stiahni si ten subor je to tam naznacene. Opakujem, co som uz vyssie napisal:

potrebujem zviazat pozicie komentovych buniek k poziciam zoznamovych buniek. Teda ked zmenim poradie sheetov v subore a kliknem na Make list, aj komentove bunky sa presunu - palalelne k zoznamovym k prisluchajucemu harku.
Nechcem aby sa menili cele riadky ale iba konkretne bunky.

cize:
Make list

sheet1 koment1
sheet2 koment2
sheet3 koment3

zmena poradia:
Make list

sheet1 koment1
sheet3 koment3
sheet2 koment2

bunka koment3 a koment2 si uspesne vymenia pozicie prisluchajuc k ich sheetu.
Teraz to tam vobec nie je implementovane, cize ak sheety v zozname zmenia poradie, komentove bunky ostanu na svojej pozicii bezo zmeny

Dakujem

Sub Sheet_lister() 
    Dim ceLL As Range 
    Dim i As Long 
    Dim Button1 As Object 
    Dim Button2 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 "Sheet List" Then Exist = True: Exit For 
    Next 
    If Exist = True Then 
        With Sheets("Sheet List") 
            .Activate 
            .Columns(1).Clear 
        End With 
    Else 
        Sheets.Add before:=Worksheets(1) 
        ActiveSheet.Name = "Sheet List" 
         
        With Range("A1") 
            Set Button2 = ActiveSheet.Buttons.Add(Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height) 
        End With 
         
        With Button2 
            .Name = "Button2" 
            .OnAction = "Sheet_lister" 
            .Characters.Text = "Make list" 
            .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:="'" & Replace(ceLL.Value, "'", "''") & "'" & "!a1", ScreenTip:="Click to move to sheet", TextToDisplay:=ceLL.Value 
    Next 
     
    Range("A3:A" & Cells(Rows.Count, "A").End(xlUp).Row).Font.Underline = xlUnderlineStyleNone 
     
     
    Application.ScreenUpdating = True 
    Sheets("Sheet List").Activate 
End Sub 
 
Sub Back() 
    Sheets("Sheet List").Activate 
End Sub 

Precitaj si este raz co som pisal a pomaly.

1. kommenty ktore si dopisujes k zoznamu ti ziadne makro nebude spravovat, ptz ich to makro nevytvorilo. Je to jasne?
2. kommenty si mozes davat na jednotlive listy, potom ich moze makro davat na zoznam automaticky. Je to jasne?
3. ak budes mat kommenty na jednotlivych listoch (na kazdom sheete v bunke A1 bude tvoj KOMMENT pre dany sheet) tak do makra za ten riadok ktory som napisal pridas dalsi riadok ktory som napisal. A makro bude automaticky vytahovat kommenty z kazdeho sheetu (bunka A1) na ten zoznam. Bunka sa da zmenit Cell(1,1) mozes zmenit na akykolvek iny Cell(riadok, stlpec)

P.S: mozno ten novy riadok bude treba takto: Cells(i + 1, 2).Value = Sheets(i).Cells(1,1).Value

To je problem. Pokial to spravne chapem, navrhujes, aby som komenty vpisoval dovnutra sheetu na vopred urcene miesto. Napr.: [vJrTKK9.png]
Lenze to si nemozem dovolit, lebo kvoli komentu nemozem prerabat uz hotove mega veci v harkoch a tiez pri novom sheete nemozem vsetko predvidat, ze kde to bude najmenej zavadzat.

Človek by mu to aj spravil, napriek tomu, aký je arogantný, veď napokon ide len o "pár riadkov sprostostí" len už vidím, ako mu tam vadia tie červené trojuholníčky komentárov... a že ak náhodou zablúdi myšou nad takú bunku, tak mu tam komentár prekryje nejaký dôležitý text, prípadne mu nenavrhneme dostatočne veľký rám komentára ak tam bude musieť napísať dlhší text, ktorý sa nezmestí do uška hárka.
OK už budem dobrý a dám mu pokoj...
OK daj sem posledný stav ale boh ťa chráň, ak zas budeš frflať a vymýšľať svoje špeciality!!! :x:

Tak chces to riesit ty?!?
Vravim ti, ze daj sem posledny stav (dufam,ze si ho nemodifikoval !!!) a nestaraj sa!
Pises, ze sa tomu nemienis venovat, tak naco ti mam vysvetlovat, co s tym idem robit?
Upozornujem vsak, ze analyzovat to nebudem, len ti doplnim komenty. Ak si si to medzitym dokalicil, tak sorry.
A ked este vyjdes s nejakou blbinou, tak dostanes vystrelovaci dazdnik do analu a otvorim!

Tu máš...
Komentáre sú vždy v bunkách A1 aj keď sú nevidteľné.
Upravíš si ich tak, že klikneš na A1 pravým tlačidlom a dáš upraviť komentáre...
Pozor, akonáhle budeš v komentároch zalamovať Enterom, prenesie sa to zalomené i do hárku so zoznamom, čo asi nechceš...
A už prosím ťa nechaj Excel na pokoji!

Nie je za čo...

A len tak na margo:
Ja som vulgarizmus na teba prvý nepoužil, len som Ti ho vrátil

ok vdaka
1, takze si pripisal tieto 3 riadky. to bolo vsetko co by som o tom mal vediet pre buducnost ?:
prvy:
[qHOfLLl.png]

druhy, treti:
[wlCUZEO.png]

Komenty su v oblasti pouzivanych buniek v harkoch na poziciach A1.

Ak nieco robim s bunkou ako zvycajne, tak sa s tou manipulaciou vezie aj koment. Co je blbe.
2, Da sa nasilu ukotvit ten koment aby ostal iba v tej jednej bunke, bez ohladu na manipulaciu a formatovanie ?

3, Da sa nastavit, aby sa po ocitnuti kurzora na bunke, nezobrazovala ta bublina komentu ? [k8oD2Dl.png]

4, 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 ?
Toto by bolo idealne, pretoze hentak upravovat komenty je nachylne na omyly a neprakticke.

dakujem

Uprav si riadok:

Cells(i + 1, 3) = Sheets(i).Range("A1").Comment.Text

na tento riadok sprostosti:

If Not (Sheets(i).Range("A1").Comment Is Nothing) Then Cells(i + 1, 3) = Sheets(i).Range("A1").Comment.Text

a môžeš si z môjho postupu v predošlej odpovedi vynechať riadky týkajúce sa toho riadka (t.j. odrážku 2 a 7)
(t.j. označenie za komentár a zrušenia označenia komentára)

Aké jednoduché, však?
A ostatní z toho robia neviem čo... !

Ok dik
cize toto by mala byt finalna verzia:

Sub Sheet_lister()
Dim ceLL As Range
Dim i As Long
Dim Button1 As Object
Dim Button2 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 "Sheet List" Then Exist = True: Exit For
    Next
        If Exist = True Then
            With Sheets("Sheet List")
                .Activate
                .Columns(1).Clear
                .Columns(3).Clear
            End With
        Else
            Sheets.Add before:=Worksheets(1)
            ActiveSheet.Name = "Sheet List"
            
            With Range("A1")
                Set Button2 = ActiveSheet.Buttons.Add(Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
            End With
    
            With Button2
                .Name = "Button2"
                .OnAction = "Sheet_lister"
                .Characters.Text = "Make list"
                .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
If Not (Sheets(i).Range("A1").Comment Is Nothing) Then Cells(i + 1, 3) = Sheets(i).Range("A1").Comment.Text
Columns(1).AutoFit
Columns(3).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:="'" & Replace(ceLL.Value, "'", "''") & "'" & "!a1", ScreenTip:="Click to move to sheet", TextToDisplay:=ceLL.Value
Next

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


Application.ScreenUpdating = True
Sheets("Sheet List").Activate
End Sub




Sub Back()
Sheets("Sheet List").Activate
End Sub




Sub Update_comments()
Dim y As Long
Dim new_comment As String

For y = 2 To Sheets.Count
new_comment = Cells(y + 1, 3).Value
    With Sheets(y).Range("A1")
        .ClearComments
        .AddComment
        .Comment.Text Text:=new_comment
    End With
Next y
Columns(3).AutoFit
End Sub


1, Pri testovani: Ked pridam novy koment, aplikujem sikoho makro, vymazem koment, aplikujem sikoho makro. Nemalo by v danom harku ostat nic, ale vidim:
[WBimRD9.png]
Da sa makro upravit, aby si po sebe upratalo bubliny bez obsahu ?

2, V praxi, ked sa vratim k mojmu suboru po dlhsom case, moze sa lahko stat, ze okomentujem zopar novych harkov a zabudnem spustit sikoho makro predtym ako stlacim Make list.
Dalo by sa sikiho makro nasilu implementovat dovnutra tlacitkoveho makra, aby pri stlaceni tlacitka Make list, este predtym ako ten list urobi, aby aplikoval sikiho makro ?

vdaka

1) Uprav Sikiho kód nasledovne:

Sub Update_comments()
Dim y As Long
Dim new_comment As String

For y = 2 To Sheets.Count
new_comment = Cells(y + 1, 3).Value
    Sheets(y).Range("A1").ClearComments
    If new_comment <> "" Then
        With Sheets(y).Range("A1")
            .AddComment
            .Comment.Text Text:=new_comment
        End With
    End If
Next y

Columns(3).AutoFit
End Sub

A vravel som Ti, že v budúcnosti už nemá význam opakovane aplikovať toto makro ale môžeš, keby si pridal väčšiu dávku nových hárkov bez komentov v A1.
Ale musíš zas spustiť nezávisle, že prečo, viď bod 2

2) Nečítal si pozorne. Načo by si to implementoval? Vieš čo by to robilo?:
Vyčítalo by to komenty z buniek A1 jednotlivých hárkov a opätovne ich poprepisovalo za to isté. Aký to má význam?
Vravím Ti: v budúcnosti začni tým, že do nových hárkov pri ich vytvorení hneď založ do A1 koment!
Keď chceš dodatočne v budúcnosti doplniť alebo opraviť komenty v bunkách A1, doplň ich rovno do svojich hárkov. Potom aktualizuješ zoznam tlačítkom.

Hotovo!

Nie nie
ved predsa sikiho makro funguje tak, ze ak ja urobim zmenu komentu v prvom harku(tam kde mam zoznam a tlacitko Make list), tak sa to prenesie-ulozi do daneho harku na poziciu A1. Nie opacne ako si to ty pochopil.
A o to ide, ja potrebujem komentmi rozlisit harky v zozname. Teda komenty ma zmysel vytvarat iba v tom zozname, aby sa dalo porovnavat.
Cize napisem koment do C stplca a ked stlacim Make list, chcem aby sa to zapisalo do A1 v danom harku, ktoreho sa to tyka.

Ďalšia úprava nebude

Na kieho koňov by si vytváral nanovo komenty v prvom hárku?
Toto Ti má ušetriť jednorazovú prácu pri prvotnom naplnení komentov do jednotlivých hárkov.
Upravené Sikiho druhé makro "Update_comments" ich potom naloží do buniek A1 v jednotlivých hárkoch.
Keď budeš chcieť zmeniť koment v niektorom hárku, TAK UŽ HO BUDEŠ MENIŤ V TOM HÁRKU!!!!!

Ale ok, môžeš to použiť nanovo, keď Ti zas pribudne dávka nových hárkov bez komentov v A1, ALE:

Každopádne najprv zaktualizuješ zoznam tlačítkom, ručne dopíšeš do stĺpca C komenty kde neboli alebo chceš zmeniť a použiješ "Update_comments"

Podstatné je ale to, že to musí byť urobené nezávisle, nie začlenene do programu, ktorý Ti robí zoznam, lebo by si si tie ručne dopísané komenty zničil tým, že by boli hneď prepísané vytvorením zoznamu so starými (prípadne prázdnymi) komentami, chápeš?

Ako Ti to ešte povedať?

Vobec si ma nepochopil.
Cely ucel tohto vsetkeho tykajuceho sa komentov je:
- komenty si vzdy pisem v prvom harku tzv. zoznamovom harku.
- komenty skovane v nejakom konkretnom harku na pozicii A1 pre mna nemaju vyznam, lebo su tam skovane a ja ich potrebujem vidiet v zoznamovom harku kde su vsetky pokope. Cize tam(A1) su len pre ucely makra, aby sa to vobec nejako dalo urobit. Su tam ako vedlajsi produkt !
- tlacitko Make list, chcem pouzivat aj na 'ukladanie' komentov do svojej domovskej pozicie A1 v harkoch. Cize sa to musi udiat skor, ako sa vytvori zoznam, aby sa neprepisali nicim alebo predoslym ako si napisal vyssie.
- vzdy ked napisem novy koment do prazdnej bunky v C stlpci, zmazem koment, zmenim koment;; tak pri stlaceni tlacitka Make list, sa aktivuje sikiho makro Update_comments(), urobi svoju pracu a potom sa aktivuje makro Sheet_lister(). Cize velmi logicky, prakticky, efektivne vyriesene. Tak ako to prosty rozum kaze od zaciatku, len v exceli sa to neda tak lahko porobit.

Vobec si ma nepochopil. Do zoznamu sa ti budu natahovat tvoje komenty, vycitane z jednotlivych harkov! Ked uz v harkoch budu!
Zoznam nie je na to, aby si odtial zadaval komenty. Siki ti pomohol tie komenty priradit k harkom. Ano, je to pohodlnejsie naplnit odtial, ked nabiehas na tento styl prace a prvotne by si mal vela prace preklikavat sa po harkoch a doplnat komenty. Ale ked zakladam novy harok, tak ho uz rovno vybavim aj komentom! Len kvoli tomu, ze sa ti neda pouzit dlhsi text pre nazov harka! Takze ty predsa uz pri zakladani noveho harka vies, aky tam chces koment tak preco ho tam hned nezadat?
Napriek tomu som ti povedal, ze to mozes pouzit aj inokedy, ale popisal som ti postup a dovod. Ja to prerabat kvoli tvojej pohodlnosti nebudem...
Aj doteraz, co som ti popisal, tak len kvoli tomu, ze to bolo len urcite "odladenie nedokonalosti" ale myslim, ze takto ti to uz musi fungovat. Dalej to uz neriesim. Odovzdavam stafetu dalsim zaujemcom o spolupracu s tebou.

Ok budem cakat na dalsieho spolupracovnika.

Ale stavim sa, ze keby si to mal robit takto ako je to teraz, rychlo by ta to omrzelo. Plus fakt ze po pracovnej odmlke so suborom, by si zabudol manualne aplikovat sikiho makro. Lebo naco, ked sa to da spravit rozumnejsie, co paradoxne nechces urobit, lebo vyhovorka pre moju pohodlnost.

Tak isto by sa mohli vyhovorit programatori IDE-ciek programovacich jazykov. Lebo sak kod sa da kludne napisat aj vo windowsackom .txt, tak naco by robili nadstandartne fíčury ....

Ok, ale tiez to plati aj pri kopirovani. Oznacim ju, skopirujem a mam tam aj koment.

Inak pravym som na to klikal a nenasiel som nic ako zakazat pop up tej bubliny alebo cerveneho trojuholnicka

Bol by si ochotny to so mnou dokoncit ?

Komenty skryt sa mi podarilo a aj tie trojuholnicky ale globalne vsetky naraz
http://www.officetooltips.com/excel/tips/how_to_hi de_display_comment_indicators.html
Co je problem, pretoze v jednom harku mam napisane komenty k vzorcom ako rataju a je to tam treba. Nie je tam miesto vedla niekde, kde by sa to napisalo klasicky do bunky.

Ach Boze...

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é.

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