Avatar billede larskoch Nybegynder
08. oktober 2010 - 10:46 Der er 8 kommentarer og
1 løsning

Eksterne data

Importerer idag nogle excelfiler (10 stk.) dannet i access i et samle ark. Filnavnet er altid det samme: test1.xls , test2.xls o.s.v.
Er det muligt, at skrive stinavnet et sted i samlearket (da det kun er det der ændre sig) og anvende dette kombineret med filnavn i en import makro. Så er der kun et sted hvor jeg skal skrive den nye sti.
Bruger nedennævnte (stump) kode i f.m. importen

Dim myWorkbook As Workbook
   
    Set myWorkbook = Application.Workbooks.Open(Filename:="C:\Data\test1.xls")
    myWorkbook.Sheets("qry_AlleFelterExcelEksport").Activate
Avatar billede Thyge Nybegynder
08. oktober 2010 - 12:44 #1
Jeg må indrømme at jeg er meget i tvivl om hvad du mener. Er det fordi du vil hente fra forskellige mapper?

F.eks.

    Set myWorkbook = Application.Workbooks.Open(Filename:="C:\" & Range("A1").Value & "\test1.xls")

hvor du i celle A1 anfører mappe-/stinavnet.
Avatar billede larskoch Nybegynder
09. oktober 2010 - 18:44 #2
Måske lidt dårligt formuleret.... det jeg mener er, at på den ene pc kan jeg have de eksporterede filer - som jeg vil importere i mit samlerark i stien D:\Test\.... og på en anden pc i stien C:\Test\... forskellige drev/stier.
Det ville så lætte koden lidt hvis man så bare et sted i arket skrev stien og den så benyttede denne i alle tilfælde...
Avatar billede Thyge Nybegynder
11. oktober 2010 - 10:28 #3
Altså samme sti, men på forskellige drev. Du skal køre den samme kode to gange, men med forskellige drev, f.eks.

    Set myWorkbook = Application.Workbooks.Open(Filename:="C:\" & Range("A1").Text() & ".xls")
    myWorkbook.Sheets("qry_AlleFelterExcelEksport").Activate

...resten af koden

    Set myWorkbook = Application.Workbooks.Open(Filename:="D:\" & Range("A1").Text() & ".xls")
    myWorkbook.Sheets("qry_AlleFelterExcelEksport").Activate

...resten af koden

Forstår jeg det korrekt?
Avatar billede larskoch Nybegynder
11. oktober 2010 - 10:36 #4
Ikke helt.... Jeg vil gerne have at man skriver hele stien et sted i arket C:\Test\.... eks. (A1) så det er det Range den styrer efter.
Så skal jeg ikke skrive henholdsvis C:\ eller D:\ direkte i koden!
Har jeg forklaret det OK!
Avatar billede Thyge Nybegynder
11. oktober 2010 - 13:26 #5
Det kan du sagtens.

Set myWorkbook = Application.Workbooks.Open(Filename:=Range("A1").Text())
Avatar billede larskoch Nybegynder
11. oktober 2010 - 13:44 #6
Jeg skrev jo næsten svaret selv - men send et svar og få point....
Avatar billede Thyge Nybegynder
11. oktober 2010 - 14:00 #7
Ja det gjorde du nemlig - derfor forstod jeg ikke helt spørgsmålet... Behold bare pointene.
Avatar billede Thyge Nybegynder
11. oktober 2010 - 15:32 #8
Det gjorde du nemlig - Så jeg blev noget i tvivl om hvad du ønskede. Behold bare pointene...
Avatar billede larskoch Nybegynder
22. november 2010 - 11:36 #9
Høster så selv point!
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