Avatar billede Lasse Novice
26. oktober 2000 - 08:25 Der er 15 kommentarer og
1 løsning

Data fra flere forskellige Excel filer automatisk

Merge data from several workbooks 
You can link workbooks from several users or departments and then integrate the pertinent data into a summary workbook. That way, when the source workbooks are changed, you won\'t have to manually change the summary workbook.

Hvordan gør man det? Altså integrationen. Jeg kan nu hente data fra én fil vha:

=SUM(\'C:\\[hej.xls]Sheet1\'!C2:C4)

Men hvis jeg gerne vil have ALLE filer i biblioteket c:\\bibliotek

hvordan gør man så?
Avatar billede nikolajdu Nybegynder
26. oktober 2000 - 09:34 #1
Alle filer? Forestiller du dig at Excel selv finder ud af hvilke og hvor mange? - det tror jeg ikke det kan...

Men, hvis du skal flette flere filer sammen... så...

Ved ikke om det er det her du mangler...

=SUM((\'C:\\[hej.xls]Sheet1\'!C2:C4)+(\'C:\\[hejigen.xls]Sheet1\'!C2:C4))

Detter lægger værdien af cellerne i de 2 forskellige regneark sammen og returnerer den i cellen.

ang.: kæder og opdatering

Hvis de automatiske kæder til data i andre programmer skal opdateres, skal du klikke på Indstillinger i menuen Funktioner, klikke på fanen Beregning og sørge for, at afkrydsningsfeltet Opdater fjernreferencer er markeret. Hvis dette felt ikke er markeret, tilsidesættes indstillingen Automatisk i dialogboksen Kæder i menuen Rediger for sammenkædede datakilder fra andre programmer, f.eks. et Microsoft Word-dokument eller en Microsoft Access-database.

Nikolaj
Avatar billede jus Nybegynder
26. oktober 2000 - 11:12 #2
Lav en VB-funktion, der med parametrene path, sheetname og range gennemlæser alle filer i et bibliotek og henter de relevante data fra filerne, der returneres vha path (ex. c:\\data\\*.xls)

Denne funktion kan du bruge i dine celler, som almindelige XL-funktioner.

De forskellige filer finder du vha. Dir() kommandoen.

I en celle vil du herefter kunne skrive funktionen =FileSum(\"c:\\data\\*.xls\",\"sheet1\",\"c2:c4\")
Avatar billede Lasse Novice
26. oktober 2000 - 11:37 #3
desværre nikolaj, det er ikke lige det jeg mener. Jeg ved som sagt ikke hvor mange filer der er, men kun at de ligger i et bestemt bibliotek. Anyway, jeg tror jus har et svar...
Avatar billede Lasse Novice
26. oktober 2000 - 11:39 #4
jus>>men du må godt uddybe lidt... jeg ved ikke lige så meget om det... Jeg troede at man med alm excel komandoer kunne det... jeg giver 200 point, hvis du laver det til mig...
Avatar billede Lasse Novice
26. oktober 2000 - 11:39 #5
hmmm, jeg prøver nu alligevel lige selv om ikke andet..,.
Avatar billede Lasse Novice
26. oktober 2000 - 11:43 #6
hjææææælp...
Avatar billede nikolajdu Nybegynder
26. oktober 2000 - 11:51 #7
gooky/

Jeg tror også jus har fat i den lange.. he he...

kigger oxo lige på det..

Nikolaj
Avatar billede nikolajdu Nybegynder
26. oktober 2000 - 12:02 #8
Der står noget her om det i Visualbasic hjælpefilen...

Dir returns the first file name that matches pathname. To get any additional file names that match pathname, call Dir again with no arguments. When no more file names match, Dir returns a zero-length string (\"\"). Once a zero-length string is returned, you must specify pathname in subsequent calls or an error occurs. You can change to a new pathname without retrieving all of the file names that match the current pathname. However, you can\'t call the Dir function recursively. Calling Dir with the vbDirectory attribute does not continually return subdirectories.

Så jo, han har godt fat i den lange...

Avatar billede jus Nybegynder
26. oktober 2000 - 12:38 #9
Desværre... jeg har ikke tid til at lave koden, brug dir() funktionen
lav en while løkke, der løber alle filer igennem.

For hver fil åbnes denne og cellerne i det pågældende celleområde løbes igennem (det kan gøres med en For Each løkke)

Opdater en sumvariabel og gentag for næste fil

Til sidst skriver du indholdet af din sumvariabel over i en \"variabel\" med samme navn som funktionsudtrykket!

Håber, at det er nok til at få mine point
Avatar billede Lasse Novice
26. oktober 2000 - 13:31 #10
jeg kigger på\'ed
Avatar billede nerøs Nybegynder
26. oktober 2000 - 23:21 #11
Man kan ikke bruge en Function til at åbne og lukke filer med, så hvis det skal laves som en Function må man finde en anden måde at hente data fra de lukkede filer.
Alternativt kan man bruge en procedure til at generere en reference til hver fil, men den vil ikke udenvidere blive blive opdateret når der tilføjes eller fjernes filer fra mappen.

VH Nerøs
Avatar billede clsc Praktikant
31. oktober 2000 - 20:30 #12
-nu er det jo ikke det rette forum, men alligevel...

Jeg har en lille VB-stump liggende, som åbner txt-filer. Den kan da hjælpe jer lidt på vej :-)

Der er to subs - en der pløjer biblioteket igennem og en der åbner filerne. Den sidste kaldes fra den første.

Der kommer endda en lille boks og spørger hvor filerne er gemt henne og så er der en lille kontrol som fortæller hvor mange der er af dem.

Så skal der rode lidt mindre med koden. Feel free:

[claus]

Sub TXTFiler(x)

Dim fs As Object                          \'filsøgning
Dim f As Integer                          \'fil/tæller
Dim path As String                      \'sti til filer
Dim fn As String                            \'filnavn
Dim Response As Variant        \'fejlmeddelelser


Set fs = Application.FileSearch
   
    path = InputBox(\"Tast bibliotek\", \"Åbn Filer\", \"C:\\Bibliotek\\\")
   
With fs
    .LookIn = path
    .FileName = \"*.txt\"
    If .Execute > 0 Then
        Response = MsgBox(\"Der er \" & .FoundFiles.Count & _
            \" *.txt-filer i:\" & Chr(10) & path, vbOKOnly, \"Kontrol af filer\")
        For i = 1 To .FoundFiles.Count
           
            fn = .FoundFiles(i)
           
        Call OpenFile(fn)          \'Filerne åbnes

        Next i
    Else
        MsgBox \"Der er ingen *.txt-filer i biblioteket.\"
    End If
End With

End Sub

Sub OpenFile(fn)

Workbooks.OpenText FileName:=fn, _
        Origin:=xlMSDOS, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Comma:=True

End Sub
Avatar billede clsc Praktikant
31. oktober 2000 - 20:31 #13
-hov, jeg glemte at slette parameteren x øverst, det skal naturligvis være TXTFiler()

:-)claus
Avatar billede janvogt Praktikant
17. november 2000 - 10:26 #14
Hvis brugernes ark er helt ens, var det så ikke mere smart at lade brugerne lave en makrooverførsel af C2:C4 til dit hovedark - alternativt pr. automatik v.h.a.
Private Sub Workbook_Deactivate() ?
Avatar billede Lasse Novice
24. november 2000 - 10:15 #15
janvogt... er det noget du kan lave??? Jeg skal have lavet det, men har ikke tid til at sætte mig ind i VBA... Jeg giver gerne flere point!!!
Avatar billede Lasse Novice
12. december 2000 - 11:32 #16
ingen brugbare svar!
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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