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




Slicers - Supersnelle en handige filters

Gepubliceerd door in Excel Training ·
Tags: slicerexcel

A Random Walk down Wallstreet

Gepubliceerd door in Beurs ·
Tags: randomwalkbeursaandeel

Excelclinic Statistiek: z-score

Gepubliceerd door in Statistiek ·
Tags: zscore.excelstatistiek

Excelminiclinic - Datavalidatie

Gepubliceerd door in Excel Training ·
Tags: datavalidatieexcel

Excel miniclinic - Maak een Gegevenstabel

Gepubliceerd door in Excel Training ·
Tags: datatabelformule

Optiepricing - Black & Scholes

Gepubliceerd door in Beurs ·
Tags: blackandscholesoptiepricing

Excel wiskunde clinic - Vermenigvuldigen van matrices

Gepubliceerd door in Wiskunde ·
Tags: matrixmatricesexcelwiskunde

Excel Clinic: Hoe bereken je de Beta van je portfolio?

Gepubliceerd door in Beurs ·
Tags: betaCAPMportfolio

Wat levert een obligatie mij op?

Gepubliceerd door in Financieel ·
Tags: obligatierenteexcel

Excel Clinic - Trendlijn toevoegen

Gepubliceerd door in Wetenschap ·
Tags: trendlijn

Excel Clinic - De Oplosser invoegtoepassing

Gepubliceerd door in Excel Training ·
Tags: oplosserannuïteitinvoegtoepassing

Statistische methode - Bootstrap

Gepubliceerd door in Statistiek ·
Tags: bootstrap

Excel Cursus & Training

Gepubliceerd door in Excel Training ·
Tags: exceltrainingcursus

Optiestrategie - Straddle

Gepubliceerd door in Beurs ·
Tags: optiestrategiestraddle

Is het een priemgetal of niet?

Gepubliceerd door in Wiskunde ·
Tags: priemgetal

Optiestrategie - Covered Call

Gepubliceerd door in Beurs ·
Tags: optiestrategiecoveredcall

Optiestrategie - Butterfly

Gepubliceerd door in Beurs ·
Tags: optiestrategiebutterfly

Optiestrategie - Condor

Gepubliceerd door in Beurs ·
Tags: optiestrategiecondor
Studiemateriaal
Korting op studieboeken bij bol.com
Korting op je studieboeken
TH83 Copyright 2016 (c)
Terug naar de inhoud | Terug naar het hoofdmenu