• 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 toevoegen incl. formules en voorwaardelijk opmaak

Status
Niet open voor verdere reacties.

frans kooijman

Gebruiker
Lid geworden
22 apr 2008
Berichten
517
Hi,
Misschien niet mogelijk, maar niet geschoten....

Is het mogelijk om zodra een rij met data in een bestand verwijderd wordt,
om dan automatisch onderaan een nieuw rij door Excel toe te laten voegen,
die de formules + voorwaardelijke opmaak van een andere lege rij overneemt?

Zie graag de bijlage.

Stel dat ik de rij van Marie verwijder, kan er dan onderaan (dus niet tussen de
rijen met data, maar ergens onderaan, bij de lege rijen) een extra rij toe te voegen die
de formules en opmaak overneemt van een andere lege rij?

Doel is om het aantal rijen altijd gelijk te houden, ook als 1 of meer rijen door
een gebruiker verwijderd wordt.
Maar dus wel met behoud van formules en VO.

Als de gebruiker 3 rijen verwijdert, dan zouden er dus 3 nieuwe regels (incl. formules en VO)
onderaan toegevoegd moeten worden.

Kan zoiets?

Frans
 

Bijlagen

  • Test.xlsx
    9,5 KB · Weergaven: 120
Maak een officiële Excel Table van je tabel. Dit doe je door een cel in je tabel te selecteren en dan in het lint Insert (invoegen) te kiezen voor de knop Table (tabel) (dit is de knop rechts naast de Pivot Table (draai tabel)).
Als je bij een echte Table helemaal onderaan gaat typen, zal Excel daar automatisch een record met al jouw formules en opmaak aan toevoegen.
 
Dank, ja dit komt in de buurt.
Maar volgens mij wordt er dan niet een rij automatisch toegevoegd, als ik een rij in het bestand verwijder, toch?

Frans
 
vooral uit nieuwsgierigheid wat is het doel wat je daarmee wilt bereiken? of het probleem wat je daarmee probeert op te lossen.
 
Doel is om het aantal rijen altijd gelijk te houden, ook als 1 of meer rijen door
een gebruiker verwijderd wordt.
Maar dus wel met behoud van formules en VO.
 
Dat had je al geschreven, maar waarom wil je dat? ik vermoed omdat je bang bent dat je formules of opmaak kwijt raakt als je het niet doet. Maar er is geen vba voor nodig en ook geen vaste bereiken.
De tabel die Ginger aanraad doet beide. zowel de formules als de voorwaardelijke opmaak worden onthouden en toegepast als je nieuwe regels toevoegt.


maar met 2 naambereiken en een worksheet change event lukt het ook wel..
Bekijk bijlage Kopie van Test-2.xlsm

naambereik "vastbereik" is het hele tabelletje
naambereik "LaatsteRij" is de laatste rij van het tabelletje

de change event macro Worksheet_change controleert of vastbereik nog steeds 12 rijen heeft, zo niet dan wordt boven laatste rij een nieuwe rij ingevoegd.


Maar ondanks mijn oplossing, zou ik toch ook even verdiepen in hoe tabellen werken. Ik denk dat het je probleem ook oplost.

https://support.office.com/nl-nl/ar...b56-a3c9-6c94334e492c?ui=nl-NL&rs=nl-NL&ad=NL

of

http://www.jkp-ads.com/articles/Excel2007TablesNL.asp
 
Laatst bewerkt:
Hi,
Het kostte me wat tijd, maar het werkt....op 1 ding na.

Ik heb de 2 naambereiken en een worksheet change event toegepast
en inderdaad wordt nu 1 regel toegevoegd onderaan, als ik in de tabel 1 regel verwijder.

In de toegevoegde regel wordt de VBA en de VO overgenomen, dus prima.
Maar de formule van de andere cellen wordt nog niet overgenomen.

Hoe krijg ik dat voor elkaar?
Zie de bijlage....Formule in kolom B (Als A = Jan, dan Ja, anders Nee werkt
niet in de nieuwe regel die onderaan ontstaat als ik elders 1 regel verwijder.
Wel de Voorwaardelijke opmaak, maar niet de formule.

Iemand hier een briljante oplossing voor?>

Heel erg bedankt,
Frans
 

Bijlagen

  • Test2.xlsm
    15 KB · Weergaven: 134
Met een listobject?
 

Bijlagen

  • add.xlsb
    15,4 KB · Weergaven: 106
Tja...ik puzzel en puzzel, maar kom niet boven....

Met de oplossing van ....
naambereik "vastbereik" is het hele tabelletje
naambereik "LaatsteRij" is de laatste rij van het tabelletje
...gaat alles goed: Verwijder ik 1 rij, komt er keurig 1 rij onderaan bij.
... gaat ook goed met VO en VBA, dat wordt keurig vasthouden in de nieuw toegevoegde regel
.... allleen worden de formules niet overgenomen in de nieuwe regel.

Met de oplossing van HSV (dank!) heb ik wel de formule, maar komt er
geen nieuwe regel bij als ik er 1 ergens verwijder.

Zoek dus de VBA van de combinatie van die 2 oplossingen, maar dat lukt me niet...

Kan iemand me hieraan helpen?

Frans
 
dan doe jij iets niet goed denk ik. Want als ik met de oplossing van HSV een regel verwijder dan komt er keurig ook meteen weer een regel bij.. beter gezegd het tabelletje blijft altijd 14regels + koprij.
 
Alles werkt nu, maar in heb het bestand gedeeld en dan krijg ik de foutmelding:

Foutopsporing 1004
Deze macro werkt niet in een gedeeld bestand.

Ik geef het op....tenzij iemand deze foutmelding eenvoudig te omzeilen is door
iets aan VBA toe te voegen.

Frans
 
oeps.. dat het bestand gedeeld wordt is wel een vrij cruciaal stukje informatie.. tabellen/listobjects werken niet in gedeelde bestanden
en er kan nog veel meer niet ds lees ook is over alle andere beperkingen die gedeelde bestanden opleveren. het zal je vast een stuk minder enthousiast maken over gedeelde bestanden..
https://support.office.com/nl-nl/ar...0-873b-48d8-8bf2-c1c59a628534#bmshareworkbook


ik heb mijn eerste code aangepast. zodat de formule ook wordt gekopieerd.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("vastbereik").Rows.Count < 12 Then
        With Range("LaatsteRij")
            .Insert shift:=xlDown
            .Copy
            .Offset(-1).PasteSpecial xlPasteFormulas
        End With
    End If
End Sub


edit: Grrr.. laat maar zat zelf ook nog even dat linkje te lezen en blokken cellen invoegen of verwijderen mag dus ook niet in een gedeeld bestand.
Alleen hele rijen verwijderen en invoegen kan..
 

Bijlagen

  • Kopie van Test-2b.xlsm
    15,9 KB · Weergaven: 87
Laatst bewerkt:
Tja, dank, is precies wat ik zoek, maar wist de valkuil van
macro's met gedeelde bestanden niet....

Nuttige lijst, dank je.

Maar ja, ik moet het bestand delen met andere gebruikers die allemaal
tegelijkertijd in dit bestand werken. Een bestand per persoon gaat niet werken,
omdat de info in de cellen door iedereen bekeken en bewerkt moet kunnen worden.

Dus bovenstaand - hoe mooi ook - kan ik niet gebruiken in een gedeeld bestand.

Of is dit nog een oplossing voor bovenstaande macro??
U kunt bestaande macro's uitvoeren mits deze alleen gebruikmaken van beschikbare functies. U kunt ook bewerkingen in een gedeelde werkmap opnemen in een macro die zich bevindt in een andere niet-gedeelde werkmap.

Frans
 
Het kan, als je ook een hele rij mag invoegen ter vervanging van de verwijderde rij. maar aangezien dat je alleen hele rijen mag verwijderen in een gedeeld bestand zou het moeten kunnen zo..
maar als op het tabblad nog andere informatie staat als het (voorbeeld)tabelletje dan kan die dat met hele rij invoegen ook gaan schuiven.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("vastbereik").Rows.Count < 12 Then
        With Range("LaatsteRij")
            .EntireRow.Insert Shift:=xlDown
            .Copy
            .Offset(-1).PasteSpecial xlPasteFormulas
        End With
    End If
Application.CutCopyMode = False
End Sub
 

Bijlagen

  • Kopie van Test-2c.xlsm
    16,4 KB · Weergaven: 95
Ik ga het proberen....Super dank voor je hulp.
Geeft weer hoop !!

Kan er vanavond mee aan de slag, dus duurt even.

Frans
 
...Toch even gekeken en het WERKT, ook in een gedeeld bestand.

Enige nadeel nu nog is dat bovenstaande VBA alleen werkt voor 1 regel verwijderen.
Dan wordt keurig 1 regel incl. formule toegevoegd.

Maar vaak heb ik een veelvoud aan regel, bv 8 te verwijderen.
ALs ik 8 regels in 1 x verwijder, dan wordt er 1 regel incl. formules toegevoegd en 7 regels zonder formule.

Oplosbaar zodat in alle nieuwe regels incl. formules toegevoegd worden ???? (Fingers crossed...)

Frans
 
Thanks, ja helaas, ik heb geen Office 365, maar nog Microsoft Office 2010, dus zonder Co-authoring.

De oplossing van Roel Jongman is perfect en div. testen mee gedaan, alleen prima in gedeelde omgeving,
maar als enige nadeel dus regel voor regel verwijderen, als ik aanvullende regels incl. formules wil

Tenzij dat aan te passen is in VBA?

Frans
 
als je meer dan 1 rgel wilt verwijderen, zijn dat dan aansluitende regels?
 
Soms wel, maar helaas niet altijd.

Als het niet anders kan, ben ik al heel blij met aansluitende regels.

Frans
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan