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

VBA Code tegen verwijderen filter

Status
Niet open voor verdere reacties.

zipke1988

Gebruiker
Lid geworden
9 jan 2015
Berichten
34
Allen,

Ik zit met een Excel-bestand met een code om:
-automatisch datum + tijd toe te voegen van laatste wijziging document (per rij)
-initialen toe te voegen van gebruiker laatste wijziging (per rij)


Op mijn kolommen zit een filter en er mag gefilterd worden, maar er moet voorkomen worden dat de filter verwijderd wordt. Hoe kan ik dit tot stand brengen?



Alvast bedankt
 
Door het blad te beveiligen?
Neen, dat had ik al geprobeerd. Ofwel doe ik iets verkeerd. Ik heb de optie "gebruikers mogen autofilter gebruiken" en "sorteren" laten openstaan, maar ik krijg de melding:
error.JPG

Kan ik geen lijntje toevoegen aan de VBA code?
 
Het is beter om even het document hier te plaatsen eventueel ontdaan van gevoelige informatie. Het filteren en sorteren op een beveiligd blad is geen enkel probleem. Of je moet wel een erg oude versie van excel hebben. Mogelijk dat de code in jouw bestand roet in het eten gooit. Maar dat is onmogelijk te beoordelen zonder het bestand te zien.
 
Je zou zoiets kunnen inzetten.
Je maakt immers altijd een selection_change.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If AutoFilterMode = False Then  Cells(1).CurrentRegion.AutoFilter
End Sub
 
Laatst bewerkt:
Verwarrend... je schijft
"er mag gefilterd worden".....
Dan mag je dat filter toch ook uitzetten...
Je werkt blijkbaar met 2 filters dan?
Een voorbeeld zou idd helpen...
 
Het is beter om even het document hier te plaatsen eventueel ontdaan van gevoelige informatie. Het filteren en sorteren op een beveiligd blad is geen enkel probleem. Of je moet wel een erg oude versie van excel hebben. Mogelijk dat de code in jouw bestand roet in het eten gooit. Maar dat is onmogelijk te beoordelen zonder het bestand te zien.

Verwarrend... je schijft
"er mag gefilterd worden".....
Dan mag je dat filter toch ook uitzetten...
Je werkt blijkbaar met 2 filters dan?
Een voorbeeld zou idd helpen...

Mijn document bestaat uit kolommen A:H.
De filter staat op deze A:H. Er mag gesorteerd worden op datum, gefilterd op naam e.d. Maar dit moét niet indien de gebruiker dit niet nodig heeft.

Er moet wel een beveiliging komen tegen het verwijderen (ctrl+shift+L) van de filter, want: de gebruikers van de Excel zijn niet zo gekend met Excel. Soms verwijderen ze de filter per ongeluk en proberen ze deze terug te plaatsen. Het is nu echter al tweemaal gebeurd dat de filter wordt teruggezet op kolommen A:G zonder kolom H. Ik moet jullie natuurlijk niet vertellen wat er dan gebeurt. :thumb:


Dank bij voorbaat
 
Laatst bewerkt:
Maak gebruik van een tabel. Dan staat het filter altijd goed.
 
En probeer de geboden middelen.
 
En probeer de geboden middelen.

Ik doe een poging, maar VBA is absoluut niet mijn sterkste Excel-kant... Ik zit met de handen in het haar als het over jouw code gaat.

Mijn code vind je onderstaand, waar moet ik deze lijn toevoegen? (Het eerste deel is bij Change, het tweede heet Initialen).

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 Or Target.Column > 5 Or Target.Count > 10 Then Exit Sub
With Application
.EnableEvents = False
If Trim(Join(.Transpose(.Transpose(Cells(Target.Row, 1).Resize(, 3))))) = "" Then
Cells(Target.Row, 6).Resize(, 2).ClearContents
Else
Cells(Target.Row, "F") = Now
Cells(Target.Row, "D") = Initialen(.UserName)
Columns("F").AutoFit
End If
.EnableEvents = True
End With
End Sub

Private Function Initialen(Nm As String) As String
Dim i As Long

Initialen = Left(Nm, 1)
For i = 2 To Len(Nm)
If Mid(Nm, i, 1) = " " Then Initialen = Initialen & Mid(Nm, i + 1, 1)
Next
End Function


Alvast bedankt
 
Plak het er eens boven.
 
Plak het er eens boven.
Heb ik gedaan en ik krijg iets heel vreemds nu. Ik zet mijn filter over de kolommen A:I.
Wanneer ik jouw code toevoeg en probeer de filter te verwijderen, sprint hij automatisch terug, hetgeen nodig is, dus top! Enige probleem, de filter die nu automatisch wordt teruggeplaatst zit enkel over de kolommen A:F.

Komt het door deze lege kolom dat hij niet verder gaat?

Knipsel.JPG

Edit: inderdaad, dat was de reden!

Bedankt voor de hulp, problem solved!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan