Avatar billede muratkaya9 Novice
19. september 2023 - 13:33 Der er 3 kommentarer

Vba spørgsmål

Hej.

Jeg står med en lille udfordring, som jeg bare ikke kan løse.

Jeg har brug for at kunne hente data fra 3 excel ark, hvor de skal åbne, opdatere en ark, gemme og lukke. Jeg har prøvet at sætte flue ben i, opdater når filen åbnes, men det er som om, at det ikke virker.

Åbne, gemme og lukke koden virker fint, men når jeg tilføjer en opdater kode, så laver den fejl - jeg har fjernet den kode som opdater ark.


Håber I kan hjælpe mig.

Sub Produktionsoverblik()

Application.DisplayStatusBar = True

Application.StatusBar = "Henter data - Vent venligst... "

Application.ScreenUpdating = False

Workbooks.Open "F:\Fælles\Rådata ark\XXXX.xlsx"
Workbooks("XXXX.xlsx").Save
  Workbooks("XXXX.xlsx").Close

Workbooks.Open "F:\Fælles\Rådata ark\overblik\XXXX.xlsx"
Workbooks("XXXX.xlsx").Save
  Workbooks("XXXX.xlsx").Close


HER FRA OG NED AD - HAR JEG BRUG FOR HJÆLP
 
Workbooks.Open "F:\Fælles\Rådata ark\overblik\XXXX.xlsx"
Workbooks("XXXX.xlsx").Save
  Workbooks("XXXX.xlsx").Close
   

Workbooks.Open "F:\Fælles\Rådata ark\overblik\XXXX.xlsx"
Workbooks("XXXX.xlsx").Save
  Workbooks("XXXX.xlsx").Close
 
Workbooks.Open "F:\Fælles\Rådata ark\overblik\XXXX.xlsx"
Workbooks("XXXX.xlsx").Save
  Workbooks("XXXX.xlsx").Close

Workbooks.Open "F:\Fælles\Rådata ark\XXXX.xlsx"
Workbooks(XXXX.xlsx").Save
  Workbooks("XXXX.xlsx").Close
 

  Application.ScreenUpdating = True



Range("I3").Value = Now

Application.StatusBar = Falsk

Application.StatusBar = "Klar"
If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData
  'Variable Declaration
    Dim OutPut As Integer
ActiveWorkbook.RefreshAll
    'Example of vbOKOnly

 
         
    OutPut = MsgBox("Tak for din tålmodighed - om 10 sek er arken klar!", vbOKOnly, "XXXX")
    If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData
Avatar billede MaxZpaD Guru
21. september 2023 - 10:01 #1
Er det forbindelser og/eller forespørgsler (f.eks. til databaser), du gerne vil have opdateret i arkene?

I så fald bør det kunne klares med Workbooks("XXXX.xlsx").RefreshAll, før der gemmes med Workbooks("XXXX.xlsx").Save

Du kan i øvrigt klare luk og gem i én og samme linje: Workbooks("XXXX.xlsx").Close True, hvor True betyder, at det er sandt, at der skal gemmes inden Luk.
Avatar billede muratkaya9 Novice
22. september 2023 - 06:59 #2
Hej - det er forespørgsler jeg vil have opdateret.

Jeg har sat den ind således

Workbooks.Open "F:\Fælles\Rådata ark\Overblik\XXX.xlsx"
Workbooks("Dør.xlsx").RefreshAll
Workbooks("Dør.xlsx").Save
  Workbooks("Dør.xlsx").Close

Den åbner, gemmer og lukker men den opdatere ikke :(
Avatar billede MaxZpaD Guru
22. september 2023 - 08:51 #3
Prøv at højre-klikke på en af dine forespørgsler og vælg Egenskaber...

Hvis checkboksen "Aktivér baggrundsopdatering" er afkrydset, så prøv at fjerne afkrydsningen og forsøg igen. Jeg har før oplevet, at en makro kører videre, uanset at baggrundsopdateringen ikke er kørt færdig.

Du kan evt. indsætte denne stump kode i starten. Den slår baggrundsopdatering fra for alle dine forespørgsler/forbindelser i den pågældende fil.

    Dim cn As WorkbookConnection
    For Each cn In ThisWorkbook.Connections
        cn.OLEDBConnection.BackgroundQuery = False
    Next cn
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester