• 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 bestand splitsen in meerdere documenten

Status
Niet open voor verdere reacties.

IlonadeGroot

Gebruiker
Lid geworden
1 apr 2011
Berichten
167
Goedemorgen,

Het is misschien wel heel veel gevraagd, maar ik ben benieuwd of het volgende mogelijk is:

Ik heb een Excel bestand met meerdere kolommen en rijen op 1 sheet (gegevens staan altijd in dezelfde kolom).
Ik heb 1 kolom met leveranciernummer. Een leveranciernummer kan meerdere keren voorkomen in de kolom.
Is het mogelijk om in 1x per leveranciernummer dan alle gegevens uit het document op die rijen waar datzelfde leveranciernummer staat, automatisch (via VBA o.i.d) naar een nieuw Excel document te zetten met b.v. in de bestandsnaam het leveranciernummer en mogelijk in een bepaalde map opslaan?
Dus als er 10 leveranciers voorkomen dan naar 10 aparte documenten?
Als het met powerquery kan is ook goed, maar ik kan het niet vinden op Google.

Ik heb Excel 2013 ENG

Alvast bedankt
 

Bijlagen

Op zich is dat via VBA simpel te doen.
Maar heb je er een speciale reden voor om dat naar verschillende documenten te willen hebben?
Waarom bijvoorbeeld niet naar verschillende tabs in hetzelfde document?
Of naar een draaitabel?
 
Die aparte bestanden moeten dan naar de betreffende leverancier gemaild worden. Daarom kan het niet in 1 bestand.
 
Als je daarvoor Outlook gebruikt kan dat ook met VBA vanuit datzelfde bestand worden gedaan, zonder dat je ze eerst als apart document moet opslaan.
Mocht je dat voor archivering willen gebruiken dan kan het verzonden document apart worden opgeslagen.
Dan sla je meerdere vliegen in 1 klap.
 
Ok, geen probleem.
Ik wil vanavond wel een voorbeeldje maken voor het opslaan per leverancier.
 
Een optie

Code:
Sub VenA()
  c00 = "C:\Temp\"
  Set d = CreateObject("Scripting.Dictionary")
  Application.ScreenUpdating = False
  With Sheets("Sheet1").Cells(1).CurrentRegion
    ar = .Value
    For j = 2 To UBound(ar)
      d(ar(j, 3)) = ""
    Next j
    For Each it In d
      .AutoFilter 3, it
      .Copy
      With Workbooks.Add
        Sheets(1).Paste
        Sheets(1).Columns.AutoFit
        .SaveAs c00 & it & ".xlsx", 51
        .Close 0
      End With
    Next it
    .AutoFilter
  End With
End Sub
 
Zie #7.
Dat scheelt mij weer ;)
 
VenA, ik probeer eruit te komen met mijn (nog zeer) beperkte kennis van VBA...in de leer, maar het lukt nog niet echt.
Ik ga proberen er uit te komen, maar het vertalen is nog erg lastig voor mij.
Ik heb wel een boek over VBA, dus misschien dat het daarmee samen met jouw code lukt.
In elk geval bedankt! :d
 
Helaas blijkt bij ons het scripting geblokkeerd te zijn, vandaar dat het bij mij dus niet werkt :confused:
In elk geval bedankt voor de moeite.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan