Hente data fra flere celler i fler-arkede workbooks i mappe
Med hjaelp fra bl.a. Bak lavede jeg for nogle aar siden nedenstaaende makro der henter data i lukkede workbooks i en mappe. (Tak for det Bak)Makroen skifter raekke for hver gang jeg har et nyt ark i en workbook. Problemet er at jeg gerne vil have alle data paa een reakke fra en workbook og foerst skifte en raekke ned naar det er en ny workbook.
Et andet problem er at jeg vil hente forskellige celler i de forskellige ark (jeg kender navnene paa arkene, ikke altid paa workbooks).
Alt i alt jeg vil have alle data jeg oensker fra een woorkbook ud paa en raekke, efterfulgt af data jeg oensker fra den naeste woorkbook ud paa en foelgede raekke o.s.v. (Det er de samme celler jeg oensker fra alle workbooks, men ikke de samme celler i hvert ark)
Kan I hjaelpe mig med det, funktion med link til hvert filnavn i foreste kolonne maa meget gerne bevares.
Mange tak.
Sub GetValuesFromClosedFiles()
Dim FS As FileSearch
Dim FilePath As String
Dim i As Integer, j As Integer
Dim v As Variant
Dim Cells2Get()
Dim sheet As String
Const Filespec = "*.xls" 'udfyldes af bruger Filtype
FilePath = "C:\test\" 'udfyldes af bruger Startfolder
Cells2Get = Array("B2", "B3") 'udfyldes af bruger Celler, der skal hentes DER KAN Skrives flere celler efterfulgt af komma
Application.ScreenUpdating = False
Set FS = Application.FileSearch
With FS
.LookIn = FilePath
.Filename = Filespec
'.SearchSubFolders = True 'skal underfoldere også søges
.Execute
If .FoundFiles.Count = 0 Then
MsgBox ("Ingen filer fundet")
Exit Sub
End If
For i = 1 To .FoundFiles.Count
i5 = i * 5 - 4
v = Split(.FoundFiles(i), Application.PathSeparator)
FilePath = Left(.FoundFiles(i), InStrRev(.FoundFiles(i), Application.PathSeparator))
ActiveCell.Offset(i5 - 1, 0) = FilePath & v(UBound(v))
sheet = "part0"
For j = 0 To UBound(Cells2Get)
ActiveCell.Offset(i5 - 1, j + 1) = _
GetValue(FilePath, v(UBound(v)), sheet, Cells2Get(j))
Next
ActiveCell.Offset(i5 + 1 - 1, 0) = FilePath & v(UBound(v))
sheet = "parti"
For j = 0 To UBound(Cells2Get)
ActiveCell.Offset(i5 + 1 - 1, j + 1) = _
GetValue(FilePath, v(UBound(v)), sheet, Cells2Get(j))
Next
ActiveCell.Offset(i5 + 2 - 1, 0) = FilePath & v(UBound(v))
sheet = "partii"
For j = 0 To UBound(Cells2Get)
ActiveCell.Offset(i5 + 2 - 1, j + 1) = _
GetValue(FilePath, v(UBound(v)), sheet, Cells2Get(j))
Next
ActiveCell.Offset(i5 + 3 - 1, 0) = FilePath & v(UBound(v))
sheet = "partiii"
For j = 0 To UBound(Cells2Get)
ActiveCell.Offset(i5 + 3 - 1, j + 1) = _
GetValue(FilePath, v(UBound(v)), sheet, Cells2Get(j))
Next
ActiveCell.Offset(i5 + 4 - 1, 0) = FilePath & v(UBound(v))
sheet = "partiv"
For j = 0 To UBound(Cells2Get)
ActiveCell.Offset(i5 + 4 - 1, j + 1) = _
GetValue(FilePath, v(UBound(v)), sheet, Cells2Get(j))
Next
Next
End With
Application.ScreenUpdating = False
End Sub