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

wissen na een bepaalde datum

Status
Niet open voor verdere reacties.

Confictius

Terugkerende gebruiker
Lid geworden
20 okt 2002
Berichten
2.366
Ik zoek een makro die op een bepaalde datum de werkmap wist.

Voorbeeld; in de werkmap waar gegevens staan wordt een makro opgenomen die alle gegevens wist op laten we zeggen 5 januari 2007, tenzij ik voor die tijd de makro uitschakel danwel verwijder.

Kan dat?

Ik ben al wel bezig geweest met formules ( als A1> = 4-1-2007 ) dat soort dingen, maar dan zijn de formules zichtbaar in de cel zodra die cel geselecteert is en dat wil ik niet.

Het werkblad is wel beveiligt (extra>beveilging>werkblad beveiligen) maar sommige cellen niet omdat daar info moet worden ingevuld. En kan een macro wel een cel wissen die beveiligt is?
 
Start van dit stukje code:

Code:
Private Sub Workbook_Open()
    If Now > DateValue("January 5, 2007") + TimeValue("0:00:01 AM") Then Range("A1").ClearContents
End Sub

Wigi
 
Ik heb de code geplakt in [this workbook] en de boel opgeslagen. De datum vooruitgezet, maar bij het opstarten van het bestand krijg ik de foutmelding in de bijlage. Macrobeveiliging staat uitgeschakeld (tijdelijk).

De regel
If Now > DateValue("January 5, 2007") + TimeValue("0:00:01 AM") Then
wordt in geel weeregeven
 
Probeer deze code eens

Private Sub Workbook_Open()
Dim MijnDatum, MijnTijd
MijnDatum = DateValue("5 januari 2007")
MijnTijd = TimeValue("0:00:01 AM")
If Now > MijnDatum + MijnTijd Then
Range("A1").ClearContents
End If
End Sub

Groeten,

M.
 
Ok, die doet het, maar wist alleen de inhoud van cel A1. Ik heb met A1:B4 het bereik aangepast en dat werkt ook, maar wanneer ik nu het blad beveilig (extra>beveilging>werkblad beveiligen) werkt het niet meer.

Ik heb namelijk een aantal ingevulde cellen geblokkeerd en een aantal lege cellen vrijgegeven.

En hoe zorg ik ervoor dat de macro ook meteen het bestand opslaat na het wissen?
 
Laatst bewerkt:
Ok, die doet het

Ik wist niet dat het instellen van de datum taalafhankelijk was. Jij hebt blijkbaar een Nederlandse versie van Excel? Er zijn uiteraard mogelijkheden om dat taal-onafhankelijk te maken, maar daar had ik gisteren niet de tijd voor toen.

... maar wist alleen de inhoud van cel A1. Ik heb met A1:B4 het bereik aangepast en dat werkt ook, maar wanneer ik nu het blad beveilig (extra>beveilging>werkblad beveiligen) werkt het niet meer.

Ik heb namelijk een aantal ingevulde cellen geblokkeerd en een aantal lege cellen vrijgegeven.

En hoe zorg ik ervoor dat de macro ook meteen het bestand opslaat na het wissen?

In je macro moet je eerst met Unprotect code schrijven om de beveiliging eraf te halen, dan Save doen in de code, en dan terug Protect.

Wigi
 
In je macro moet je eerst met Unprotect code schrijven om de beveiliging eraf te halen, dan Save doen in de code, en dan terug Protect.

Klinkt simpel, maar toch heb ik geen idee hoe dat moet :)
 
Private Sub Workbook_Open()
Dim MijnDatum, MijnTijd
Worksheets("Blad1").Unprotect
MijnDatum = DateValue("5 januari 2007")
MijnTijd = TimeValue("0:00:01 AM")
If Now > MijnDatum + MijnTijd Then
Range("A1").ClearContents
End If
Worksheets("Blad1").Protect
End Sub
 
Briljant, precies wat ik zoek!

Nu zit ik me wat in de materie te verdiepen en ik probeer er voor te zorgen dat de macro ook meteen na het wissen het bestand opslaat. Dat doe ik door middel van:

End If
Worksheets("Blad1").Protect
Worksheets("Blad1").Save
End Sub

maar dat werkt niet. Denk ik hier te simpel?
 
Je probeert een werkblad op te slaan.
Gebruik
ActiveWorkbook.Save

Groeten,

M.
 
Private Sub Workbook_Open()
Dim MijnDatum, MijnTijd
Worksheets("Blad1").Unprotect
MijnDatum = DateValue("15 december 2006")
MijnTijd = TimeValue("6:53:01 pM")
If Now > MijnDatum + MijnTijd Then
Range("A1:c3").ClearContents
End If
Worksheets("Blad1").Protect
ActiveWorkbook.Save
End Sub

Dit werkt met opslaan en zo maar wanneer ik een blad beveilig met een wachtwoord moet ik bij het opstarten van het bestand het wachtwoord intypen waarna de cellen vervolgens gewist worden.

Is er een manier om het wachtwoord in de macro te verwerken? De gebruikers van het werkblad weten het wachtwoord namelijk niet en dat wil ik graag zo houden.

Oh ja, en klopt het dat met deze macro het blad pas gewist wordt wanneer het na de ingegeven datum/tijd geopend wordt en niet wanneer het op dat moment al open is?
 
Laatst bewerkt:
Dit werkt met opslaan en zo maar wanneer ik een blad beveilig met een wachtwoord moet ik bij het opstarten van het bestand het wachtwoord intypen waarna de cellen vervolgens gewist worden.

Is er een manier om het wachtwoord in de macro te verwerken? De gebruikers van het werkblad weten het wachtwoord namelijk niet en dat wil ik graag zo houden.

Oh ja, en klopt het dat met deze macro het blad pas gewist wordt wanneer het na de ingegeven datum/tijd geopend wordt en niet wanneer het op dat moment al open is?

Geef tussen haakjes het paswoord mee als een argument:

bv.

Code:
Worksheets("Blad1").Unprotect("jouwpaswoord")


Oh ja, en het klopt dat met deze macro het blad pas gewist wordt wanneer als het na de ingegeven datum/tijd geopend wordt.

Wigi
 
Private Sub Workbook_Open()
Dim MijnDatum, MijnTijd
Worksheets("Blad1").Unprotect (11)
MijnDatum = DateValue("15 december 2006")
MijnTijd = TimeValue("6:53:01 pM")
If Now > MijnDatum + MijnTijd Then
Range("A1:c3").ClearContents
End If
Worksheets("Blad1").Protect
ActiveWorkbook.Save
End Sub

Oké, nog even over het wachtwoord. De cellen zijn beveiligt en het wachtwoord is opgenomen in de macro: in dit geval is het WW "11"

Worksheets("Blad1").Unprotect (11)


Zo werkt de macro naar behoren maar ga ik het WW veranderen in een WW met letters ipv cijfers dan werkt het niet en krijg ik bij het opstarten van het bestand na de triggerdatum een foutmelding.
 

Bijlagen

  • trigger.jpg
    trigger.jpg
    12,9 KB · Weergaven: 45
Laatst bewerkt:
Oké, nog even over het wachtwoord. De cellen zijn beveiligt en het wachtwoord is opgenomen in de macro: in dit geval is het WW "11"




Zo werkt de macro naar behoren maar ga ik het WW veranderen in een WW met letters ipv cijfers dan werkt het niet en krijg ik bij het opstarten van het bestand na de triggerdatum een foutmelding.

Hoe typ je het paswoord dan in?
 
exact zoals ik ook met cijfers doe, kleine letters, hoofdletters, het maakt niet uit. Ik vervang de cijfers in de code gewoon door letters en het werkt niet meer.

*edit*
Ik probeer de code een beetje te doorgronden en ik heb wel redelijk door wat er staat en gebeurt. Eén ding snap ik niet; wat betekent en doet

Dim MijnDatum, MijnTijd
 
Laatst bewerkt:
Waarom hoeft dat met cijfers dan niet?

*edit*

Maar het werkt wel!! :thumb:

Je bent nooit te geleerd om oud te worden :D
 
Laatst bewerkt:
Waarom hoeft dat met cijfers dan niet?

*edit*

Maar het werkt wel!! :thumb:

Je bent nooit te geleerd om oud te worden :D

Omdat cijfers samen een getal vormen, zet je er tekst tussen dan krijg je een string.

Graag gedaan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan