Marek D.

Marek D. Kierownik projektu,
Sii

Temat: RefreshAll jak zrobić, żeby nie przełączał arkuszy

Pewnie banalne dla znawców VBA:
Mam skoroszyt z kilkoma arkuszami, w każdym z nich jest przycisk do którego podpięte jest to samo jedno makro.
Jego rolą jest odświeżenie tabel i wpisanie czasu tego odświeżenia do komórki J1 w 'wykresA'.
Skoroszyt otwiera się domyślnie zawsze na tym samym arkuszu: 'wykresA', w którym również zapisywana jest data i czas tego odświeżenia. W pozostałych arkuszach mam wpisane odwołanie do wspomnianej komórki z tym czasem.
Użytkownik może wybrać odświeżenie z dowolnego (innego niż 'wykresA') arkusza.
Problem w tym, że jeśli to zrobi to następuje przełączenie po odświeżeniu do 'wykresA'
Jak tego uniknąć? Zależy mi na tym, żeby mozna było odświeżać z dowolnego arkusza i po tej czynności zobaczyć i zapisać czas odświeżenia w oglądanym aktualnie arkuszu.
kod makra

Sub Refresh()
'
' Refresh Macro
'
ActiveWorkbook.RefreshAll
Sheets("wykresA").Select
Range("J1").Select
ActiveCell.FormulaR1C1 = Date & " " & Time
Range("A1").Select
End Sub
Michał Sasiński

Michał Sasiński ABAP,
www.123Office.pl

Temat: RefreshAll jak zrobić, żeby nie przełączał arkuszy

Sheets("wykresA").Select

Ta linia zmienia arkusz, jeżeli ją usuniesz, to następne polecenia będą się odwoływać do arkusza, z którego uruchomiłeś makro.
Marek D.

Marek D. Kierownik projektu,
Sii

Temat: RefreshAll jak zrobić, żeby nie przełączał arkuszy

To wiem, tyle, że wspomniane odwołania:

='wykresA'!J1

które mam w innych arkuszach są dlatego, że wyświetlają zapisaną datę w różnych (innych niż komorka J1 ) miejscach.
W każdym (innym niż wykresA) arkuszu data prezentowana jest różnym miejscu.
Jeśli usunę tą linię to zawsze nastąpi zapisanie daty w komórce J1 w oglądanym arkuszu, a w moim przypadku jest to niemożliwe (czasem są tam dane)
Michał Sasiński

Michał Sasiński ABAP,
www.123Office.pl

Temat: RefreshAll jak zrobić, żeby nie przełączał arkuszy

Jeżeli chcesz odnieść się do arkusza bez jego aktywacji, to możesz napisać:

 Sheets("wykresA").Range("J1").FormulaR1C1 = Date & " " & Time 
Marek D.

Marek D. Kierownik projektu,
Sii

Temat: RefreshAll jak zrobić, żeby nie przełączał arkuszy

I o to właśnie chodziło :)
dzięki
Michał Sasiński

Michał Sasiński ABAP,
www.123Office.pl

Temat: RefreshAll jak zrobić, żeby nie przełączał arkuszy

Do komórek można się odwoływać na różne sposoby, warto je wszystkie poznać.

http://msdn.microsoft.com/en-us/library/bb211367(v=off...

Następna dyskusja:

lista rozwijana - jak zrobić?




Wyślij zaproszenie do