Avatar billede fajens Mester
17. november 2005 - 09:31 Der er 7 kommentarer og
1 løsning

Hente data lukket excel ark

I et excel regnenark vil jeg, ved hjælp af VBA, gerne hente/gemme data fra en bestemt celle et andet regneark uden at åbne det først. Noget lignebde som en query fra database.
Kan man det.??
Evt. hvordan??

/fajens
Avatar billede supertekst Ekspert
17. november 2005 - 11:34 #1
Eksempel til inspiration:
Dim xsti
Dim hentFra As Excel.Application
Sub hentFraAndetArk()
Rem Henter stien - her ligger filerne i samme mappe
    xsti = ActiveWorkbook.Path
    If Right(xsti, 1) <> "\" Then
        xsti = xsti + "\"
    End If
   
Rem hent værdien fra D3 i filen xfil_2.xls
    Set hentFra = CreateObject("Excel.Application")
    hentFra.Workbooks.Open xsti + "xfil_2.xls"
    hentværdi = hentFra.Sheets("Ark1").Cells(3, 4).Value

Rem indsætter værdien i C1 i xfil_1.xls (makroen ligger i denne fil)
    ActiveWorkbook.Sheets("Ark1").Cells(1, 3).Value = hentværdi
   
    hentFra.Quit
    Set hentFra = Nothing
End Sub
Avatar billede fajens Mester
17. november 2005 - 12:58 #2
Hej supertekst
Det virker fint, lige det jeg ledte efter.

Hvordan med at skrive i en lukket fil.??

Har du også et bud på det.??

/fajens
Avatar billede supertekst Ekspert
17. november 2005 - 14:24 #3
Hej fajens

Det var så godt...

Det skulle også kunne lade sig gøre - men hvorfra vil du så aktivere VBA-koden?
I eksemplet ligger koden i xfil_1.

Men du kan f.eks. nok gøre det fra en excel.skabelon - er det sådan du tænker - eller anden fil fra Office-verdenen?

MVH
Avatar billede fajens Mester
17. november 2005 - 17:56 #4
Hej supertekst

Jeg vil hente en værdi fra xfil_2.xls celle D3
ind i xfil_1.xls celle C1 .

Lave beregning med værdien og gemme den igen i xfil_2.xls celle D4
koden liger stadig i xfil_1.xls som er åben hele tiden.

Håber det var til at forstå .
/fajens
Avatar billede bak Seniormester
18. november 2005 - 00:15 #5
Du kan ikke skrive til en lukket fil.
Du er nødt til at åbne den, men den behøver jo ikke være visible.
men... da intet er helt umuligt et hern et par metoder med ADO

http://www.eksperten.dk/artikler/378
http://www.erlandsendata.no/english/index.php?d=envbadacwbdbado
Avatar billede supertekst Ekspert
18. november 2005 - 09:06 #6
Dim xsti
Dim hentFra As Excel.Application
Sub hentFraAndetArk()
Rem Henter stien - her ligger filerne i samme mappe
    xsti = ActiveWorkbook.Path
    If Right(xsti, 1) <> "\" Then
        xsti = xsti + "\"
    End If
   
Rem hent værdien fra D3 i filen xfil_2.xls
    Set hentFra = CreateObject("Excel.Application")
    hentFra.Workbooks.Open xsti + "xfil_2.xls"
    hentværdi = hentFra.Sheets("Ark1").Cells(3, 4).Value

Rem indsætter værdien i C1 i xfil_1.xls (makroen ligger i denne fil)
    ActiveWorkbook.Sheets("Ark1").Cells(1, 3).Value = hentværdi
   
Rem Beregninger på værdien - her via makroen
Rem - ellers skal formlen ligge i Xfil_1, der resulterer i en anden beregnet celle
Rem Denne skal så overføres til xfil_2
    nyværdi = hentværdi / 2                'beregning
   
    hentFra.Sheets("Ark1").Cells(4, 4).Value = nyværdi
    hentFra.ActiveWorkbook.Save
    hentFra.ActiveWorkbook.Close
   
    hentFra.Quit
    Set hentFra = Nothing
End Sub
Avatar billede fajens Mester
18. november 2005 - 10:55 #7
Hej supertekst

Jeg kan bruge det du har lavet.
Så du får point

/fajens
Avatar billede fajens Mester
18. november 2005 - 10:57 #8
Hej bak

Dit forslag har jeg oså set på men så er det nok bedre at lave det hele forfra med database, det burde det være lavet i førdte omgang men det er noget jeg har 'arvet'.
så tak for hjælpen

/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

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