Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 66421 Skopiuj do schowka Przechodzenie do wybranej strony aktywnego arkusza
Autor Wiadomość
ted11 
Exceloholic


Wersja: Win Office 2013
Pomógł: 2 razy
Posty: 241
Wysłany: 02-11-2019, 11:54   Przechodzenie do wybranej strony aktywnego arkusza

Witam
Próbuję znaleźć rozwiązanie na szybkie poruszanie się między wieloma stronami aktywnego arkusza. Niestety nie znalazłem innego sposobu niż suwak na dolnej belce. Mimo, że jest widoczny numer aktualnej strony nie można tam nic "zmienić" (patrz załącznik)
Proszę więc o wszelkie sugestie pomocne w rozwiązaniu. ;-)
Pozdrawiam

belka.JPG
Dolna belka:
Plik ściągnięto 1197 raz(y) 12.56 KB

ID posta: 376383 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Wersja: Win Office 2013
Pomógł: 661 razy
Posty: 3475
Wysłany: 02-11-2019, 11:58   

F5 > adres komórki.
_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
Chcesz precyzyjną odpowiedź - zadaj precyzyjne pytanie.
ID posta: 376385 Skopiuj do schowka
 
 
ted11 
Exceloholic


Wersja: Win Office 2013
Pomógł: 2 razy
Posty: 241
Wysłany: 02-11-2019, 12:03   

To nie jest praktyczne rozwiązanie bo trudno znać adres komórki w obrębie np: 43 str itp. Myślałem, że jest jakiś prosty sposób wyszukania i przeskoczenia do podanego numeru strony z zakresu widocznego na dolnej belce. :-?
ID posta: 376386 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Wersja: Win Office 2013
Pomógł: 661 razy
Posty: 3475
Wysłany: 02-11-2019, 12:09   

Z netu:
Kod:
Private Sub CommandButton1_Click()
    Dim iPages As Integer
    Dim wks As Worksheet
    Dim iPage As Integer
    Dim iVertPgs As Integer
    Dim iHorPgs As Integer
    Dim iHP As Integer
    Dim iVP As Integer
    Dim iCol As Integer
    Dim lRow As Long
    Dim sPrtArea As String
    Dim sPrompt As String
    Dim sTitle As String

    Set wks = ActiveSheet
    iPages = ExecuteExcel4Macro("Get.Document(50)")
    iVertPgs = wks.VPageBreaks.Count + 1
    iHorPgs = wks.HPageBreaks.Count + 1
    sPrtArea = wks.PageSetup.PrintArea

    sPrompt = "Enter a page number (1 through "
    sPrompt = sPrompt & Trim(Str(iPages)) & ") "
    sTitle = "Enter Page Number"

    iPage = InputBox(Prompt:=sPrompt, Title:=sTitle)

    If wks.PageSetup.Order = xlDownThenOver Then
        iVP = Int((iPage - 1) / iHorPgs)
        iHP = ((iPage - 1) Mod iHorPgs)
    Else
        iHP = Int((iPage - 1) / iVertPgs)
        iVP = ((iPage - 1) Mod iVertPgs)
    End If

    If iVP = 0 Then
        If sPrtArea = "" Then
            iCol = 1
        Else
            iCol = wks.Range(sPrtArea).Cells(1).Column
        End If
    Else
        iCol = wks.VPageBreaks(iVP).Location.Column
    End If

    If iHP = 0 Then
        If sPrtArea = "" Then
            lRow = 1
        Else
            lRow = wks.Range(sPrtArea).Cells(1).Row
        End If
    Else
        lRow = wks.HPageBreaks(iHP).Location.Row
    End If

    wks.Cells(lRow, iCol).Select
    Set wks = Nothing
End Sub
_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
Chcesz precyzyjną odpowiedź - zadaj precyzyjne pytanie.
ID posta: 376387 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2940 razy
Posty: 9729
Wysłany: 05-11-2019, 12:22   

Nie w pełni przemyślany i dopracowany projekt, ale jakoś tam działa.
W karcie Widok dodano nową grupę "Nawigacja". Projekt wykorzystuje makro pokazane przez umiejeada.

Artik

Nawigacja po stronach arkusza.xlsm
Pobierz Plik ściągnięto 38 raz(y) 24.81 KB

_________________
Persistence is a virtue in the world of programming.
ID posta: 376570 Skopiuj do schowka
 
 
ted11 
Exceloholic


Wersja: Win Office 2013
Pomógł: 2 razy
Posty: 241
Wysłany: 05-11-2019, 13:29   

Dzięki :-) , przystosowałem to rozwiązanie do mojego arkusza i .....DZIAŁA :clap
To zdecydowanie lepsze rozwiązanie niż przycisk wywołujący okno wyszukiwania.
ID posta: 376578 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Wersja: Win Office 2013
Pomógł: 661 razy
Posty: 3475
Wysłany: 05-11-2019, 19:05   

Może warto to opatentować? :mrgreen:
_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
Chcesz precyzyjną odpowiedź - zadaj precyzyjne pytanie.
ID posta: 376599 Skopiuj do schowka
 
 
ted11 
Exceloholic


Wersja: Win Office 2013
Pomógł: 2 razy
Posty: 241
Wysłany: 05-11-2019, 20:54   

Zachęcony efektem chciałbym zmodyfikować przechodzenie do strony arkusza w zależności od aktualnego numeru tygodnia. W załączonym przykładzie w A1;A2 są odpowiednio: aktualna data i numer tygodnia, a sam arkusz zawiera 53 strony (tyle ile tygodni w roku kalendarzowym). Czy można tak zmodyfikować kod VBA aby po otwarciu pliku następował przeskok do strony równej numerowi aktualnego tygodnia.

testowy.xlsm
Pobierz Plik ściągnięto 43 raz(y) 145.17 KB

ID posta: 376606 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2940 razy
Posty: 9729
Wysłany: 06-11-2019, 10:41   

Coś w tym stylu. Choć projekt nadal zawiera nieścisłości, jak choćby próba propagowania wybranego numeru strony w innych arkuszach.
Będzie w miarę działać jak:
1. Plik zostanie zapisany w stanie z aktywnym arkuszem terminarza.
2. Przymkniesz oko ;-) na zmianę numeru bieżącej strony po aktywacji innego arkusza.

ted11 napisał/a:
W załączonym przykładzie w A1;A2 są odpowiednio: aktualna data i numer tygodnia
Rozwiązałem to nieco inaczej. Funkcja VBA.Date() zwraca bieżącą datę. Więc obliczenie numeru bieżącego tygodnia powierzyłem funkcjom w VBA. Zaznaczone komórki przechowują numer danego tygodnia w/g normy ISO8601 (zwróć uwagę na drugi argument funkcji NUM.TYG() oraz na argumenty funkcji Format w VBA).

Artik

testowy_Art.xlsm
Pobierz Plik ściągnięto 48 raz(y) 149.17 KB

_________________
Persistence is a virtue in the world of programming.
ID posta: 376635 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2019
Pomógł: 2388 razy
Posty: 7815
Wysłany: 06-11-2019, 11:31   

A nie prościej będzie tak ?
Kod:
Private Sub GoToPage()
    ActiveSheet.Cells(2, g_lCur * 8 - 7).Select
End Sub
lub tak:
Kod:
Private Sub GoToPage()
    With ActiveWindow
        .ScrollColumn = g_lCur * 8 - 7
        .ScrollRow = 1
    End With
End Sub

Proste wyliczenie przy stałej liczbie kolumn.

Artik napisał/a:
Plik zostanie zapisany w stanie z aktywnym arkuszem terminarza.
A to przecież prosto "wymusić".
ID posta: 376643 Skopiuj do schowka
 
 
ted11 
Exceloholic


Wersja: Win Office 2013
Pomógł: 2 razy
Posty: 241
Wysłany: 06-11-2019, 13:22   

Podziękowania dla kol. Artik
Marecki dzięki za rozwiązanie, ale trochę się pogubiłem i nie bardzo wiem gdzie umieścić Twój kod. Czy mógłbyś przedstawić Swoje rozwiązanie na przykładowym pliku ?
ID posta: 376654 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2019
Pomógł: 2388 razy
Posty: 7815
Wysłany: 06-11-2019, 14:53   

Zamień po prostu procedury w pliku.
_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

Szkolenia z Excela , FB
Office 2019 Professional Plus , Windows 10 x64
Pozdrawiam, były mkkk23 teraz Marecki.
ID posta: 376657 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe