hel: 52 excelbestanden samenvoegen in 1 bestand

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Anoniem: 127858

Topicstarter
Ik heb een uitdaging:

ik heb 52 excelbestanden met sellout-gegevens van een klant. elk bestand heet wkx, waarin x staat voor het weeknummer dus wk1.xls , wk2.xls enzovoort. De bestanden bevatten 1 tabblad dat telkens dezelfde naam heeft bijv. "sellout"

Wat wil ik nu: deze 52x1 tabbladen samenvoegen in 1 bestand zodat ik de complete sellout van 2010 in 1 bestand met 52 tabbladen krijg.

Hoe krijg ik dit voor elkaar zonder 4 uur bezig te zijn met openen van bestanden en verplaatsen van tabbladen?

Groeten, Roel

Acties:
  • 0 Henk 'm!

  • haneev
  • Registratie: November 2005
  • Laatst online: 29-05 18:19
Ik denk toch dat het sneller is om 52x even een openen -> ctrl-c -> nieuw tab-blad-> ctrl-v dan helemaal een programma te maken en uit te zoeken hoe dat werkt. Misschien kan je even prutsen met een makro en een loop, maar als het niet vaker gebeurt zou ik 52x dat even doen. Hooguit een half uurtje

Acties:
  • 0 Henk 'm!

  • bazs2000
  • Registratie: November 2000
  • Laatst online: 05-05 22:46

bazs2000

Pixels zo groot als een atoom

Tja, als er alleen maar data in het WKX bestand staat dan kun je ook vanuit de te maken xls een celverwijzing naar de cel in het bestand maken.

Vervolgens trek je deze formule door in alle tabbladen (ieder tabblad verwijst naar zijn eigen bestand) en dan hoef je alleen maar alles te kopieren en te plakken als tekst. Het levert een korte tijd wel een gigantisch bestand op. Ik bewijfel alleen of dit sneller is dan de inhoud van bestand x te kopieren en te plakken in tabblad x.

Krankzinnige muziek vind je hier.


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Een VBAtje kan ook vrij eenvoudig, maar haneev heeft wel een punt: ondertussen was het met copypasten al klaar geweest :P

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • dj_vibri
  • Registratie: Oktober 2007
  • Laatst online: 23-03 15:45

dj_vibri

int(e^x) = f(u)^n

en om te helpen :) *altijd tof om iets nieuws te proberen :p *

misschien handig voor mensen die in de toekomst ook dit probleem hebben:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub Merge2MultiSheets()
Dim wbDst As Workbook
Dim wbSrc As Workbook
Dim wsSrc As Worksheet
Dim MyPath As String
Dim strFilename As String
    
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    MyPath = "C:\FilePath" ' change to suit
    Set wbDst = Workbooks.Add(xlWBATWorksheet)
    strFilename = Dir(MyPath & "\*.xlsx", vbNormal)
    
    If Len(strFilename) = 0 Then Exit Sub
    
    Do Until strFilename = ""
        
            Set wbSrc = Workbooks.Open(Filename:=MyPath & "\" & strFilename)
            
            Set wsSrc = wbSrc.Worksheets(1)
            
            wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count)
            
            wbSrc.Close False
        
        strFilename = Dir()
        
    Loop
    wbDst.Worksheets(1).Delete
    
    Application.DisplayAlerts = True
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    
End Sub


Verander de var MyPath naar het correcte path van al je excel files. Code plaatsen in een nieuwe excel file, opslaan als macro-enabled ;)

op het eerste zicht gaat er niet veel veranderd zijn, maar als je de master wil afsluiten zal hij vragen om alles op te slaan!

Tip: Deze code leest ALLE excel files in dezelfde folder uit, pakt de eerste sheet alleen en plaatst deze op een nieuwe sheet in de nieuwe workbook.

good?

Last night I lay in bed looking up at the stars in the sky and I thought to myself, where the heck is the ceiling.