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

Verwijderen gegevens sneller

Status
Niet open voor verdere reacties.

Gerard2348

Gebruiker
Lid geworden
24 okt 2013
Berichten
370
Beste excel experts,

Met mijn beperkte kennis van VBA heb ik toch het volgend kunnen realiseren via plak, knip en aanpassing. In bijgevoegd voorbeeld worden gegevens gewist t/m de dag die vandaag geldt maar dan drie maanden terug.
De Private Sub Worksheet_Change(ByVal Target As Range) staat in de maand april en zorgt dat de gegevens in de maand januari worden verwijdert. Dit wil ik voor alle maanden realiseren. De macro werkt naar behoren maar deze kan beter en sneller. Dit omdat de regels vele malen meer zijn dan in het getoonde bestand. Wie kan mij helpen. Dit mag ook middels een macro die wordt aangeroepen middels een knop.

mvg Geer.

Bekijk bijlage Celinhoud verwijderen.xlsm
 
probeer deze eens in het blad April:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

With Sheets("Januari")
    If Not Intersect(Target, Range("B5:AE1500")) Is Nothing Then
 
        SR = .Cells(1).CurrentRegion
        icol = Cells(4, Columns.Count).End(xlToLeft).Column
            For x = icol To 1 Step -1
                For cl = 5 To UBound(SR)
                    If SR(1, x) <= DatePart("d", Now - 1) Then
                        SR(cl, x) = ""
                    End If
                Next
            Next
    End If
        .Cells(1).CurrentRegion = SR
End With
End Sub
 
Ha SjonR,

Heb m net even getest. Met een kleine aanpassing. Ik was vergeten dat de gegevens in kolom B, die ik in het voorbeeld niet had ingevuld, moesten blijven bestaan .

For x = icol To 3 Step -1

Werkt als een tierelier.

:thumb:

Groet Geer
 
Laatst bewerkt:
Of ?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Target, Range("B5:AE1500")) Is Nothing Then Cells(3, 3).CurrentRegion.Offset(4).Resize(, Day(Date) - 2).clearcontents
End Sub
 
Hallo Snb,

Heb net jouw code uitgeprobeerd. Nadat hij gegevens wist op het tabblad waar deze in staat (april en niet in het bedoelde tabblad januari) resulteert deze uiteindelijk in een foutmelding.

Groet Geer
 
Ik geloof niet dat je de code begrijpt.
 
Ha Snb,

Ik begrijp jouw antwoord niet.

In mijn vraagstelling staat wanneer er iets in april op een bepaalde dag wijzigt dan moeten de gegevens van 3 maanden terug dus in januari worden gewist.
De code die jij hebt gemaakt wist bij een verandering, naar mijn bescheidde mening, de gegevens in het blad waar deze wordt gezet.

De foutmelding die ik krijg is de volgende;

foutmelding.PNG

Hoe dit komt is mij een raadsel.

Wellicht doe ik iets niet goed maar ik zou niet weten wat. Mijn kennis van VBA is helaas te beperkt om zelf dingen te maken en te ontwikkelen. Ik ben daarom ook zeer dankbaar voor alle aangedragen suggesties & oplossingen.
Misschien kan je mij verder op weg helpen wat ik niet goed doe.

mvg
 
ik denk dat je niets fout doet, maar de code van snb doet niet wat je vroeg. De code van snb verwijdert gegevens in tabblad april.
 
Ha SjonR,

Die conclusie had ik dus ook. Overigens werkt jouw code top.:thumb:
 
Suggesties zijn suggesties, geen kant-en-klare oplossingen. Je zult zelf ook je handen uit de mouwen moeten steken.
Dat is de beste manier om je kennis te vergroten.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan