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

Nieuwe regel invoegen met een of meerdere knoppen

Status
Niet open voor verdere reacties.

McMacro

Gebruiker
Lid geworden
11 dec 2009
Berichten
80
Beste Excellers,

Ik zou graag middels een knop een nieuwe regel willen invoegen waar de hele opmaak inclusief formules nog aan vast zitten (kopiëren en plakken) maar de cellen moeten dan leeg zijn zodat er daar waar geen formules instaan weer ingevuld kunnen worden.

Eenvoudig is de eerste button bij 1. Vloeren, maar lastiger wordt bij 2. Wanden, 3. Plafond enz...

Wat is de bedoeling?
Button 1 moet een nieuwe regel 2 rijen naar beneden invoeren ten opzichte van de celinhoud "1. Vloeren" in Kolom 1.
Button 2 moet een nieuwe regel 2 rijen naar beneden invoeren ten opzichte van de celinhoud "2. Wanden" in Kolom 1.
Button 3 moet een nieuwe regel 2 rijen naar beneden invoeren ten opzichte van de celinhoud "3. Plafond" in Kolom 1.
Button 4 moet een nieuwe regel 2 rijen naar beneden invoeren ten opzichte van de celinhoud "4. Overig" in Kolom 1.

Ik hoop dat het een beetje te begrijpen is. De bijlage is sumier, maar ik denk wel iets duidelijker in wat ik probeer uit te leggen.

Succes!

Met vriendleijke groet,

McMacro
 

Bijlagen

McMacro,

naar mijn smaak is de bijlage wat te summier; kun je er één plaatsen met volledige opmaak en formules ?

Of kijk eens naar het gebruik van lijsten
 
Beste Haije,

Ik heb het bestand aangepast. Zie bijlage.

Met vriendelijke groet,

McMacro
 

Bijlagen

Hierbij een voorbeeldje, je kunt je probleem supermakkelijk oplossen.

Om het makkelijk te maken, heb ik het volgende gedaan:
1. Benoemde bereiken aangemaakt
2. de onderste rij verborgen van elk benoemd bereik, om de totaaltelling kloppend te houden zonder allerlei rare macro instructies.

Groeten!

Bekijk bijlage MarkXL.xls
 
Laatst bewerkt:
McMacro,

waarom maak je gebruik van samengevoegde cellen?
Om problemen te voorkomen heb ik die allemaal verwijderd, zie bijlage
 

Bijlagen

Thanks a lot...!!! Zo eenvoudig en toch functioneel. (zouden de celen die samengevoegd waren nu ook weer samengevoegd kunnen worden? Anders heb ik bijvoorbeeld in kolom B t/m F 6 validatielijstjes. En het is onpraktisch)

Ik heb nog een bijkomende vraag... In de kolom opp. in m2 zou ik graag willen zien dat, indien de materiaalomschrijving in kolom H ingevuld is er altijd de Oppervlakte ingeulvd wordt die aangegeven staat in cel J4, tenzij iemand zelf de cel invuld dan moet het gewoon de ingevulde waarde zijn. Een soort "overrule-functie", altijd de waarde van J4 in kolom N invullen als kolom H ingevuld is, tenzij iemand zelf met een andere waarde kolom N invuld.

Met vriendelijke groet,

McMacro
 
hm. ik ben het met Haije eens,
je moet die rare samengevoegde cellen weghalen en gewoon een brede kolom nemen met die dropdown box.
die macro blijft wel werken denk ik
 
Laatst bewerkt:
@ Haije

McMacro,

waarom maak je gebruik van samengevoegde cellen?

Die cellen heb ik nodig voor de opmaak in de eerste paar rijen. Daar komt nog een project omschrijving en dergelijke met nog meer data.
Op dit moment heb ik het orginele bestand niet bij de hand. Maar dit is wel wat er gebeuren moet. Vandaar dat ik al een opmaak gemaakt heb met samengevoegde cellen.

Overigens, op dit moment werk ik met Excel 2000. En als ik op een button klik dan krijg ik de volgende melding:
 

Bijlagen

  • Helpmij01 - Foutmelding.JPG
    Helpmij01 - Foutmelding.JPG
    19,5 KB · Weergaven: 68
Laatst bewerkt:
Dat probleem met die foutmeldding kan je denk ik verhelpen door de macro's opnieuw aan de knoppen toe te wijzen.
de namen spreken voor zich, dus dat moet je lukken



Wat betreft die regels invoegen, het is een stuk minder leuk geworden nu met die stomme samengevoegde cellen. :P

Er gebeuren allerlei overwachte dingen als ik probeer het samengevoegde deel naar beneden te kopieren via code
zoals rijhoogten die plotseling veranderen. Ik kwam tot 2 extra stappen in de macro.

(ik word weer herinnerd waarom ik nooit samengevoegde cellen wil gebruiken. :))

maar niet getreurd, ik heb het probleem verholpen, hopelijk werkt het ook bij jou.

en je bedrag rekent nu het aantal ingevulde vierkante meters, mits er wordt bepaald dat er minder moet worden gerekend.

succes.
Bekijk bijlage MarkXL2.xls
 
Laatst bewerkt:
Bedankt voor je moeite ;) Maar ik heb er zo weinig aan zonder bijlage :P
 
Ja...!!! Super...!!!

En nu nog kolom H t/m J samenvoegen. De cel in kolom N blijft leeg als ik kolom H invul. Eigenlijk zou daar dan de opp in m2 uit J4 moeten staan. En die mag ik overschrijven wanneer ik wil, maar als ik de cel leeg maak dan moet er weer de waarde uit J4 staan als kolom H ingevuld is. :D Snap je het nog een beetje?

Code:
Option Explicit

Const SAMENVOEG_START_A As String = "B"
Const SAMENVOEG_EIND_F As String = "F"
Const SAMENVOEG_START_H As String = "H"
Const SAMENVOEG_EIND_J As String = "J"

Private Sub AddRow(ByVal category As String)

    With ActiveSheet.Range(category)
    
        With .Rows(.Rows.Count)
        
            .Insert
            .Cells.SpecialCells(xlCellTypeFormulas).Offset(-1).FillDown
            'samenvoegen werkt heel buggy, dus zijn krasse middelen nodig om het recht te krijgen
            .Offset(-1).Range(SAMENVOEG_START_A & "1:" & SAMENVOEG_EIND_F & 1).MergeCells = True
            'de cel hoogte wordt random aangepast, moet worden teruggezet
            .Offset(-1).EntireRow.RowHeight = .Offset(-2).RowHeight
            
        End With
        
    End With

End Sub

Public Sub AddRowVloeren()
    AddRow "Vloeren"
End Sub

Public Sub addRowWanden()
    AddRow "Wanden"
End Sub

Public Sub addRowPlafond()
    AddRow "Plafond"
End Sub

Public Sub addRowOverig()
    AddRow "Overig"
End Sub

En heel erg bedankt voor het opknappen van het minder leuk "schoon" werk... Merge.

Groet,

McMacro
 
Laatst bewerkt:
graag gedaan!

ps.

ik denk dat ik je begrijp maar als je een celwaarde eenmaal hebt veranderd of leeggemaakt is je formule weg. je kan dan wel weer gebruik gaan maken van gebeurtenissen, maar dan ga je echt het gladde ijs op. ik heb het niet zo op macro's die van werkbladverandering gebeurtenissen gebruik maken. ik vind dat je dan beter een andere oplossing kan bedenken.

ik heb nu wel een formule toegevoegd om initieel je standaard aantal vierkante meters in te calculeren.
ook heb ik het tweede samen te voegen bereik voor je in de code gebouwd.

Bekijk bijlage MarkXL3.xls

hopelijk werkt het nog allemaal....
(en deze keer mèt bijlage)
 
Laatst bewerkt:
Hmmm... nope... hij gooit nu de formule eruit als ik op de button klik. Maargoed... Ik dacht wel dat die kolom N een probleem zou worden. Is het mogelijk een cel in te vullen 'op afstand'? Dus dat ik via een andere cel de opdracht geef aan kolom N om deze te vullen? Dus een =ALS-formule vanuit een andere cel... zodat ik vrij ben om Kolom N in te vullen naar gelieve. En dat 'die andere cel' reageert op het moment kolom N niet ingevuld is maar kolom H wel... Dan moet in kolom N de waarde van J4 ingevuld worden.

Voorbeeld:
Materiaalomschrijving (kolom H) = [leeg] opp. in m2 (kolom N) = [leeg]
Materiaalomschrijving (kolom H) = "Beton" opp. in m2 (kolom N) = automatisch de waarde uit J4, in dit geval: 80,00 (omdat ik zelf kolom N nog niet ingevuld heb)
Materiaalomschrijving (kolom H) = "Beton" opp. in m2 (kolom N) = 24,00 (Handmatige invoer) Maar als ik de cel leeg zou maken met delete of omdat ik een nieuwe regel invoer moet daar weer 80,00 ingevuld worden (de waarde uit J4) als kolom H ook nog steeds ingevuld is.

Misschien is het op te lossen met VBA?

Groeten,

McMacro
 
zoiets:

=als($A$1="";$J$4;$A$1)

waarbij A1 de celis waar je je eigen oppervlakte invoert
 
Bedankt Haije,

Maar ieder materiaal kan z'n eigen oppervlakte of lengte hebben. Dus iedere regel moet een eigen mogelijkheid hebben om een opp. op te geven. En het zou het mooist uitzien (indien mogelijk) als beide opties in een en dezelfde cel (kolom N) ingevoerd kunnen worden.

Groet,
McMacro
 
McMacro,

Er zaten nog wat onvolkomenheden in dat werkblad versie 3.

Ik heb nog even je andere wensen ingebouwd, maar het wordt steeds minder mooi naarmate je allerlei checks moet inbouwen.
Je vraag betreffende het herstel van de formule nadat deze is overschreven is ook mogelijk, kijk maar even in de macros. (om je een idee te geven)

Bepaalde acties in macros met gebeurtenissen tasten echter wel je undo buffer aan, ( lees: deze wordt brutaalweg gewist. ) dat is wel iets dat je moet meenemen in je overweging wil je dergelijke acties automatiseren.

Kijk maar of je er iets aan hebt

Bekijk bijlage MarkXL4.xls
 
Jaaa...!!! Thank you very much...!!!

Dit is wat ik bedoelde... Ik heb de juiste formule nog in de prijskolom gezet, deze hoeft namelijk niet pas berekend te worden als kolom H ingevuld wordt en kolom S.

Bedankt voor de moeite aan MarkXL en Haije.

Groeten,

McMacro

Ps. is het beroeps(hobby)geheim of kan men dit in een boek of naslagwerk lezen? ISBN?
 

Bijlagen

McMacro,

uiteraard graag gedaan, maar de Mark XL verdient de meeste credits.

Er is niets geheims aan, gewoon vaak en veel met Excel bezig zijn en fora (zoals bv Helpmij.nl) volgen!

Toch nog een vraagje mbt de samengevoegde cellen: ook uit je laatst geposte file kan ik nog niet halen waarom er nou beslist sprake moet zijn van samengevoegde cellen.
Kun je me dat proberen uit te leggen?
 
Nou achteraf gezien, kunnen de eerste samengevoegde cellen wel vervangen worden door 1 kolom :o
Maar het tweede gedeelte moet wel samengevoegd worden, omdat ik in het orginele bestand daar ook nog de mogelijkheid heb wijzigingsdata A t/m G in te vullen. Dat bestaat dus uit nog meer kolommen dan hier het geval is. Maar het principe blijft hetzelfde. Omdat ik niet de enige ben die dit 'formulier' ga gebruiken en er ook eventueel oudere mensen mee kunnen gaan werken of mensen die (echt) niet veel van excel afweten is het praktischer als er iedere keer 1 cel aan te klikken is waar iets ingevuld moet worden. Bijvoorbeeld bij materiaalomschrijving staan meerdere kolommen. als deze samengevoegd zijn, is er maar een cel aan te klikken. Dit maakt het gebruik eenvoudiger. Alle andere cellen worden geblokkeerd en beveiligd zodat er ook niets (per ongeluk) aan de opmaak gewijzigd kan worden.

Met vriendelijke groet,

McMacro
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan