Avatar billede mlhave Nybegynder
10. juni 2012 - 10:41 Der 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.

VH
Mikael
Avatar billede finb Ekspert
10. juni 2012 - 10:58 #1
Skal de ansatte stå under hinanden ? Du skal nok ud i VBA - Mvh finb
Avatar billede mlhave Nybegynder
10. juni 2012 - 11:27 #2
VBA er fint nok.

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.

/Mikael
Avatar billede kabbak Professor
10. juni 2012 - 13:53 #3
Har disse excel ugefiler et navn, eller en del af navnet, man kan kende dem på.
Avatar billede mlhave Nybegynder
10. juni 2012 - 14:18 #4
Som udgangspunkt er de navngivet

Ugeseddel-ÅR-UGENR-INITIALER
Avatar billede kabbak Professor
10. juni 2012 - 14:26 #5
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
Avatar billede mlhave Nybegynder
10. juni 2012 - 14:59 #6
Alt i alt perfekt.
Hvordan nu hvis overskrifterne er i række 4?
Point er på vej :o)
Avatar billede mlhave Nybegynder
10. juni 2012 - 15:01 #7
Æææh point er på vej var måske lidt hurtigt, hvordan giver jeg dig dem? Det er vist et par år siden jeg sidst har været her inde :o)
Avatar billede kabbak Professor
10. juni 2012 - 15:18 #8
Hvis overskrifter er i række 4, så

      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
Avatar billede mlhave Nybegynder
10. juni 2012 - 15:38 #9
Den får ikke sidste række med i den første af filerne?
Avatar billede kabbak Professor
10. juni 2012 - 15:24 #10
tak for point ;-))
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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