
Nog een kneus hier. Ik heb 200 excel files (elk 1 blad met data, 4 kolommen) en die wil ik samenvoegen naar 1 file (xls, txt, csv, wat dan ook). Daarbij is het ook nodig dat op elke regel de filenaam van de oorspronkelijke xls file wordt bijgevoegd. Ik heb al even zitten zoeken, maar ik kom tot nu toe geen programma's tegen die dat voor me doen en programmeren kan ik niet.
Heeft iemand een idee hoe je dat automagisch kan doen? Ik wil/moet dit weekend met die data gaan rekenen, dus hulp wordt zeer op prijs gesteld!
Dnak & drank voor de beste en tijdige oplossing!
Heeft iemand een idee hoe je dat automagisch kan doen? Ik wil/moet dit weekend met die data gaan rekenen, dus hulp wordt zeer op prijs gesteld!
Dnak & drank voor de beste en tijdige oplossing!
biermeester: Waar is de "Wat is dit voor klotenmaaltijd?" /seth?
fishbowl: Haha, NSFA en dan de foto's in de pots potsen. *ac...
Beerdje: GereduceerD
Beerdje: @witjoekel, in BA kan je het idd tegen zwaar geredu...
Witjoekel Vilmer: wet = weet. /freud
Jack Random: En de pest is, ik heb een enorme bak met spaargeld....
Geenszins Joling: En dát noemen ze nou een Calimerocomplex, Sjaak! ...
Jack Random: "Je hád jezelf bijvoorbeeld kunnen organiseren met...
Geenszins Joling: OLO@Die kale Bij de Lid/Aldi soms?
Die_kale: hebben jullie nou verdomme bijna een hele pagina er...
Totaal aantal: 1596
Waaronder de leden:
NCRV - Debat op 2 Het neefje van Tofik lewax DDWW, Steampimp. Gekke Tonnie Milkwood Witjoekel Vilmer Jack Random fishbowl inloggen en registreren riks Draken. Ketsman Tralala grijpstra Vriendhenk SJO3RD Amoron TheDeadDude WitPaard Swanfeather Wildplasser, beroepsweig gronk Beerdje MadDieu, 9th son of Cain h00tster Geenszins Joling HarryP cspr, drukt van zich af Die_kale TheStef zymu Monade - category B trai biermeester Kret-209 Der Webmeister koffieverkeerd Ds. Ploppo
NCRV - Debat op 2 Het neefje van Tofik lewax DDWW, Steampimp. Gekke Tonnie Milkwood Witjoekel Vilmer Jack Random fishbowl inloggen en registreren riks Draken. Ketsman Tralala grijpstra Vriendhenk SJO3RD Amoron TheDeadDude WitPaard Swanfeather Wildplasser, beroepsweig gronk Beerdje MadDieu, 9th son of Cain h00tster Geenszins Joling HarryP cspr, drukt van zich af Die_kale TheStef zymu Monade - category B trai biermeester Kret-209 Der Webmeister koffieverkeerd Ds. Ploppo

Aantal posts: 17
Aantal reacties: 1063
/fps
Aantal posts: 31
Aantal reacties: 946
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:\MyPath" ' change to suit
Set wbDst = Workbooks.Add(xlWBATWorksheet)
strFilename = Dir(MyPath & "\*.xls", 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
Aantal posts: 17
Aantal reacties: 1063
Ik krijg nog een foutmelding, maar volgens mij snap ik waar dat aan ligt.
Nu even slapen want het is het hier 6 uur vroeger. Straks laat ik even weten hoe het verder gegaan is.
Aantal posts: 31
Aantal reacties: 946
wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count)
zet je dan iets van
wbDst.Worksheets(wbDst.Worksheets(wbDst.Worksheets.Count)+1).Cells("A1").insertRow
Cell(A1). Value=strFilename
Dit werkt niet maar op deze manier zou het moeten werken....
Aantal posts: 26
Aantal reacties: 2606
Aantal posts: 21
Aantal reacties: 12998
hoe gaat het stoppen met roken, Fantje?
Aantal posts: 18
Aantal reacties: 25929
Aantal posts: 21
Aantal reacties: 12998
Aantal posts: 17
Aantal reacties: 1063
Op zich goed, maar wel ongelooflijke zin in een peuk, het duurt nog wel even voordat ik een niet-roker ben in plaats van een niet-rokende roker...
Aantal posts: 1
Aantal reacties: 1351
http://www.vbaexpress.com/kb/getarticle.php?kb_id=151
Aantal posts: 17
Aantal reacties: 1063
Aantal posts: 356
Aantal reacties: 20050
Aantal posts: 17
Aantal reacties: 1063
Aantal posts: 31
Aantal reacties: 946
Sub samen2()
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:\test" ' directory met excelbestanden
Set wbDst = Workbooks.Add(xlWBATWorksheet)
strFilename = Dir(MyPath & "\*.xls", vbNormal)
If Len(strFilename) = 0 Then Exit Sub
Do Until strFilename = ""
Set wbSrc = Workbooks.Open(Filename:=MyPath & "\" & strFilename)
' op welk blad in het bestand staat de data?
Set wsSrc = wbSrc.Worksheets("Blad3")
' toevoegen
wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count)
' naam van worksheet wijzigen in bestandsnaam van orgineel bestand
wbDst.Worksheets(wbDst.Worksheets.Count).Name = strFilename
'selecteer eerste cel in laatste worksheet
Set wbSht = wbDst.Worksheets(wbDst.Worksheets.Count).Select
wbSht.Range("A1").Select
' voeg lege rij in
ActiveCell.EntireRow.Insert
' bestandsnaam in cel A1
wbSht.Range("A1").Value = strFilename
wbSrc.Close False
strFilename = Dir()
Loop
wbDst.Worksheets(1).Delete
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Aantal posts: 17
Aantal reacties: 1063
Aantal posts: 31
Aantal reacties: 946
Aantal posts: 17
Aantal reacties: 1063
Aantal posts: 103
Aantal reacties: 4639
Kan me in het verleden nog zoiets herinneren dat dat niet werkte.
Aantal posts: 17
Aantal reacties: 1063
Ik vermoed dat het zo'n 140000 regels zijn, dus dat komt goed. Als het niet werkt om die reden kan ik het in 4 stukken samenvoegen en dan die 4 files importeren in Stata.
Aantal posts: 7
Aantal reacties: 1359
easy peasy, lemon squeezy
Aantal posts: 17
Aantal reacties: 1063
Aantal posts: 31
Aantal reacties: 946
Sub samen3()
Dim wbDst As Workbook
Dim wbSrc As Workbook
Dim wsSrc As Worksheet
Dim MyPath As String
Dim strFilename As String
Dim wbStart As Integer
Dim wbEind As Integer
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
MyPath = "C:\test" ' change to suit
Set wbDst = Workbooks.Add(xlWBATWorksheet)
Set wsDst = wbDst.Worksheets.Add
wsDst.Activate
strFilename = Dir(MyPath & "\*.xls", vbNormal)
If Len(strFilename) = 0 Then Exit Sub
Do Until strFilename = ""
Set wbSrc = Workbooks.Open(Filename:=MyPath & "\" & strFilename)
Set wsSrc = wbSrc.Worksheets("Blad3")
Set rngMaster = wsDst.Range("A65536").End(xlUp)
Aa = wsDst.UsedRange.Rows.Count
Bb = wsSrc.UsedRange.Rows.Count
' get all data cells
Set rngData = wsSrc.UsedRange
' copy data across
rngData.Copy rngMaster
wsDst.Activate
Range(Cells(Aa, 1), Cells(Bb + Aa, 1)).Select
Range(Cells(Aa, 1), Cells(Bb + Aa, 1)).Insert
Range(Cells(Aa, 1), Cells(Bb + Aa, 1)).Value = strFilename
wbSrc.Close False
strFilename = Dir()
Loop
wbDst.Worksheets(1).Delete
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Aantal posts: 103
Aantal reacties: 4639
Aantal posts: 17
Aantal reacties: 1063
het gaat over Set wsSrc = wbSrc.Worksheets("Blad3")
Aantal posts: 31
Aantal reacties: 946
wbSrc.Worksheets(1)
Aantal posts: 17
Aantal reacties: 1063
Ah, ik denk dat ik het snap, het btreffende werkblad is automatisch al hetzelfde als de filenaam maar dan zonder .xls, dus elke keer anders per file...
Aantal posts: 31
Aantal reacties: 946
Set wsSrc=wbSrc.Worksheets(Left(strFilename,Len(strFilename)-4))
moeten gebruiken...
(dus het linkergedeelte van de naam, met het aantal tekens van de bestandsnaam minus 4).
Aantal posts: 17
Aantal reacties: 1063
Ik open een nieuwe excelmap, ga naar visual basic, voeg een module in, plak de code en pas het pad aan en klik op uitvoeren.
Aantal posts: 31
Aantal reacties: 946
Aantal posts: 86
Aantal reacties: 6850
Haha, jullie Mickeysoft praat Nederlands.
Computers praten Engels. Onthou dat nou.
Aantal posts: 17
Aantal reacties: 1063
Aantal posts: 31
Aantal reacties: 946
Aantal posts: 17
Aantal reacties: 1063
Aantal posts: 1
Aantal reacties: 1351
Succes allebei.
Aantal posts: 31
Aantal reacties: 946
Sub samen()
Dim wbDst As Workbook
Dim wbSrc As Workbook
Dim wsSrc As Worksheet
Dim MyPath As String
Dim strFilename As String
Dim wbStart As Integer
Dim wbEind As Integer
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
MyPath = "C:\test" ' change to suit
Set wbDst = Workbooks.Add(xlWBATWorksheet)
Set wsDst = wbDst.Worksheets.Add
wsDst.Activate
strFilename = Dir(MyPath & "\*.xls", vbNormal)
If Len(strFilename) = 0 Then Exit Sub
Do Until strFilename = ""
Set wbSrc = Workbooks.Open(Filename:=MyPath & "\" & strFilename)
Set wsSrc = wbSrc.Worksheets(1)
Set rngMaster = wsDst.Range("A65536").End(xlUp)
Aa = wsDst.UsedRange.Rows.Count
Bb = wsSrc.UsedRange.Rows.Count
' get all data cells
Set rngData = wsSrc.UsedRange
' copy data across
rngData.Copy rngMaster
wsDst.Activate
Range(Cells(Aa, 1), Cells(Bb + Aa, 1)).Select
Range(Cells(Aa, 1), Cells(Bb + Aa, 1)).Insert
Range(Cells(Aa, 1), Cells(Bb + Aa, 1)).Value = strFilename
wbSrc.Close False
strFilename = Dir()
Loop
wbDst.Worksheets(1).Delete
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Aantal posts: 17
Aantal reacties: 1063
Aantal posts: 17
Aantal reacties: 1063
Aantal posts: 31
Aantal reacties: 946
Daar zal dit wel vanaf komen, is de maximale grootte die ik hier aankan. Ikzelf werkt met gigantisch oude software, office 2000. Don't fix what ain't broken (behalve door over te stappen naar openoffice).
Graag gedaan, leuke puzzel. En Tralala: was voor mij ook de tweede keer dat ik iets in vba knutselde. Maar op een gegeven moment lijken alle script-talen op elkaar dus kom je met goed googelen een heel eind...
Aantal posts: 40
Aantal reacties: 11546
Een andere instinker is trouwens de locale-settings. Die worden op misterieuze wijze ingezet bij zowel input als output, waardoor je decimale kommaas, dmy-datums met dashes en meer van dat soort rariteiten krijgt.
Maar toch knap dat jullie er uit zijn gekomen. (ik had gedacht: 200 files: 4 uur werk; even doorbijten)
Aantal posts: 1
Aantal reacties: 1351
Aantal posts: 17
Aantal reacties: 1063
Aantal posts: 17
Aantal reacties: 1063