Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem excel otvara zosit na konkretnej bunke

ahojte,

excel mi otvara zosit na konkretnej bunke niekde na zaciatku zosita a nechce sa mi to zakazdym scrollovat na koniec zosita. excel je zdielany cez sharepoint ale ked ho dam otvorit normalne cez aplikaciu excel tak to ide ok ale cez zalozku na internetovom prehliadaci to stale otvori na tej konkretnej bunke. Viete ako sa to da zmenit?

Předmět Autor Datum
Malo by to ist, ked do udalosti zosita Workbook_Open vložíš makro, ktoré TI to odscrolluje na zelany…
robert13 16.03.2023 15:47
robert13
aj tak neviem ako to spravit :)
novacik 16.03.2023 15:47
novacik
Cestujem a píšem z mobilu. Ak ti to dovtedy nikto nevyrieši, pošlem riešenie po tom, čo sadnem za PC…
robert13 16.03.2023 15:51
robert13
A musíš si byť vedomý toho, že to bude musieť byť zošit s príponou xlsm, t.j. zošit podporujúci makr…
robert13 16.03.2023 15:53
robert13
Prípadne sa zatiaľ pozri na toto, možno si to potom budeš vedieť urobiť sám...: https://www.google.c…
robert13 16.03.2023 15:59
robert13
Keďže sem ešte nikto nedal riešenie, tak ono vyzerá takto: Private Sub Workbook_Open() ActiveWindow…
robert13 16.03.2023 18:15
robert13
A když na konec odkazu přidáš &activeCell=Název listu!Číslo buňky tedy např. &activeCell=Sheet1!…
host 16.03.2023 18:28
host
Narolovanie sa udeje na hárku, ktorý bol aktívny pri uložení súboru (makro sa totiž spúšťa už otvore…
robert13 16.03.2023 19:38
robert13
Nabídl jsem alternativní řešení - není nutné zasahovat do XLS souboru. Buňka B13 byl samozřejmě jeno…
host 16.03.2023 19:58
host
Tož prepáč, ja som zle pochopil, ako to myslíš... :beer: poslední
robert13 16.03.2023 20:23
robert13

Keďže sem ešte nikto nedal riešenie, tak ono vyzerá takto:

Private Sub Workbook_Open()
    ActiveWindow.ScrollRow = Range("A2").End(xlDown).Row - 10
End Sub

Čiže kód sa spúšťa samotným otvorením súboru a aktívny hárok naroluje na riadok určený koncovou bunkou od bunky A2 nadol mínus 10 riadkov ako "rezerva" (pokiaľ v údajoch stĺpca A nie je medzera... Niekedy sa koncová bunka odvodzuje od najposlednejšej bunky určitého stĺpca skokom nahor cez všetky prázdne riadky po prvý naplnený riadok odspodu...)

No a kód sa teda musí zadať do modulu zošita v Editore Visual Basicu (VBE), ktorý je dostupný cez kartu Vývojár (viď príloha)

Narolovanie sa udeje na hárku, ktorý bol aktívny pri uložení súboru (makro sa totiž spúšťa už otvorením zošita), takže nie je potrebné uvádzať hárok.
A riadok bunky (Tebou uvádzaná bunka B13) musí byť predsa tiež naviazaný na narolovanú oblasť, čiže ak som dal "rezervu" 10 viditeľných riadkov riadkov nad požadovaným riadkom, tak nastavenie sa na bunku B požadovaného riadka by bolo takto:

Private Sub Workbook_Open()
    ZiadanyRiadok=Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
    ActiveWindow.ScrollRow = ZiadanyRiadok - 10
    Range("B" & ZiadanyRiadok).Activate
End Sub

Tu som predviedol odvodenie poslednej bunky v stĺpci A spôsobom, ktorý som naznačil v predošlej odpovedi, takže nezáleží na tom, či je stĺpec A spojite vyplnený údajmi...
(Samozrejme, že moja "rezerva" 10 riadkov môže fungovať len v prípade, že tabuľka má vyplnených viac ako 10 riadkov, takže v prípade menšej tabuľky je potrebné znížiť počet "rezervných riadkov", alebo proste narolovať bez rezervy...)

Ale už to asi riešime zbytočne, dotazovateľ (ako to v poslednom čase býva zvykom) sa už o riešenie nezaujíma... :-D:beer:

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