10. juni 2012 - 10:41Der er
9 kommentarer og 1 løsning
Sammenlægning af ugesedler
Jeg har nogle ugesedeler som folk aflevere hver uge. Hver ugesedel er en excelfil med ét ark, hvor de udfylder en række, for hver opgave de har løst i løbet af ugen.
Jeg vil gerne kunne samle disse ugesedle-lister fra de mange regneark i en fil, som en lang liste med alle folks opgaver. Målet er at kunne sorterer dem efter dato, kunde eller initialer eller lave Pivottabeller over det.
Jeg har installeret "BST Utilities", men kan kun få den til at samle ugesedlerne i én fil med et ark for hver.
Jeg vil gerne ende med en liste i ét regneark, hvor alle udførte opgaver står under hinanden. Hver linje indeholder også medarbejderens initialer, så ja, jeg vil gerne have dem til at stå under hinanden.
Sæt denne i en tom excel mappe, koden henter data fra de excel mapper du vælger.
Jeg går ud fra at der er overskrifter i mapperne, så det er kun den første jeg læser række 1 ind fra.
ret selv 6 tallet, den der styrer antal kolonner.
Option Explicit
Public Sub HentFiler() Dim Fil As String, Data As Variant, RW As Long, I As Integer
RW = 1 ' startrække Application.ScreenUpdating = False Cells.ClearContents ' tømmer arket, inden ny indlæses With Application.FileDialog(msoFileDialogOpen) .Show .AllowMultiSelect = True If .SelectedItems.Count = 0 Then Exit Sub For I = 1 To .SelectedItems.Count Fil = .SelectedItems(I) RW = Cells(65500, "A").End(xlUp).Row Workbooks.Open Filename:=Fil If RW = 1 Then Data = Range(Cells(1, 1), Cells((Cells(65500, "A").End(xlUp).Row), 6)) ' kolonne a = A til & = F,( med overskrifter i række 1) Else Data = Range(Cells(2, 1), Cells((Cells(65500, "A").End(xlUp).Row), 6)) ' kolonne a = A til & = F ( UDEN række 1) End If ActiveWorkbook.Close False Range("A" & RW).Resize(UBound(Data, 1), UBound(Data, 2)) = Data Next End With Application.ScreenUpdating = True End Sub
If RW = 1 Then Data = Range(Cells(4, 1), Cells((Cells(65500, "A").End(xlUp).Row), 6)) ' kolonne a = A til & = F,( med overskrifter i række 1) Else Data = Range(Cells(5, 1), Cells((Cells(65500, "A").End(xlUp).Row), 6)) ' kolonne a = A til & = F
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.