excel bestanden samenvoegen

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • hypermaxx
  • Registratie: April 2008
  • Laatst online: 11-06 06:56
Beste,

ik heb al verschillende oplossingen geprobeerd uit dit forum, maar geen enkel dat werkt zoals ik wil.
Situatie : ik heb een 550 tal excel files staan met min of meer dezelfde layout.
Ik zou de inhoud van deze files (een vast bereik, bv A14:G50) in 1 file willen, alles in 1 tabblad, onder elkaar.


Ik heb vooral met de oplossing van king richard aan de slag gegaan, maar het lukte mij niet.

Kan iemand mij helpen?

bedankt alvast voor jullie hulp

Alle reacties


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

@Anoniem: 66161 heeft een boel posts, welke bedoel je precies? :)

Makkelijkste: sla op als csv, voeg samen met copy /B a.csv + b.csv c.csv

Edit: oh wacht, alleen dat bereik. Dan eerst de rest verwijderen en opslaan en dan bovenstaande. Al is een VBA script maken een stuk sneller - als je basiskennis hebt van VBA.

[ Voor 38% gewijzigd door F_J_K op 19-05-2020 10:41 ]

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


Acties:
  • 0 Henk 'm!

  • hypermaxx
  • Registratie: April 2008
  • Laatst online: 11-06 06:56
Beste,

ik heb een basiskennis VBA, maar om dit voor elkaar te krijgen lukt niet.

Ik heb geprobeerd deze van king richard te begrijpen, maar dit lukt me ook niet helemaal. Zoals ik zeg heb ik maar een basiskennis VBA.

KingRichard in "[Excel] Meerdere bestanden samenvoegen"

Acties:
  • 0 Henk 'm!

  • Patrick_6369
  • Registratie: April 2010
  • Laatst online: 04-07 14:18
Ik zou investeren in kennis van PowerQuery. Daarmee zou je moeten kunnen doen wat je wilt zonder kennis van VBA, maar wel geautomatiseerd. Ik vind het zelf vrij logisch werken, maar heb voordat ik aan de slag ging wel wat filmpjes bekeken op Youtube.

Check eerst de basis. Vervolgens specifiek opzoek gaan naar de mogelijkheid om alle bestanden uit één map mee te nemen en tot moet je dan gaan Appenden in PowerQuery.

Hier zou een handtekening kunnen staan.


Acties:
  • 0 Henk 'm!

  • hypermaxx
  • Registratie: April 2008
  • Laatst online: 11-06 06:56
Patrick_6369 schreef op dinsdag 19 mei 2020 @ 11:08:
Ik zou investeren in kennis van PowerQuery. Daarmee zou je moeten kunnen doen wat je wilt zonder kennis van VBA, maar wel geautomatiseerd. Ik vind het zelf vrij logisch werken, maar heb voordat ik aan de slag ging wel wat filmpjes bekeken op Youtube.

Check eerst de basis. Vervolgens specifiek opzoek gaan naar de mogelijkheid om alle bestanden uit één map mee te nemen en tot moet je dan gaan Appenden in PowerQuery.
Ik begrijp dat jullie geen problemen hebben met dergelijke zaken. Zoals ik reeds eerder zei, heb ik een redelijke kennis van excel, en een basiskennis van VBA. Ik heb ook echt niet veel meer nodig.
Nu zou ik eenmalig deze pak excel files willen omzetten naar 1 bestand, om deze dan netjes te verwerken. Dit is niet iets wat ik dagelijks zou gebruiken, maar het zou toch een interessante macro zijn.
Toch bedankt voor uw input.

Acties:
  • 0 Henk 'm!

  • Patrick_6369
  • Registratie: April 2010
  • Laatst online: 04-07 14:18
Eenmalig, dat verandert de zaak wel.
Helaas heb ik geen (of iig heel weinig) kennis van VBA terwijl ik denk dat daar wel de oplossing gezocht moet worden.
Of je moet het handmatig werk aan een goedkope kracht kunnen uitbesteden. #outofthebox

Hier zou een handtekening kunnen staan.


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Ah KingRichard in "[Excel] Meerdere bestanden samenvoegen" etc. Die is denk ik prima als basis te gebruiken (als je het max verhoogt van 500 naar 600 ;) ). Je wilt dan alleen in plaats van de hele sheet kopieren, een nieuwe sheet aanmaken in het doelbestand en dan alleen A14:G50 kopieren naar dat nieuwe sheet (en misschien ook die sheet een nette naam geven).
hypermaxx schreef op dinsdag 19 mei 2020 @ 10:28:
Situatie : ik heb een 550 tal excel files staan met min of meer dezelfde layout.
Aandachtspunt is wel dat VBA slecht omgaat met min of meer dezelfde layout. Als die niet altijd A14:G50 is dan moet je mogelijk een complexe check inbouwen. Hangt er af van de soorten afwijkingen en hoeveel het er zijn.

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


Acties:
  • 0 Henk 'm!

  • Ultraman
  • Registratie: Februari 2002
  • Laatst online: 03-07 11:49

Ultraman

Moderator Harde Waren

Boefje

Twee files achter elkaar plakken is een peuleschil. Simpelweg een concatenatie doen zoals F_J_K reeds voorstelt in zijn eerste reply. Dat is simpel gezegd puur de inhoud van twee files aan elkaar plakken in één file.
Exporteren naar .csv geeft je legio mogelijkheden want dan heb je enkel nog te maken met platte tekst.
En je kunt gebruik maken van CSV geschikte tooling.

Min of meer dezelfde layout is wel een klein probleem, want je wilt exact dezelfde layout hebben om ze aan elkaar te plakken. Maar als je files wel een keurige header hebben dan zou je die kunnen gebruiken om de kolommen die ze met elkaar gemeen hebben aan elkaar te plakken.

Dit is een probleem wat je met een klein script kunt oplossen. We kunnen er niet een voor je schrijven want we hebben je files niet. Daarom hinten/sturen we je hier richting een oplossing.
En zelf oplossen is natuurlijk veel leuker. ;)

[ Voor 3% gewijzigd door Ultraman op 19-05-2020 14:08 ]

Als je stil blijft staan, komt de hoek wel naar jou toe.


Acties:
  • 0 Henk 'm!

  • atsan
  • Registratie: Januari 2018
  • Laatst online: 04-07 09:36
Je hebt al basiskennis van vba?

dan is dit een goed startpunt: https://stackoverflow.com...sheet-in-current-workbook

Acties:
  • +1 Henk 'm!

  • Paul1987
  • Registratie: Oktober 2004
  • Laatst online: 03-07 10:55
Even heel snel iets in elkaar getikt voor je. Niet heel netjes maar het werkt (bij mij dan). Wel even de variabelen aanpassen naar wat jij nodig hebt.

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
37
38
39
40
41
42
43
44
Sub import_collector()

Dim pad, ext, StrFile As String
Dim TargetWB, SourceWB As Workbook
Dim TargetSh, SourceSH As Worksheet

Dim SourceRng As Range
Dim r, last_r, Start_r As Long

Application.ScreenUpdating = False 'scherm verversen uitzetten

pad = "c:\test\"    'pad waar de bestanden staan
ext = "xlsx"        'extentie van de excel bestanden

Set TargetWB = ActiveWorkbook 'collector werkboek waar je de data naartoe haalt, ik ga er vanuit dat je het dus uitvoert vanuit het ontvangende bestand
Set TargetSh = TargetWB.Sheets("Blad1") 'doel blad


'alle bestanden die aan de criteria voldoen oplijsten en doorlopen
StrFile = Dir(pad & "\*" & ext)
Do While Len(StrFile) > 0 'doorgaan zolang er iets te halen valt
With TargetSh
last_r = .Cells(Rows.Count, 1).End(xlUp).Row
End With

Set SourceWB = Workbooks.Open(pad & StrFile)
Set SourceWS = SourceWB.Sheets(1) 'eerste sheet, kun je door ieder index nummer (of naam) vervangen
Set SourceRng = SourceWS.Range("a1:e27") 'test bereik. vervangen door wat jouw bereik is, niet zo mooi dat het een handmatige selectie is. Je zou dit dynamisch kunnen maken door automatisch de eerste en laatste rij/kolom op te zoeken
If last_r = 1 Then
Start_r = 1
Else
Start_r = last_r + 1
End If

SourceRng.Copy Destination:=TargetSh.Range("A" & Start_r) 'copy paste

SourceWB.Close savechanges:=False 'sluiten zonder opslaan
StrFile = Dir 'volgende bestand
Loop

Application.ScreenUpdating = True 'scherm verversen aanzetten


End Sub

Is dit het beste antwoord? Dan hoor ik dat graag!

Pagina: 1