• 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 verwijderen na verstrijken datum

Status
Niet open voor verdere reacties.

rontermaat

Gebruiker
Lid geworden
17 dec 2008
Berichten
128
Hallo lieve mensen

Ik heb toch nog een vraagje voor mij projectje

Is er een script dat het mogelijk maakt een rij te verwijdern of in ieder geval de cellen te legen die een verstreken datum/tijd hebben.

Ik dacht eerst een formule zoiets als dit bijv. =ALS B1<NU() dan moet hij deleten.(heel simpel gedacht hoor)

maar mischien kan een van jullie helpen

Alvast ontzettend bedankt weer:confused:
 

Bijlagen

Daarvoor moet je gebruik maken van VBA.
 
Rontermaat,

onderstaande macro moet alles doen wat je zegt. Het is niet de mooiste maar het werkt als een gek. Je moet trouwens wel uitkijken als je de eerste paar rijen verwijdert .. dan wordt je knop een beetje klein. Je kan dat verhelpen door bij autovorm opmaken bij kenmerken de optie verplaatsing en formaat niet gerelateerd aan cellen aan te zetten.

Code:
Sub Verlopen()
    
    Set rng = Range("a2").CurrentRegion
    t = rng.Rows.Count
    For i = 1 To t - 1
        If rng.Cells(i + 1, 1) < Date Then
           rng.Cells(i + 1, 1) = ""
        End If
    Next i
    
    Range("a2").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:=""
    filterrange = "a3:a" & t + 2
    Range(filterrange).SpecialCells(xlCellTypeVisible).Select
    Selection.EntireRow.Delete
    Selection.AutoFilter
    
End Sub

Groeten,

Patrick


vergeet niet de Status van de vraag (rechtsonderin) aan te passen als je probleem is opgelost.
 
Dat kan fraaier en sneller

Code:
Sub Verlopen()
  For each cl in columns(1)
    If cl < Date Then cl.clear
  Next
  columns(1).specialcells(xlcelltypeblanks).entirerow.delete    
End Sub
 
snb,
Dat kan fraaier en sneller

Bij mij geeft hij op deze regel fout 13 - typen komen niet met elkaar overeen

Code:
If cl < Date Then cl.Clear
 
Beste rontermaat ;)

Raar dat deze topic al afgesloten is. :confused:

Beide codes van snb en PeddyB geven telkens een fout aan bij mij.

Groetjes Danny. :thumb:
 
danny147,

Raar dat deze topic al afgesloten is.
Beide codes van snb en PeddyB geven telkens een fout aan bij mij.
Bij mij werkt het goed, alleen de code van snb geeft bij mij een fout melding.
Ik gebruik office 2007
 
Sorry heren

Is per ongeluk gegaan.

Ik vraag me af waar ik dit script in moet plaatsen.
blad 1
this workbook
of userform

Ik snap het nog niet hoor het VBA wereldje dus sorry voor mijn vraag

groetjes

Ron
 
Je mag de code van Snb in dit geval niet klakkeloos kopiëren en plakken; zelf het bereik beperken is hier de boodschap. Dit lijkt al beter:

Code:
For Each cl In ActiveSheet.UsedRange.Columns(1).SpecialCells(2, 1)
    If cl < Date Then cl.Clear
  Next
  Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
 
Beste rontermaat ;)

Kopiëer de code.
Druk op ALT+F11.
Klik op INVOEGEN en dan op MODULE.
Plak uw code hierin.
Op uw werkblad plaast je een vorm (rechthoek) via invoegen .
Rechtermuisklik op je vorm en TEKST TOEVOEGEN klikken.
Geef dit een naam bv. uitvoeren.
Dan met de rechtermuisklik op de rechthoek en MACRO TOEVOEGEN klikken.
Selecteer hier VERLOPEN.

Nu zal de macro uitgevoerd worden van zodra je op de vorm klikt.

Groetjes Danny. :thumb:
 
Beste Wigi ;)

Je mag de code van Snb in dit geval niet klakkeloos kopiëren en plakken; zelf het bereik beperken is hier de boodschap. Dit lijkt al beter:

Code:
For Each cl In ActiveSheet.UsedRange.Columns(1).SpecialCells(2, 1)
    If cl < Date Then cl.Clear
  Next
  Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Ik krijg nog steeds een fout in deze code nl:

Code:
For Each cl

Een variable is niet gedefiniëerd als fout.

Groetjes Danny. :thumb:
 
Beste Wigi ;)



Ik krijg nog steeds een fout in deze code nl:

Code:
For Each cl

Een variable is niet gedefiniëerd als fout.

Groetjes Danny. :thumb:

Danny,

met 1500+ berichten mag dit toch geen probleem zijn:
Code:
Dim cl As Range
 
Beste Wigi, ;)

Sorry, ik was het vergeten. :o

Code:
Dim cl As Range

Groetjes Danny :thumb:
 
Er zitten nog wel wat haken en ogen aan die oplossing. Als er geen data zijn die kleiner zijn dan geeft ie een foutmelding. Zo opgelost met een on error resume next natuurlijk. Wel gooit ie alle verdere lege regels ook weg. zodat je altijd weer je opmaak moet fixen voor een nieuwe afspraak. En hij haalt ook rij 1 weg.. weet niet of het wenselijk is.

Verder is het wel een tof iets...'s kijken of ik het ergens voor kan gebruiken. ik heb in ieder geval weer wat geleerd. dank jullie daarvoor

Groeten,

Patrick
 
Laatst bewerkt:
Inderdaad Patrick, er is vaak een afruil tussen simpele, korte en efficiënte code aan de ene kant, en code met foutafhandeling en meer "gecustomizeerd" aan de andere kant.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan