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

Automatisch rijen verwijderen bij celwaarde ander werkblad

Status
Niet open voor verdere reacties.

HendrX

Gebruiker
Lid geworden
5 feb 2018
Berichten
12
Beste Excelgenoten,

Inmiddels al wat uurtjes bezig en kom er maar niet uit.
De echte Excel experts gaan waarschijnlijk hard lachen alleen is het voor mij een groot raadsel.

Wat is de bedoeling?

Wanneer de waarde "0"is in bereik in werkblad Klantdata BA2:BA500, dan moet de volledige rij in werkblad "prepensioen" verwijderd worden.

Het is mij wel gelukt om de rij te kopiëren als de waarde in het opgegeven bereik "1' is:

Sub CopyRowInputItem()
Dim r As Integer
Dim cell As Range
r = 2
For Each cell In Worksheets("Klantdata").Range("BA2:BA500").Cells
If cell.Value = "1" Then
cell.EntireRow.Copy

Sheets("prepensioen").Cells(r, 2).EntireRow.PasteSpecial xlPasteValues, SkipBlanks:=True
r = r + 1
End If
Next cell
End Sub


Het kan zijn dat je bijvoorbeeld in werkblad "Klantdata" iets aanpast (geboortedatum), waardoor in dit werkblad in bereik BA2:BA500 het resultaat (uitkomst) "0" wordt terwijl eht eerst "1" was.

In dat geval moet in het werkblad "prepensioen" de betreffende rij verwijderd worden.

Eigenlijk geactualiseerd worden.

Tevens lukt het mij ook niet om de macro's direct te laten uitvoeren bij verandering waarde.
Is wel gelukt bij het opnieuw opstarten van het Excel bestand.

Als je daar ook nog een tip voor hebt...heel graag.

Bedankt alvast Excel expert :)
 
Tussen verwijderen (of bedoel je leegmaken?) en actualiseren van een rij zit een groot verschil.
Aan je macro te zien lijkt het er op dat de werkbladen Klantdata en Prepensioen aan elkaar gelinkt zijn op rijniveau.
Door welke wijziging(en) op werkblad Klantdata kan in kolom BA op werkblad Klantdata een nul komen te staan?
Een geanonimiseerd voorbeelddocument zou welkom zijn.
 
plaats even een bestandje, dan is het waarschijnlijk zo gepiept.
 
Bestandje bijgesloten

Bijgaand het bestandje.

Wanneer ik nu in werkblad "Klantdata" de geboortedatum aanpas naar bijvoorbeeld 01-01-1980 van een persoon, dan is de leeftijd < 57 jaar. en daarmee cel BA de waarde van "1" naar "0"veranderd. Op dat moment moet deze rij (met klantgegevens) verwijderd worden uit werkblad "prepensioen".
 

Bijlagen

Nogmaals:
Moet de rij verwijderd worden, met als gevolg dat de rijen daaronder een rij omhoog schuiven, of moet de rij leeg gemaakt worden?
 
De rij moet verwijderd worden met als gevolg dat de rijen daaronder een rij omhoog schuiven.
 
Voorbeeld:
Je hebt tien gevulde rijen in je Klantdata werkblad en dus ook tien bijbehorende rijen in werkblad Prepensioen. De klant op rij vijf in Klantdata wordt jonger dan 57, beetje vreemd, maar vooruit, dus wordt rij vijf uit Prepensioen verwijderd.
Daarna wordt de klant in rij zeven jonger dan 57, dan moet dus rij zes uit Prepensioen worden verwijderd. Omdat je geen unieke klantID gebruikt is het lastig te bepalen welke rij in Prepensioen overeenkomt met welke rij in Klantdata. Hoe wil je dat oplossen?
 
Het aanpassen van de rijen in prepensioen heeft meer te maken met de situatie als iemand op enig moment ouder is dan 57. Of als iemand 52 geworden is wordt toegevoegd. Dan moet degene van het werkblad prepensioen verwijderd of toegevoegd worden.
Het doel is om alleen een selectie te krijgen in werkblad prepensioen voor de doelgroep tussen de 52-57 jaar. Deze groep krijgen in werkblad klantdata in kolom ab automatisch een 1. De rest een 0.
Omdat het verschil tussen Vandaag() en geboortedatum automatisch wordt berekend bij het opstarten van Excel zullen in de toekomst mensen binnen deze doelgroep vallen en tevens er buiten gaan vallen. Dus de actuele doelgroep moet zichtbaar zijn in het werkblad prepensioen.

Ik dacht dat dit wel zou kunnen omdat bij de macro code om toe te voegen de rij die voldoet aan de criteria ook automatisch gekopieerd en geplakt wordt op het andere werkblad onder de laatste toegevoegde rij.

Anders zou ik ook erggeholpen zijn wat de macro is om alleen de betreffende regel leeg te halen.

Trouwens, nog heel erg bedankt voor het meedenken.
 
Laatst bewerkt:
kun je niet beter gebruik maken van de filtermogelijkheden van Excel?
 
Nee het moet automatisch gaan dmv macro. Tenzij er een Macro is die die automatisch filtert en de rij verwijderd :)

Eigenlijk is concreet wat ik zoek het volgende:

Ik heb nu een Macro gemaakt dat indien de celwaarde BA2 "1" is, de volledige rij wordt gekopieerd naar een ander werkblad
Ik wil een Macro dat indien de Celwaarde BA2 weer "0"wordt, de volledige rij weer wordt verwijderd van het andere werkblad.
 
Laatst bewerkt:
Gebruik Excel waarvor het bedoeld is.
Maak een correcte database en gebruik de daarbij horende ingebouwde sorteer-, filter- en samenvattingsopties:
Dynamische tabel, sort, custom sort, autofilter, advanced filter, pivottable, slicer.
Ga geen ingebouwd wiel krakkemikkig uitvinden.

In een echte database verwijder je geen records, maar markeer je die als 'obsolete'.
 
Misschien heb je wel gelijk. Alleen een database maken ben ik zelf niet zo in thuis. Daarom inderdaad via deze weg. Wat overigens verder wel prima werkt.
Alleen begrijp ik uit je opmerking dat je ook niet weet wat de macro code is om gewenste te realiseren?
 
Alleen begrijp ik uit je opmerking dat je ook niet weet wat de macro code is om gewenste te realiseren?

Kijk eens naar mijn bijdragen in dit forum. (of anders op www.snb-vba.eu )
Een macro maak je ter aanvulling op de ingebouwde Excelmogelijkheden.
De slechtste macro is een overbodige macro.
 
Ik breng jouw kennis absoluut niet in twijfel. Sterker nog, ik denk dat ik alleen maar van je kan leren in dat opzicht.
Bovendien waardeer ik het enorm dat je überhaupt de moeite neemt om te reageren.

Ik ben alleen erg op zoek naar een oplossing en heb dat geprobeerd te vinden binnen het Macro spectrum omdat ik daar enigszins mee bekend ben.

Misschien helpt het als ik iets meer toelichting geef waarom een rij (in dit geval klantdata) zichtbaar wordt in een ander werkblad wanneer voldaan wordt aan een criteria.

Wat ik wil bereiken is dat de klanten die toegevoegd worden aan een nieuw werkblad automatisch in een systeem komen (Trello). Excel en Trello kan ik koppelen via een software applicatie.
Alleen de voorwaarde dat deze klant doorgezet wordt naar Trello is wanneer een rij is toegevoegd in een werkblad of in een tabel.
Dus ik kan wel een tabel maken en hierop filteren. Alleen mijn kennis is dusdanig beperkt dat dit steeds handmatig moet. Wanneer dit automatisch gefilterd zou kunnen worden in een tabel (meestal datum gerelateerd, dus bij bereiken van bepaalde datum dan val je binnen de doelgroep bijvoorbeeld) dan zou dit ook perfect zijn.
 
Het gebruik van autofilter in een dynamische tabel is evenveel 'werk' als het starten van een macro.
Staan de gegevens in een dynamische tabel ?
Hoe vindt de export naar Trello plaatst ?
 
de gegevens staan niet in een dynamische tabel. Ik ben nog aan het opbouwen. Heb nu niet meer dan eerder verstuurd bestand. Dus titels met daaronder de gegevens.
Het was mij dus gelukt om via Macro onder eerder genoemde voorwaarde de regel te kopieren naar ander werkblad. Alleen moet op ditzelfde werkblad de regel weer verwijderd worden als de gekopieerde rij niet meer aan criteria voldoet/
De expert gaat via de software Zapier onder voorwaarden (wanneer rij wordt toegevoegd aan tabel of werkblad) automatisch van Excel naar Trello.
 
Zoals je op de website van Zapier kunt zien, doet Zapier al het werk voor jou: als je een record toevoegt in een dynamische tabel wordt die automatisch geëxporteerd naar Trello.
Je bovenstaande vraag vervalt daardoor volledig.
 
Misschien heb je helemaal gelijk alleen twijfel ik over het volgende.

Ik moet eerste alle klanten in een werkblad (Klantdata) in mijn geval importeren en vandaar uit worden de selecties gemaakt. Dus heb eigenlijk bij aanvang een brontabel waar geen extra records of rijen aan worden toegevoegd.
Vanuit een nieuwe tabel of werkblad waar wel nieuwe records worden toegevoegd en of verwijderd worden gekoppeld aan Zapier.

Een voorbeeld van een selectiecriteria is bijvoorbeeld als een klant tussen de 52 - 57 jaar oud is, of als de rentevaste periode binnen 36 maanden afloopt bijvoorbeeld.
Deze selectie (doelgroep) is dus dynamisch. Na verloop van tijd vallen ze ook weer uit deze doelgroep.

Omdat ik nu de criteria maak op de datum (vandaag minus geboortedatum bijv.) wordt er iemand toegevoegd op het moment dat degene binnen de opgegeven waarde/criteria valt.

Degene moet dus óf automatisch toegevoegd worden aan een andere tabel (die weer gekoppeld is aan Trello) óf een ander werkblad die gekoppeld is aan Trello.
Dat is dus wel gelukt met een Macro.

Alleen wil ik dus de nieuwe tabel of werkblad automatisch actualiseren. Anders staan in deze nieuwe tabel of werkblad nog oude gegevens. Iemand die nu 57 is en volgende maand 58 wordt, valt buiten deze doelgroep en moet derhalve niet meer zichtbaar zijn in de actuele tabel of werkblad.

Sorry... ik weet het...gedoe en kom er maar niet uit.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan