VBA Excel - Data uit meerdere bestanden samenvoegen - Excel Nieuws - ExcelStudie

Zoeken
Ga naar de inhoud

Hoofdmenu:

VBA Excel - Data uit meerdere bestanden samenvoegen

Gepubliceerd door in VBA ·
Tags: VBAbestandensamenvoegendata

Excel data samenvoegen


Soms heb je wel eens de uitdaging dat je data uit meerdere excelbestanden moet ophalen en in één nieuw leeg bestand wilt plaatsen. Dan kan met ingebouwde excelfunctionaliteit zoals Vlookup en Indirect, maar dat is tijdrovend, en bovendien moet je altijd alle bestanden open hebben staan. Iets wat niet  handig is, voorals als je in een omgeving met meerdere gebruikers werkt.

VBA Oplossing


VBA biedt een oplossing! Met de volgende VBA-code haal je data (in ons voorbeeld personeelsdata) op uit twee bestanden (Dames PersoneelB en Heren PersoneelB) en voeg je de data samen in één bestand: "Dames en Heren PersoneelB". De excelbestanden zijn toegevoegd en kun je downloaden om mee te oefenen. De code staat in een module in het spreadsheet "Dames en Heren PersoneelB".

Als je de code uitvoert en probeert te begrijpen kun je de code ook aanpassen om ook de data uit de andere velden te verzamelen, zoals salaris, geboortedatum etc. De variabelen daarvoor zijn al gedeclareerd. Aldoende leert men, maar met deze oplossing heb je al een goed begin. En je kunt het zelf aanpassen afhankelijk van de doelstelling. Vergeet niet het bestand waar de macro zich in bevindt (Dames en Heren PersoneelB) op te slaan als .xlsm, anders werkt de VBA niet.


VBA Code


Sub HuiswerkDamesEnHerenSamenvoegenFINAL()

Application.ScreenUpdating = False

Dim a As Integer
Dim n As String
Dim o As String
Dim p As String
Dim Q As Integer
Dim R As Integer
Dim S As Integer
Dim T As Integer
Dim U As Integer
Dim V As Integer

'Haal data op uit Dames personeelB'

'Open Workbook'
Workbooks("Dames en Heren PersoneelB.xlsm").Activate
       n = Range("A2").Value
       o = Range("B2").Value
       p = Range("C2").Value
       Cells.Find(n).Select
       Q = ActiveCell.Column
       Cells.Find(o).Select
       R = ActiveCell.Column
       Cells.Find(p).Select
       S = ActiveCell.Column

       yyy = Rows.Count
       xxx = Cells(yyy, 2).End(xlUp).Row
       ActiveSheet.Cells(xxx + 1, 1).Select
               Workbooks("Dames PersoneelB.xlsx").Activate
               y = Rows.Count
               x = Cells(y, 2).End(xlUp).Row
                 For i = 1 To x - 2 Step 1
                   Workbooks("Dames PersoneelB.xlsx").Activate
                   Range("A3").Select
                   n = ActiveCell(i, Q).Value
                   o = ActiveCell(i, R).Value
                   p = ActiveCell(i, S).Value
                       Workbooks("Dames en Heren PersoneelB.xlsm").Activate
                               'ActiveCell.Offset(j, 0).Select'
                               ActiveCell(1, 1) = n
                               ActiveCell(1, 2) = o
                               ActiveCell(1, 3) = p
                               ActiveCell.Offset(1, 0).Select
                   Next
               Workbooks("Heren PersoneelB.xlsx").Activate
               y = Rows.Count
               x = Cells(y, 2).End(xlUp).Row
                 For i = 1 To x - 2 Step 1
                   Workbooks("Heren PersoneelB.xlsx").Activate
                   Range("A3").Select
                   n = ActiveCell(i, Q).Value
                   o = ActiveCell(i, R).Value
                   p = ActiveCell(i, S).Value
                       Workbooks("Dames en Heren PersoneelB.xlsm").Activate
                               'ActiveCell.Offset(j, 0).Select'
                               ActiveCell(1, 1) = n
                               ActiveCell(1, 2) = o
                               ActiveCell(1, 3) = p
                               ActiveCell.Offset(1, 0).Select
                   Next
Application.ScreenUpdating = True

End Sub

Meer weten over VBA?



Hopelijk vond je dit een nuttig artikel. Als je vragen of opmerkingen hebt mail ons dan: info@excelstudie.nl. Of plaats een berichtje op onze facebookpagina.

Veel succes!

(c) 2017 eXcelstudie




Studiemateriaal
Korting op studieboeken bij bol.com
Korting op je studieboeken
TH83 Copyright 2016 (c)
Terug naar de inhoud | Terug naar het hoofdmenu