• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Macro gezocht: gegevens uit >100 files samenvoegen

Status
Niet open voor verdere reacties.

surf001

Nieuwe gebruiker
Lid geworden
18 apr 2008
Berichten
2
Ik wil de gegevens uit worksheet 1 van meer dan 100 files samenvoegen in 1 nieuwe file.
De files hebben oplopende filenamen: meet001.xls, meet002,xls, meet003.xls etc.
De gegevens staan in B10..B250

Lijkt me een typische macroklus, ik krijg het alleen niet voorelkaar. Wie heeft er een suggestie?
 
Probeer deze 'ns.
Code:
Sub open_workbooks_same_folder()
Dim folder As String
Dim Wb As Workbook, sFile As String
Dim Cwb As Workbook
Dim lrow As Long
'Al je werkboeken staan in dezelfde map
'als het werkboek waar de gegevens naartoe moeten
folder = ActiveWorkbook.Path
'Het werkboek dat open is, is deze waar
'de gegevens naartoe moeten
Set Cwb = ThisWorkbook
sFile = Dir(folder & Application.PathSeparator & "meet*.xls")
Application.DisplayAlerts = False
Do While sFile <> ""
    Application.ScreenUpdating = False
    If sFile <> Cwb.Name Then
        'als er geen werkblad 1 bestaat, ga door
        'met het volgende werkboek
        On Error Resume Next
        Set Wb = Workbooks.Open(folder & Application.PathSeparator & sFile)
        lrow = Cwb.Worksheets(1).Range("B" & Rows.Count).End(xlUp).Row
        lrow = lrow + 1
        Wb.Worksheets(1).Range("B10:B250").Copy
        Cwb.Worksheets(1).Range("B" & lrow).PasteSpecial xlPasteValues
        Wb.Close True
    End If
    Cwb.Worksheets(1).Range("B1").Select
    Application.ScreenUpdating = True
    sFile = Dir
Loop
Application.DisplayAlerts = True
'reset de error trapping naar normaal
On Error GoTo 0
End Sub
Charlize
 
Eerste stap is er!

Bedankt voor de snelle reaktie. Je helpt me een aardig eind op weg, dat scheelt een hoop tijd! Op dit moment zet de macro de gegevens uit de verschillende worksheets nog onderelkaar in 1 kolom. Ik wil ze uiteindelijk graag naast elkaar (in kolommen) zetten.
 
Begrijp jij wat de macro doet? Zelfs enkel de paar regels code voor het wegzetten van de gegevens is al genoeg. Dat moet je m.i. toch kunnen aanpassen, mits wat opzoeken.
 
Gebruik de .Cells(rij,kolom) property en een ophogend tellertje om de doelkolom te bepalen of gebruik .Range("B1").Offset(,kolom) property en een ophogend tellertje (deze teller begint op 0 en ophogen met 1. M.a.w de eerste gegevens worden in de offset(,0) kolom gezet -> in B dus en nadien in C, D

Charlize
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan