Hoi,
Ik ben een enorm groentje op het gebied van Excel macro's of VisualBasic, maar ben er deze week toch eens ingedoken. Ik probeer een macro te maken waarbij bepaalde gegevensbereiken van meerdere werkbladen samengevoegd moeten worden tot 1, in een los werkblad.
- De gegevens op alle werkbladen hebben dezelfde kolommmen, het aantal regels verschilt
- In het nieuwe werkblad moeten al deze gegevens onder elkaar worden geplakt
- Het gaat om journaalgegevens uit een boekhouding, dus de file wordt eens in de paar weken vernieuwd, waarbij er iedere keer in de lossen werbladen meerdere regels aan teogevoegd worden; het celbereik op ieder werkblad is niet altijd hetzelfde
- De samengevoegde gegevens dienen uiteindelijk als basis voor een draaitabel
Nu heb ik in Excel een macro opgenomen, met alle stappen die ik hier normaal voor verricht, maar deze werkt nog niet goed. Volgens de debugger in Excel loopt ie vast op een lullig 'selecteer ander werkblad'-regeltje: Sheets("BV2").Select.
Zou iemand misschien kunnen kijken naar de onderstaande code en mijn uitleg erbij en zeggen wat er niet klopt?
- Ik wis eerst alle gegevens op het blad, dan ga ik naar de gegevens van BV1, selecteer de bovenste rij en selecteer vervolgens dmv shift-ctrl-down alle actieve cellen.
- Dan kopieer ik deze en plak de waarden en getalnotities in het 'samengevoegd' werkblad.
- Dan wil ik hetzelfde doen met de gegevens van BV2, die ik onderaan de gegevens van die van BV1 wil plakken, etc...
Dit is het eerste stuk code, waarbij de debugger dus vast loopt op de onderste, simpele regel. Iemand enig idee waarom?
Het zou geweldig zijn als jullie me hiermee konden helpen.
Cells.Select
Selection.ClearContents
Range("A1").Select
Sheets("BV1").Select
Range("A1:O1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Samengevoegd").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=True, Transpose:=False
Range("A1").Select
Selection.End(xlDown).Select
Sheets("BV2").Select
Range("A2:O2").Select
Ik ben een enorm groentje op het gebied van Excel macro's of VisualBasic, maar ben er deze week toch eens ingedoken. Ik probeer een macro te maken waarbij bepaalde gegevensbereiken van meerdere werkbladen samengevoegd moeten worden tot 1, in een los werkblad.
- De gegevens op alle werkbladen hebben dezelfde kolommmen, het aantal regels verschilt
- In het nieuwe werkblad moeten al deze gegevens onder elkaar worden geplakt
- Het gaat om journaalgegevens uit een boekhouding, dus de file wordt eens in de paar weken vernieuwd, waarbij er iedere keer in de lossen werbladen meerdere regels aan teogevoegd worden; het celbereik op ieder werkblad is niet altijd hetzelfde
- De samengevoegde gegevens dienen uiteindelijk als basis voor een draaitabel
Nu heb ik in Excel een macro opgenomen, met alle stappen die ik hier normaal voor verricht, maar deze werkt nog niet goed. Volgens de debugger in Excel loopt ie vast op een lullig 'selecteer ander werkblad'-regeltje: Sheets("BV2").Select.
Zou iemand misschien kunnen kijken naar de onderstaande code en mijn uitleg erbij en zeggen wat er niet klopt?
- Ik wis eerst alle gegevens op het blad, dan ga ik naar de gegevens van BV1, selecteer de bovenste rij en selecteer vervolgens dmv shift-ctrl-down alle actieve cellen.
- Dan kopieer ik deze en plak de waarden en getalnotities in het 'samengevoegd' werkblad.
- Dan wil ik hetzelfde doen met de gegevens van BV2, die ik onderaan de gegevens van die van BV1 wil plakken, etc...
Dit is het eerste stuk code, waarbij de debugger dus vast loopt op de onderste, simpele regel. Iemand enig idee waarom?
Het zou geweldig zijn als jullie me hiermee konden helpen.
Cells.Select
Selection.ClearContents
Range("A1").Select
Sheets("BV1").Select
Range("A1:O1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Samengevoegd").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=True, Transpose:=False
Range("A1").Select
Selection.End(xlDown).Select
Sheets("BV2").Select
Range("A2:O2").Select