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

automatiche regel kopieren en verwijderen bij invullen van een waarde

  • Onderwerp starter Onderwerp starter DenM
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

DenM

Nieuwe gebruiker
Lid geworden
22 jul 2016
Berichten
1
Beste,


Op de site heb ik al bruikbare informatie kunne vinden maar er is één ding waar ik niet uitkom.

Ik heb het al voor elkaar gekregen dat als er in de cel 'Interne_inspectie' 'geen_werk' wordt ingevuld en de Macro wordt gestart deze hele regel met al zijn data naar het werkblad 'Vervallen' Bekijk bijlage PROJECT_DATABASE_v0.1.xlsmwordt gekopieerd.

Wat me niet lukt om voor elkaar te krijgen is dat ik zelf de macro niet meer hoef te starten maar dat deze automatisch zijn werk doet zodra er in deze cel de waarde 'geen_werk' wordt ingevuld.


Graag hoor ik hoe ik dit stukje moet schrijven en toe moet voegen in het gedeelte van de al aanwezige macro.


Alvast bedankt voor uw tijd en moeite.


Met vriendelijke groet

Daniël
 
Bij mij werk hij door de code in de programmacode van het werkmap te plakken. Dus niet in de macro "RijVerplaatsen" zelf.
vb.PNG

Code:
Sub worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range([COLOR="#FF0000"]"D1:D10"[/COLOR])) Is Nothing Then
If ActiveCell = "geen_werk" Then Run "RijVerplaatsen"
End If
End Sub
Vergeet niet in het rode gedeelte het juiste bereik te zetten. Hier staat nu de kolom waarin een cel gewijzigd kan worden in "geen_werk".

Bekijk bijlage PROJECT_DATABASE_v0.1 Q.xlsm

Met de volgende code hoef je zelf het bereik niet meer aan te passen.
Code:
Sub worksheet_change(ByVal Target As Range)
Dim lastrow As Integer
lastrow = Range("A" & Rows.Count).End(xlUp).Row
If Not Intersect(Target, Range("D5:D" & lastrow)) Is Nothing Then
If ActiveCell = "geen_werk" Then Run "RijVerplaatsen"
End If
End Sub
 

Bijlagen

Laatst bewerkt:
Gebruik 'target' ipv 'activecell'.
 
Mij lijkt zoiets wel voldoende

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target.Count = 1 And Target = "geen_werk" Then
    Application.EnableEvents = False
    With Target.EntireRow
        .Copy Sheets("VERVALLEN").Cells(Rows.Count, 1).End(xlUp).Offset(1)
        .Delete
    End With
    Application.EnableEvents = True
End If
End Sub
 
Laatst bewerkt:
Ik zou nog testen of er een bepaalde laatste cel moet worden gevuld.
Stel dat je bij kolom 4 aankomt zonder de rest van de kolommen ingevuld te hebben?
 
Daar ben ik ook benieuwd naar.
Het zou wel met een formule kunnen ofzo, die waar/onwaar is. hoe dat precies moet, dunno. zoiets?
Code:
=ALS(A1:A5 = Not null;Waar;Onwaar)
 
Laatst bewerkt:
Om te controleren of alle cellen ingevuld zijn kan je =AANTALARG() gebruiken. In VBA is dit Application.CountA
 
Is het mogelijk om dat alleen het aantal cellen te tellen waar een datum in staat?
Alle niet ingevulde cellen hebben bij ons een X.
 
Plaats een bestand met die gegevens zodat er iemand naar kan kijken.
 
Maak bij voorkeur een eigen draadje aan. Niet ingevulde cellen die een X bevatten lijkt mij bijzonder.
 
Was me niet eens opgevallen dat @maomanna niet de Ts is.
 
Ik zou nog testen of er een bepaalde laatste cel moet worden gevuld.
Stel dat je bij kolom 4 aankomt zonder de rest van de kolommen ingevuld te hebben?

Je kwam hiermee, maar verder zonder iets, vandaar dat ik doorvroeg.

@VenA
Maar als het op prijs wordt gesteld om daar dan een los topic van te maken, doe ik dat met alle plezier.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan