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

Regels in lijst wissen op basis van datum bij openen bestand

Status
Niet open voor verdere reacties.

Cartucci

Gebruiker
Lid geworden
18 aug 2018
Berichten
65
Ik zou graag een VBA script toepassen bij het openen van een bestand. Het script moet de regels in een backorder-lijst wissen welke aan een bepaalde datum voldoen.

Zie voorbeeld kolom H:

• Regel 2 heeft een nalevering gehad op 3-11. Deze regel moet gewist worden op 10-11
• Regel 3 heeft een nalevering gehad op 4-11. Deze regel moet gewist worden op 11-11

In kolom F staat een formule. Deze moet niet gewist worden.

Het document heeft een grootte van ongeveer 30 tot 40 regels in de praktijk.

Is dit mogelijk en kan iemand me helpen aan een script wat dit uitvoert?
 

Bijlagen

  • voorbeeld.xlsx
    8,8 KB · Weergaven: 39
Cartucci,

Kijk eens of dit aan je wensen voldoet?
 

Bijlagen

  • voorbeeld (1).xlsm
    19,1 KB · Weergaven: 26
Hier is ie zonder hulpkolom.
 

Bijlagen

  • voorbeeld(1)_1.xlsm
    14,8 KB · Weergaven: 26
Allereerst hartelijk dan voor het meedenken! Echter,

Er gaat iets niet goed bij het openen van dit bestand. Nadat ik bewerken inschakelen klik, komt eerst melding 1. Vervolgens slaat het bestand vast en is geen cel of menu-item meer benaderbaar.
Zie melding 2 als ik foutopsporing aan klik.
 

Bijlagen

  • melding_1.png
    melding_1.png
    36,7 KB · Weergaven: 52
  • melding_2.png
    melding_2.png
    63,9 KB · Weergaven: 49
De code gaat fout omdat je naar een blad moet verwijzen. Maak er een tabel van en gebruik een extra kolom om te filteren. De formules blijven bestaan en je hebt geen macro nodig.
 

Bijlagen

  • voorbeeld (43).xlsx
    11,2 KB · Weergaven: 30
Op zich werkt dit filteren prima maar het schoont het bestand niet automatisch op. Of begrijp ik je niet goed?

Als de ingevoerde gegevens een week bewaard blijven, is dat voldoende. Als ze aanwezig blijven, wordt het een bestand met honderden regels die er niet meer toe doen.
 
hier 2 verschillende voorbeelden.
op blad 1 een macro die de oude datum verwijderd en een macro die de et weinig geleverde uitrekent

op blad 2 het (aangepast) voorbeeld van VenA met een macro die de oude data verbergt, dit heeft het voordeel dat bij twijfel de oude gegevens met 1 klik er terug staan.
en wees gerust als je dagelijks maar 40 rijen hebt zal je zeer oud moeten worden om een blad vol te krijgen.
 

Bijlagen

  • datums wissen.xlsm
    26,7 KB · Weergaven: 28
Laatst bewerkt:
Beste emields

Bedankt voor je meedenken!

Ik zie de macro's en bij de knop Alles tonen, wordt alles inderdaad weer getoond. Maar hoe kan ik het weer verbergen? Opslaan van het bestand en opnieuw openen toont nl. alle gegevens weer zoals ze getoond worden nadat bij de eerste keer openen op de knop Alles tonen klikt. Of doe ik iets niet goed?

Ook hetgeen op blad 1 staat lijkt niet te reageren op de macro's.
 
Maar hoe kan ik het weer verbergen?

zoals je gevraagd hebt bij het opnieuw openen van het blad.
klik op alles tonen verlaat het blad en als je terug gaat is terug alles verborgen die moet verborgen zijn.
 
Intussen heb ik het vergelijkbaar opgelost met een ander script en nog wat aanpassingen. Dit werkt prima. Met een extra macro kunnen de verborgen velden weer zichtbaar gemaakt worden.

Sub Verberg_Rijen()
ActiveSheet.Unprotect
Dim MyRange As Range, c As Range
Set MyRange = Range("H2:H1000")
MyRange.EntireRow.Hidden = False
Application.ScreenUpdating = False
For Each c In MyRange
If IsDate(c.Value) And c.Value < Date Then
c.EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True

ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Add Key:=Range("A3:A201") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Blad1").Sort
.SetRange Range("A2:I1000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A3").Select
ActiveSheet.Protect

End Sub

Een ieder dank voor het delen van jullie kennis, ik heb heb er weer kennis mee gewonnen!
 
Dan denk ik dat je er weinig van geleerd hebt. Plaats ook nog even jouw uitvinding tussen codetags voor de leesbaarheid.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan