Avatar billede fajens Mester
02. september 2025 - 11:29 Der er 5 kommentarer og
2 løsninger

Hente data fra andet excelark VBA

Hej
Vil gerne hente data fra et lukke excel (Data.xlsb) ark og sætte denm ind i et åbent excelark (Main.xlsb), hvori også macroen er og kaldes med Ctrl+shift+v

Har lavet denne kode som virker fint når jeg kører den i visual basic vindue, men ikke virker når jeg kalder den fra arket Main.dk.
Hvad går galt og hvad er løsningen?
Se kode:

Sub hente_data()

Dim Data_1, Data_2

Workbooks.Open Filename:="S:\Test_1\Data.xlsb"
Data_1 = Cells(5, 3).Value
Data_2 = Cells(5, 4).Value

Workbooks("Main.xlsb").Activate
Cells(5, 3).Value = Data_1
Cells(5, 4).Value = Data_2

Workbooks("Data.xlsb").Close

End Sub

Fajens/
Avatar billede Dan Elgaard Ekspert
02. september 2025 - 12:09 #1
Du skriver ikke noget om, hvad det er, som ikke virker?

Lidt svært, at hjælpe, når man ikke ved, hvad fejlen er???
Avatar billede fajens Mester
02. september 2025 - 12:43 #2
Hej Dan.
Beklager at jeg ikke beskrev fejlen..

Fejlen er at den altid stopper når den har hentet dataene fra data.xlsb, lige før den skal skrive dataene i main.xlsb. stopper med data.xlsb som det åbne og aktive wormkbook.

Giver det lidt mere mening.
/fajen
Avatar billede Dan Elgaard Ekspert
02. september 2025 - 13:05 #3
Prøv med denne:

Sub Hente_Data()

'  Define variables
    Dim WB_Main As Excel.Workbook
    Set WB_Main = Workbooks("Main.xlsb")

    Dim WB_Data As Excel.Workbook
    Set WB_Data = Workbooks.Open(Filename:="S:\Test_1\Data.xlsb")


'  Transfer data
    WB_Main.Cells(5, 3).Value = WB_Data.Cells(5, 3).Value
    WB_Main.Cells(5, 4).Value = WB_Data.Cells(5, 4).Value


'  End of Sub
    Workbooks("Data.xlsb").Close False

    Set WB_Main = Nothing
    Set WB_Data = Nothing

End Sub
Avatar billede fajens Mester
02. september 2025 - 19:12 #4
Hej
Tak for it fine svar, men det virker heller ikke, stopper i første linje efter 'Transfer data med følgende fejl: Run time error '438': Object doesn't support this property or method.

Problemet ligger nok i at Main.xlsb bliver inaktiv når Data.xlsb åbnes og bliver aktiv i forgrunde og macroen ligger i Main.xlsb

/fajens
Avatar billede Dan Elgaard Ekspert
03. september 2025 - 07:58 #5
Nej, fejlen skyldes, at jeg er et fjols!
Jeg glemte helt 'Worksheet' objektet - dumme mig!

Sub Hente_Data()

'  Define variables
    Dim WB_Main As Excel.Workbook
    Set WB_Main = Workbooks("Main.xlsb")

    Dim WB_Data As Excel.Workbook
    Set WB_Data = Workbooks.Open(Filename:="S:\Test_1\Data.xlsb")


'  Transfer data
    WB_Main.Worksheets("Navn på ark").Cells(5, 3).Value = WB_Data.Worksheets("Navn på ark").Cells(5, 3).Value
    WB_Main.Worksheets("Navn på ark").Cells(5, 4).Value = WB_Data.Worksheets("Navn på ark").Cells(5, 4).Value


'  End of Sub
    Workbooks("Data.xlsb").Close False

    Set WB_Main = Nothing
    Set WB_Data = Nothing

End Sub

Udskift selv "Navn på ark" med navnet på regnearkene i henholdsvis 'Main' og 'Data'.
Avatar billede fajens Mester
03. september 2025 - 09:15 #6
Hej igen.
Den virker nu. Tak for hjælpen.

Der er et problem i systemet, for når jeg laver et kald der hedeer Ctrl+shift+B virker det ikke, men med et kald der hedder ctrl+b kører den lige igennem, faktisk også den jeg lagde op til start. Hvad gør man så?

Bruger så det der duer.
/fajens
Avatar billede fajens Mester
03. september 2025 - 12:32 #7
Hej
Problemet med at Ctrl+shift+ i nogen sammenhænge ikke virker, er et kendt problem når man søger på nettet, kommer der flere hit hvor fejlen er nævnt

Jeg takker for hjælp og lukker tråden.
/fajens
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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