Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: excel bestanden samensmelten  (gelezen 15570 keer)

0 leden en 1 gast bekijken dit topic.

Offline aljechin

  • Lid
  • *
  • Berichten: 94
excel bestanden samensmelten
« Gepost op: 11 maart 2009, 21:07:39 »
Hallo iedereen,
ik heb 33 excelbestanden die allemaal dezelfde structuur hebben. Ik moet van al deze excelbestanden één excelbestand maken. Bestaat er een elegante methode om dit vlug te realiseren? Dank bij voorbaat.
Standaard emailprogramma: Via Browser -  Gmai
Standaard Operating System: Windows 10
Standaard Browser: google chrome
Excel 2016

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.236
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: excel bestanden samensmelten
« Reactie #1 Gepost op: 11 maart 2009, 21:41:57 »
Hallo aljechin,

ik denk dat ik spreek uit naam van alle Excel-helpers, als ik zeg dat de uitleg over je probleem te minimaal is uitgelegd... :-[ Sorry  :P

Je wilt één Excel-bestand maken van/met 33 Excel-bestanden?

Wat is het doel van één bestand, en wat zal het doel zijn van de samengevoegde bestanden?

Wat is de gemeenschappelijke factor bij al die bestanden?

Kan je voorbeeldbestanden aanhangen?

:) SoftAid :)             


 
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline aljechin

  • Lid
  • *
  • Berichten: 94
Re: excel bestanden samensmelten
« Reactie #2 Gepost op: 12 maart 2009, 07:58:05 »
Hallo SoftAid,
het gaat om excelbestanden voor verschillende klasgroepen. In elk bestand komen de naam, adres en andere gegevens van studenten voor.
Nu zou ik dus één excelbestand moeten maken van alle studenten van al die klasgroepen, dus van de volledige populatie.
Ik zou natuurlijk elk bestand kunnen openen, alle rijen selecteren en dan plakken in een nieuw bestand maar dan moet ik dit wel 33 keer doen. Kan dit korter?
Deze bestanden worden gebruikt om een facturatie uit te voeren en het uiteindelijke excel bestand komt dan terecht in een database om deze facturen te maken.
Dank bij voorbaat.

Standaard emailprogramma: Via Browser -  Gmai
Standaard Operating System: Windows 10
Standaard Browser: google chrome
Excel 2016

Offline firmin

  • Ervaren lid
  • ***
  • Berichten: 442
  • Geslacht: Man
  • Excel Specialist
Re: excel bestanden samensmelten
« Reactie #3 Gepost op: 12 maart 2009, 11:15:36 »
Aljechin,
Deze code vond ik op internet.
Heb ze niet geprobeerd.

Sub VoegExcelBestandenSamenIn1NieuwBlad()
' [TOPIC=848630///][NOHTML][rml][ Excel] Meerdere bestanden samenvoegen[/rml][/NOHTML][/TOPIC]
' deel 2

Dim wbSingleWorkbook As Excel.Workbook, wbFinalWorkbook As Excel.Workbook
Dim wsSingleSheet As Excel.Worksheet, wsFinalSheet As Excel.Worksheet
Dim strPath As String, strWorkbook(500) As String ' max 500 bestanden
Dim intCounter As Integer, n As Integer
Dim Answer As VbMsgBoxResult

    strPath = "c:\test\"         ' Map met .xls-bestanden
    intCounter = 1              ' teller
    strWorkbook(intCounter) = Dir(strPath & "*.xls")
     
    Do While strWorkbook(intCounter) <> ""
     
        intCounter = intCounter + 1
        strWorkbook(intCounter) = Dir
         
    Loop
     
    intCounter = intCounter - 1 ' want de laatste is leeg
    Set wbFinalWorkbook = Workbooks.Add
    Application.DisplayAlerts = False
     
    Do While wbFinalWorkbook.Sheets.Count > 1
     
        wbFinalWorkbook.Sheets(1).Delete
     
    Loop                        ' We hebben maar 1 blad nodig
     
    Application.DisplayAlerts = True
    Set wsFinalSheet = wbFinalWorkbook.Sheets(1)
         
    On Error GoTo Einde         ' Error trapping AAN
     
    For n = 1 To intCounter
     
        Set wbSingleWorkbook = Workbooks.Open(Filename:=strPath _
            & strWorkbook(n), ReadOnly:=True)
             
        For Each wsSingleSheet In wbSingleWorkbook.Sheets
             
            wsSingleSheet.UsedRange.Copy _
                Destination:=wsFinalSheet.Cells _
                (wsFinalSheet.Cells.SpecialCells _
                (xlCellTypeLastCell).Row + 1, 1)
             
        Next wsSingleSheet

        wbSingleWorkbook.Close
     
    Next n
     
    On Error GoTo 0             ' Error trapping UIT
     
Einde:

    Select Case Err.Number      ' Foutmelding 1004 is
                                ' hoogstwaarschijnlijk veroorzaakt
        Case 1004               ' door iets te plakken dat boven
                                ' de 65536 rijen uit zou komen
            Answer = MsgBox(Err.Description & Chr(13) & Chr(13) & _
                "Waarschijnlijk wordt dit bestand te groot..." & _
                Chr(13) & "Verder gaan op nieuw blad?", _
                vbCritical Or vbYesNo, "Error " & Err.Number & _
                ": " & Err.Description)
             
            If Answer = vbYes Then
             
                Set wsFinalSheet = wbFinalWorkbook.Sheets.Add
                Resume
                 
            End If
             
        Case 0                  ' Niks aan 't handje :-)
             
        Case Else               ' Overige foutmeldingen
         
            MsgBox Err.Description, _
                vbCritical Or vbOKOnly, "Error " & Err.Number & _
                " in bestand " & n
     
    End Select
     
    Set wbSingleWorkbook = Nothing
    Set wbFinalWorkbook = Nothing
    Set wsSingleSheet = Nothing
    Set wsFinalSheet = Nothing

End Sub

De rode tekst c:/test/  zal moeten aangepast worden aan het path waar uw bestanden staan.

Firmin


PB easynote LE69KB,AMD quad-core,1000GB HDD,AMD Radeon HD8330,8GB DDR3
Windows 10,office 2007
MSE, Internet Explorer 11

Offline firmin

  • Ervaren lid
  • ***
  • Berichten: 442
  • Geslacht: Man
  • Excel Specialist
Re: excel bestanden samensmelten
« Reactie #4 Gepost op: 12 maart 2009, 17:53:42 »
Aljechin,
Heb de code eens geprobeerd en dat werkt uitstekend.
Zet alle bestanden op een andere partitie (bv D)
Maak een nieuwe map aan en geef deze een naam, sleep alle bestanden hierin.
Open een nieuw excel bestand.
Ga naar de VBA editor,invoegen MODULE en plak hierin de code uit mijn vorig bericht.
Wijzig in de code het pad (rode tekst ) bijvoorbeeld
D:\naam van de map\
verander eventueel in de code *.xls naar de extensie van uw bestanden.
Dit naargelang je werkt met office 2003 of 2007 en naargelang je de bestanden hebt bewaard.
Je hebt nu een blanco excel blad.
Ga naar Macro RUN en alle bestanden komen op dat blad te staan.
Er komen blanco rijen tussen maar die kan je achteraf verwijderen en eventueel laten sorteren.
Firmin
PB easynote LE69KB,AMD quad-core,1000GB HDD,AMD Radeon HD8330,8GB DDR3
Windows 10,office 2007
MSE, Internet Explorer 11

Offline aljechin

  • Lid
  • *
  • Berichten: 94
Re: excel bestanden samensmelten
« Reactie #5 Gepost op: 13 maart 2009, 09:46:27 »
Bedankt Firmin,

gelukt én nogmaals bedankt voor de prima instructies.
Standaard emailprogramma: Via Browser -  Gmai
Standaard Operating System: Windows 10
Standaard Browser: google chrome
Excel 2016

Offline firmin

  • Ervaren lid
  • ***
  • Berichten: 442
  • Geslacht: Man
  • Excel Specialist
Re: excel bestanden samensmelten
« Reactie #6 Gepost op: 13 maart 2009, 09:59:30 »
graag gedaan hoor
Firmin
 :) :) :)
PB easynote LE69KB,AMD quad-core,1000GB HDD,AMD Radeon HD8330,8GB DDR3
Windows 10,office 2007
MSE, Internet Explorer 11

 


www.combell.com