Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Excel VBA - Jak wstrzymać makro do momentu zakończenia odświeżania?

26 Mar 2015 14:22 1218 2
  • Poziom 9  
    Witam,

    Napisałem proste makro, które to otwiera mi plik z SQL połączeniami. Po otwarciu odświeża mi połączenia i robi odpowiednie kalkulacje itd.
    Problem jest taki, że makro to robi mi kalkulacje szybciej niż system zapisze mi dane na odpowiedniej zakładce.

    Więc pytanie jest następujące - czy można (jak można) po odświeżeniu zakładki wstrzymać to makro do momentu pełnego zapisania danych (jak to opisuje system - do momentu zapisania "background query") a później robienie odpowiednich kalkulacji.

    Moje makro:


    Sub importplikuiobliczenia()

    Dim wb2 As Workbook
    Dim wb As ThisWorkbook

    Set wb2 = Workbooks.Open("i tutaj ścieżka do mojego pliczku")
    Set wb = ThisWorkbook

    'tutaj usuwam sobie poprzednie dane z zakladki gdzie mam moje połączenie
    wb2.Worksheets(2).Activate
    wb2.Worksheets(2).Range("A2:X2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents

    wb2.Worksheets(1).Activate
    ActiveWorkbook.Connections( _moje połączenie"). _
    Refresh


    'i później idą moje kalkulacje więc to chyba w tym miejscu powinienem coś podać??


    Dim a As Long
    a = wb2.Worksheets(2).Range("A" & Rows.Count).End(xlUp).Row


    Wiem, że makro trochę toporne :). Z góry dziękuję za podpowiedzi!
    Pozdrawiam
  • Pomocny post
    Specjalista - VBA, Excel
    Witaj
    ActiveWorkbook.Connections( _moje połączenie").Refresh BackgroundQuery:=false
    'Sheets(1).QueryTables("moja").Refresh BackgroundQuery:=false
  • Poziom 9  
    Super! Dziekuję bardzo za pomoc :)