• 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.

Excel werkboeken samenvoegen

Status
Niet open voor verdere reacties.

huygen

Gebruiker
Lid geworden
28 jul 2015
Berichten
16
Beste Forumleden!

Ik heb al een dag zitten zoeken, maar ik kan telkens net niet de goede code vinden. Vandaar dat ik mijn vraag hier stel.

Ik heb in SQL een database gemaakt. Deze is nog niet volledig gevuld, maar om de functionaliteit binnen het bedrijf te kunnen aantonen is het belangrijk dat we straks makkelijk grafieken kunnen genereren.
Er is in eerste instantie gekozen om dit in Excel te doen. Stap één is het inladen van de data in één werkboek.

Ik ben hiermee aan de slag gegaan, vanuit de database worden verschillende .csv werkboeken gegenereerd met ieder (op dit moment nog) één tabblad. Ik zou deze gegevens graag samenvoegen in één werkboek. Elke keer als er nieuwe data toegevoegd wordt aan de database, worden de .csv files ge-update, deze hebben altijd dezelfde naam.

Ik heb wel ervaring in het programmeren in andere programma's, maar macro's in excel heb ik me, tot een week terug, nooit in verdiept.
Ik heb wat codes kunnen vinden waarmee ik een start heb kunnen maken;

Code:
Private Sub CommandButton1_Click()

Dim OpenFileName1 As String
Dim wb1 As Workbook

'Select and Open workbook
OpenFileName1 = Application.GetOpenFilename("clients saved spreadsheet,*.csv")
If OpenFileName1 = "False" Then Exit Sub
Set wb1 = Workbooks.Open(OpenFileName1)

'Get data EXAMPLE
ThisWorkbook.Sheets(2).Range("A1:Z100").Value = wb1.Sheets(1).Range("A1:Z100").Value

wb1.Close

'Select and Open workbook
OpenFileName2 = Application.GetOpenFilename("clients saved spreadsheet,*.csv")
If OpenFileName2 = "False" Then Exit Sub
Set wb2 = Workbooks.Open(OpenFileName2)

'Get data EXAMPLE
ThisWorkbook.Sheets(3).Range("A1:Z100").Value = wb2.Sheets(1).Range("A1:Z100").Value

wb2.Close


MsgBox ("Done")

End Sub

Hierbij moet elke file elke keer afzonderlijk opgezocht worden in de directory. Ik zou graag elke keer dezelfde files op dezelfde werkbladen inladen. Dus werkboek1 op blad 1, werkboek2 op blad 2 enz. Dit lijkt me een simpele aanpassing, maar ik krijg het niet voor elkaar.
Zou iemand mij kunnen helpen? Mogelijk ook met de werkboeknamen als naam van het bijbehorende tabblad.

Heel erg bedankt alvast!

Groetjes
 
Hier kan je al eens mee starten.
Zet alle benodigde csv-files apart in 1 directory en pas in de code het pad aan.
Code:
Sub tst()
Application.ScreenUpdating = False
directory = "G:\Mijn documenten\Test2\"
sfile = Dir(directory & "*.csv")
x = 1
While sfile <> ""
    Set nieuw = Application.Workbooks.Open(directory & sfile)
    ThisWorkbook.Sheets(x).Range("A1:Z100").Value = nieuw.Sheets(1).Range("A1:Z100").Value
    nieuw.Close
    sfile = Dir
    x = x + 1
Wend
Application.ScreenUpdating = True
End Sub
 
Bedankt voor je snelle reactie!
Het werkt alleen niet, hij doet gewoon niets.
Ik heb Excel2010, kan dit het probleem zijn?
 
Heb je gedaan wat ik gezegd heb ?
Zet alle benodigde csv-files apart in 1 directory en pas in de code het pad aan.
Werkt perfect hier.
 
Late reactie..
Het lag gewoon aan mij. na nog wat tutorials gekeken te hebben, snap ik het nu en werkt het.
Dus heel erg bedankt :D
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan