Avatar billede samstrup Nybegynder
16. juni 2008 - 23:05 Der er 6 kommentarer og
1 løsning

Link til mange regneark

Jeg har godt 115 regneark.  Jeg ønsker nu at lave ét samlet ark med udvalgte data fra de 115 regneark.

Hvis jeg nu eksempelvis ønsker celle A1 fra hvert regneark kan jeg da gøre det på en snedig måde uden at skulle kalde hvert af de 115 regneark.

Eksempel:

Filnavn1 Celle A1 -> Placeres i A1
Filnavn2 Celle A1 -> Placeres i A2
Filnavn3 Celle A1 -> Placeres i A3



/ Søren
Avatar billede samstrup Nybegynder
16. juni 2008 - 23:16 #1
Jeg forestiller mig eksempelvis, at alle filer lå i samme "Folder" hvorefter et script kan løbe samtlige regneark igennem og give ovenstående.  Filnavngivningen er desværre ikke lige så simpel som angivet i eksemplet.
Avatar billede supertekst Ekspert
16. juni 2008 - 23:40 #2
Kan godt lade sig gøre via VBA!
Skal oprindelsen (filnavne) ikke med - eller?
Avatar billede supertekst Ekspert
16. juni 2008 - 23:58 #3
Rem Version 1 - henter cellen A1 fra alle filer / Ark1
Rem ==================================================
Dim sti, filSti
Dim celleA1, samlRæk
Sub samlingAfFiler()
    sti = hentSti
    samlRæk = 1
   
    Application.ScreenUpdating = False
    traverserFilMappe sti + "TestMappe"            'erstattes af dit navn
   
    ActiveWorkbook.Sheets(1).Activate
    ActiveSheet.Columns.AutoFit
   
    Application.ScreenUpdating = True
   
    MsgBox ("Samling er udført")
End Sub
Private Function hentSti()
    hentSti = ActiveWorkbook.Path
    If Right(hentSti, 1) <> "\" Then
        hentSti = hentSti + "\"
    End If
End Function
Private Sub traverserFilMappe(mappe)
Dim xlsFil
Dim fs, f, fil, fc
On Error GoTo fejl
   
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(mappe)
    Set fc = f.Files

Rem behandling af alle filer i mappe
    For Each fil In fc
        Set xlsFil = CreateObject("Excel.Application")
        With xlsFil
            .Workbooks.Open mappe + "\" + fil.Name
            .Sheets(1).Activate
            celleA1 = .Range("A1")                  '<--- hent cellen  i fil
        End With
        xlsFil.Application.Quit
        Set xls = Nothing

Rem Opdater i samling
        With ActiveWorkbook
            .Sheets(1).Activate
            With ActiveSheet
                .Cells(samlRæk, 1) = celleA1        '<--- indsæt cellen i samling
            End With
            samlRæk = samlRæk + 1
        End With
    Next
    Exit Sub

fejl:
    xlsFil.Application.Quit
    Set xls = Nothing
    MsgBox ("Fejl erkendt - kontakt udvikler")
End Sub
Avatar billede kabbak Professor
17. juni 2008 - 00:01 #4
ublic Sub Opdater()
    Dim Sti As String, Fil() As Variant, Nr As Integer, I As Integer
    With Application.FileDialog(msoFileDialogFolderPicker) ' Folder vælger
        .Show
        Sti = .SelectedItems(1) ' hvad du valgte
    End With
Nr = 0
ReDim Preserve Fil(Nr)
Fil(Nr) = Dir(Sti & "\*.xls")  ' Retrieve the first entry.
Do While Fil(Nr) <> ""    ' Start the loop.
Nr = Nr + 1
ReDim Preserve Fil(Nr)

    Fil(Nr) = Dir    ' Get next entry.
Loop
Nr = Nr - 1
For I = 0 To Nr
Cells(I + 2, 1).FormulaLocal = "='" & Sti & "\[" & Fil(I) & "]Ark1'!$A$2" ' indsætter formel i A kolonnen, startende i A2
Cells(I + 2, 2) = Sti & "\[" & Fil(I) ' skrver i B kolonnen hvad mappen hedder og hvor den ligger
Next
End Sub
Avatar billede kabbak Professor
17. juni 2008 - 00:02 #5
der manglede lige det første bogstav

Public Sub Opdater()
    Dim Sti As String, Fil() As Variant, Nr As Integer, I As Integer
    With Application.FileDialog(msoFileDialogFolderPicker) ' Folder vælger
        .Show
        Sti = .SelectedItems(1) ' hvad du valgte
    End With
Nr = 0
ReDim Preserve Fil(Nr)
Fil(Nr) = Dir(Sti & "\*.xls")  ' Retrieve the first entry.
Do While Fil(Nr) <> ""    ' Start the loop.
Nr = Nr + 1
ReDim Preserve Fil(Nr)

    Fil(Nr) = Dir    ' Get next entry.
Loop
Nr = Nr - 1
For I = 0 To Nr
Cells(I + 2, 1).FormulaLocal = "='" & Sti & "\[" & Fil(I) & "]Ark1'!$A$2" ' indsætter formel i A kolonnen, startende i A2
Cells(I + 2, 2) = Sti & "\[" & Fil(I) ' skrver i B kolonnen hvad mappen hedder og hvor den ligger
Next
End Sub
Avatar billede samstrup Nybegynder
17. juni 2008 - 06:15 #6
Til kabbak

Det virker. Lav svar og pointene er dine.
Avatar billede kabbak Professor
17. juni 2008 - 08:04 #7
et 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

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