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

rij invoegen met VBA

Status
Niet open voor verdere reacties.

ewaldmauritz

Gebruiker
Lid geworden
19 okt 2011
Berichten
87
Ik heb een vraag over het invoegen van rijen in excel. Voor mijn werk ben ik een excelbestand aan het maken waarin afvalweegbrieven moeten worden ingevuld: datum, bonnummer en gewicht. Dit wordt per kwartaal gedaan. De opzet moet een standaard lay-out worden, zoals dit in het bijgevoegde bestand is te zien.

Deze lay-out moet gemaakt worden voor diverse afvalstromen, maar het staat niet vast hoeveel weegbrieven er per afvalstroom per kwartaal zijn. Dat kan er 1 zijn, maar ook 30. Nu kan ik 30 regels invoeren, maar als er maar 1 weegbrief is dan zijn er 29 lege regels.

In het bijgevoegde bestand heb ik een knop geknutseld waarmee een rij ingevoegd kan worden. Alleen wil ik deze knop zo hebben dat er een lege regel boven subtotaal wordt ingevoerd, waarbij de formule voor het subtotaal wel alle gewichten mee blijft nemen. Dit moet voor alle 4 de kwartalen een aparte knop worden.

Iemand een idee hoe dit is op te lossen? Alvast dank.
 
Excuses voor het ontbreken van de bijlage. Dat is helaas niet gelukt. Weet iemand hoe dat werkt. Als ik op de knop 'bestand uploaden' druk gebeurd er niets.
 
Niet de gevraagde oplossing.

Ik zou dit oplossen met de formule maand in combinatie met een draaitabel (zie bijlage).

Heb je hier vragen of opmerkingen over, laat het gewoon even weten.
 

Bijlagen

  • Rij_invoegen_met_VBA (ewaldmauritz)(oeldere).xls
    56 KB · Weergaven: 305
Je moet op de laatste cel staan.
De nieuwe cel komt dan onder de huidige cel.

Code:
    Rows(ActiveCell.Row).EntireRow.Insert Shift:=xlShiftDown
    Selection = Selection.Offset(1, 0)
    Selection.Offset(0, -1) = Selection.Offset(1, -1)
    Selection.Offset(0, -2) = Selection.Offset(1, -2)
    Selection.Offset(1, 0) = ""
    Selection.Offset(1, -1) = ""
    Selection.Offset(1, -2) = ""
 
Beste oeldere,

Bedankt voor het meedenken, maar het is niet preceis wat ik zoek. De layout zoals het nu is moet gehandhaafd blijven alleen moet er altijd een rij bijgevoegd kunnen worden. In jou oplossing mis ik ook de totalen per kwartaal. Die zijn in de draaitabel niet meer terug te vinden.
Verder moet het straks ingevuld kunnen worden door mensen die nog nooit met excel gewerkt hebben. Een eenvoudige oplossing is daarom het mooist.
 
Beste Diffractorator,

Feitelijk is jouw oplossing toch hetzelfde als de mijne? Of zie ik het niet goed?
Ik zou graag onafhankelijk van welke cel ik geselecteerd heb een lege regel ingevoegd hebben boven het subtotaal van het betreffende kwartaal. Met andere woorden: als ik op de knop 'rij invoegen 1e kwartaal' druk zal er een lege regel verschijnen boven rij 7. Daarbij moet het nieuw in te voeren gewicht ook meegenomen worden in het subtotaal van het eerste kwartaal.
Als ik op de knop 'rij invoegen 2e kwartaal' druk zal er een lege regel verschijnen boven rij 13. Daarbij moet het nieuw in te voeren gewicht ook meegenomen worden in het subtotaal van het 2e kwartaal.

Hopelijk is de vraag zo iets duidelijker. Anders hoor ik het graag.
 
Ok, was niet volledig duidelijk.

Je vertrekt waarschijnlijk van een template?

Zorg dan dat uw subtotalen een unieke naam krijgen. Vb Kwart1 -> Kwart4
Dit doe je gewoon met rechtermuisklik - Define Name
Save die namen natuurlijk wel in uw template.

Dan zou volgende code moeten werken voor kwartaal 1.
Code:
    Range("Kwart1").Offset(-1, 0).Select
    Selection.EntireRow.Insert
    Selection = Selection.Offset(1, 0)
    Selection.Offset(0, -1) = Selection.Offset(1, -1)
    Selection.Offset(0, -2) = Selection.Offset(1, -2)
    Selection.Offset(1, 0) = ""
    Selection.Offset(1, -1) = ""
    Selection.Offset(1, -2) = ""

Voor de ander kwartalen moet je gewoon nieuwe knoppen maken en de code aanpassen.
 
Tip:

In kolom A heb je samengevoegde cellen staan.

Probeer dit als dit niet nodig is te vermijden.

Je krijgt hier vroeg of laat last van.
 
oeldere,
de vragensteller werkt met een sjabloon, schreef hij; dat probeerde ik zoveel mogelijk intact te laten.
In dit geval denk ik niet dat die samenvoegingen problemen zullen opleveren.
(ik verzuimde wel 'per' te declareren als 'integer', maar heb dat inmiddels aangepast, alhoewel dat niet merkbaar wat aan de werking zal veranderen).
 
zapatr,

Geweldig bedankt voor je oplossing. Dit is wat ik zocht. Ik heb geprobeerd je oplossing te begrijpen zodat het ook nog een leereffect heeft. Maar dat is niet gelukt. Mijn kennis van VBA is daarvoor te gering. Maar de oplossing werkt en dat is het belangrijkste.
Op naar het volgende puzzelstukje....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan