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

Tabel wissen op gezette tijden

Status
Niet open voor verdere reacties.

NajKwin

Gebruiker
Lid geworden
24 dec 2015
Berichten
258
Hallo,

ik heb een sheet waar ik via onderstaand code 2 x per jaar mijn tabel leeg
.
PHP:
If Format(Date + Time, "d-mm hh:mm:ss") = "1-01 00:00:01" Or Format(Date + Time, "d-mm hh:mm:ss") = "1-08 00:00:01" Then
    On Error Resume Next
    Sheets("Sheet1").ListObjects("Tbl_In_Uit").DataBodyRange.Delete
    On Error GoTo 0
End If

doordat de tabel dan best wel groot word zou ik hem 1x in de 2 maanden willen legen.

kan iemand mij vertellen hoe ik dat kan realiseren?

M.v.g
 
Vreemd dat je de tijd erbij pakt. Maakt het er nogal ingewikkeld op.
Code:
If DateSerial(Year(Date), Month(Date) / 2, 1) = DateSerial(Year(Date), Int(Month(Date) / 2), 1) Then
    On Error Resume Next
    Sheets("Sheet1").ListObjects("Tbl_In_Uit").DataBodyRange.Delete
    On Error GoTo 0
End If

Wordt uitgevoerd op alle even maanden.
 
Misschien zo ook wel

Code:
If Month(Date) Mod 2 = 1 And Sheets("Sheet1").ListObjects("Tbl_In_Uit").ListRows.Count Then Sheets("Sheet1").ListObjects("Tbl_In_Uit").DataBodyRange.Delete
 
1x in de 2 maanden is wat anders dan een oneven maand.
 
Je kunt dat uiteraard ook omwisselen. Lijkt mij dat om de twee maanden gelijk is aan de series 1-3-5-7 of 2-4-6-8. Beetje je fantasie gebruiken hsv :).
 
1x keer in de 2 maand gooi ik mijn portemonnee leeg!

Fantasie genoeg @OctaFish?

M.a.w. Elke dag als je het bestand opent of als de code loopt in die bewuste maand zullen de gegevens verdwijnen.
Je zou hooguit een maand aan gegevens hebben, en een maand niets.
 
Laatst bewerkt:
@Vena,

als ik
PHP:
If Month(Date) Mod 2 = 1 And Sheets("Sheet1").ListObjects("Tbl_In_Uit").ListRows.Count Then Sheets("Sheet1").ListObjects("Tbl_In_Uit").DataBodyRange.Delete
moet die dan niet afgesloten worden met
PHP:
End If
?
 
Als het op 1 regel staat dan juist niet.

Wel als je het anders schrijft.(Wat bij sommigen de voorkeur heeft.)
Code:
If Month(Date) Mod 2 = 1 And Sheets("Sheet1").ListObjects("Tbl_In_Uit").ListRows.Count Then
  Sheets("Sheet1").ListObjects("Tbl_In_Uit").DataBodyRange.Delete
End if
 
Waarom niet gewoon rekenen vanaf een bepaalde datum(plaats ergens in een cel). Iedere 60 dagen(ongeveer 2 maanden) wordt de actie uitgevoerd bij het openen van de sheet.
Plaats deze achter het betreffende blad

Code:
Private Sub Worksheet_Activate()
If 1 * (Date - CDate(Cells(1, 1))) Mod 60 = 0 Then
    On Error Resume Next
    Sheets("Sheet1").ListObjects("Tbl_In_Uit").DataBodyRange.Delete
    On Error GoTo 0
End If
End Sub
 
@JVeer
Het probleem is dat de sheet 24/7 draait en dus niet elke keer wordt geopend
 
staat er een datum in je tabel (ik denk aan een factuurdatum of zoiets) in kolom X ?
Als die ouder is dan 1.5 maand en je bent in de 1e paar dagen van jan of aug, dan gooi je alle records met datum ouder dan bv. 30 dagen er uit.
Als iets in die zin volstaat, dan is het een makkie.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan