konto usunięte
Tomasz
Gryzio
Dyrektor
zarządzający/Trener/
Konsultant - It
School
Temat: Czy makro może zaczekać aż arkusz się przeliczy?
Witam,Jeśli przeliczenie zostanie wywołane metodą Calculate (np. Worksheets(1).Rows(2).Calculate), to makro przejdzie do kolejnych lini kodu dopiero po przeliczeniu zakresu (czyli po wykonaniu metody calculate), także oczywiście możliwość istnieje - wywołać kalkulację z kodu VBA.
Pozdrawiam
konto usunięte
Temat: Czy makro może zaczekać aż arkusz się przeliczy?
Witam,Niestety wydaje mi się, że w takim rozwiązaniu pojawi się problem z automatycznym przeliczaniem ponieważ po tym jak makro dokona edycji w arkuszy zostanie on automatycznie przeliczony bez względu na to czy w kodzie będzie metoda Calculate czy nie. Rozwiązaniem tego może być umieszczenie w kodzie przed edycją danych fragmentu:
Application.Calculation = xlManual
a po edycji i przed dalszą częścią kodu przeliczenie o którym wspomina Tomasz:
Worksheets(1).Rows(2).Calculate
Aby uniknąć niespodzianek przy dalszej pracy na arkuszu proponuję na samym końcu kodu przestawienie parametru kalkulacji z powrotem na automatyczną
Application.Calculation = xlAutomatic
Pozdrawiam
Krzysztof
Temat: Czy makro może zaczekać aż arkusz się przeliczy?
Panie Tomaszua co w przypadku gdy calculate nie zadziała tak jak Pan pisze?
mam poniższy kod:
Private Sub Workbook_Open()
Application.DisplayAlerts = False
If Month(Date) < 4 Then
ThisWorkbook.Sheets("Kwota Brutto za dział").Range("B1") = Year(Date) - 1
Else: ThisWorkbook.Sheets("Kwota Brutto za dział").Range("B1") = Year(Date)
End If
ThisWorkbook.Sheets("Kwota Brutto za dział").Range("B2") = Month(Date) - 1
Call importDanychNadgodzinKierownik
Calculate
Call GenerujPlikdlaMarka
Application.DisplayAlerts = True
End Sub
i problem taki że makro: Call importDanychNadgodzinKierownik
zaciąga mi dane z bazy sql, oraz z innych plików excela
później formułami "obrabiam dane" żeby uzyskać to czego potrzebuję i nastepnie
makro: Call GenerujPlikdlaMarka
ma wygenerować plik excela z samymi danymi ( kopiuję w nim wartości do nowego arkusza)
żeby współpracownik widział dane a nie miał dostępu do źródła
i problem jest taki że przeliczenie arkusza miedzy makrami jest tylko częściowe
cały arkusz zostaje przeliczony dopiero po zakończeniu działania makra
Oskar
Shon
Dodatki do Office
www.VBATools.pl
Temat: Czy makro może zaczekać aż arkusz się przeliczy?
W VBA masz 3 przełączniki powodujące przyśpieszenie realizacji kodu.Faktem jest że reakcja na zdarzenia (np edycja komórki), które powodują automatyczne przeliczenie spowalnia realizację kodu (no bo za każdym wrzuceniem czegoś do kolejnych komórek arkusz Excel wynik). Mając zatem np 1000 elementów do wypełnienia skazujemy sie na 1k wywołań przeliczeń. Aby to przyśpieszyć wyłączamy auto przeliczenie oraz zdarzenia.
Na wyłączonych zdarzeniach, można jednak od czasu do czasu uruchomić przeliczenie i będzie ono działać na rozkaż a nie za każdą edycją następnych obszarów arkusza.
Tomasz słusznie się pokierował.
Po wykonaniu modyfikacji włączamy przeliczenia i włączamy zdarzenia.
Trzecim przełącznikiem jest miganie - czyi praca naszej VGA która też potrafi opóźnić proces oraz ukryć kulisy obliczeń.
with application
.EnableEvents = False 'True
.Calculation = xlCalculationManual 'xlCalculationAutomatic
.ScreenUpdating = False 'True
end with
Jeśli jednak nie musisz korzystać z obliczeń wynikających z kalkulacji formuł i ich stałym utrzymywaniu to lepiej jest przeliczyć w VBA. Zamiast więc formuły polecenie
application.worksheetfunction....
Podobne tematy
-
Fani Excela » funkcja text. / może makro? -
-
Fani Excela » Dynamiczna zależność od dwóch zmieniających się wartości... -
-
Fani Excela » Makro które sprawdza czy dany plik jest już otwarty -
-
Fani Excela » Makro pyta o sciezke arkusza i kopiuje arkusz -
-
Fani Excela » VBA - allegro webapi - czy komuś się to udało -
-
Fani Excela » czy ktoś może pomóc??? -
-
Fani Excela » Może komuś się przyda - dodawanie cienia w tle wykresu do... -
-
Fani Excela » Witam potrzebuje pomocy w excelu, jestem początkującym... -
-
Fani Excela » Makro do drukowania z zakresu z użyciem adresu pośredniego. -
-
Fani Excela » Zliczanie wystąpień zmieniającego się ciągu tekstowego -
Następna dyskusja: