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

Sorteren in beveiligd tabblad

Status
Niet open voor verdere reacties.

john64

Gebruiker
Lid geworden
12 jun 2011
Berichten
268
Goedemorgen
In een aantal threads wordt er gevraagd naar een oplossing voor het niet kunnen sorteren in een beveiligd tabblad, o.a.

http://www.helpmij.nl/forum/showthread.php/900225-sortern-op-beveiligd-werkblad?highlight=Sorteren+beveiligd+blad

maar dit doet nog niet helemaal wat ik zou willen

Als ik de eigenschappen van alle cellen op "niet geblokkeerd" zet, vervolgens het tabblad beveilig, dan gaat het sorteren prima. Ik wil echter voorkomen dat gebruikers bepaalde cellen (grijs gearceerde) niet kunnen wijzigen, vandaar dat deze cellen geblokkeerd zijn

Ook de oplossing http://blog.softartisans.com/2013/10/01/kb-sorting-locked-cells-in-protected-worksheets/ krijg ik niet goed werkend.


Iemand een idee of het mogelijk is om te sorteren in een beveiligd tabblad, waarbij sommige cellen geblokkeerd zijn, en andere niet ? Deze laatste moeten door gebruikers gewijzigd kunnen worden, de geblokkeerde cellen uiteraard niet
 

Bijlagen

Cellen van kolommen C tot en met G niet beveiligd zetten
enkel A, B en G

Code:
Sub test()
With Sheets("blad1")
    .Unprotect
    With .ListObjects("Tabel1")
        .Range.Sort key1:=.ListColumns(3), order1:=xlAscending, _
        Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End With
    .Protect
End With
End Sub

mvg
Leo
 
Mogge Leo,

Ik neem aan dat deze code in ThisWorkbook opgenomen moet worden ?
De kolom 3 (Datum start) wordt in dit geval keurig gesorteerd bij openen van het bestand, maar is het mogelijk om de gebruiker zelf te laten kiezen welke kolom gesorteerd moet worden ?
Bij een niet beveiligd tabblad kan gebruiker bijv. sorteren op begin datum, of op bedrag1 (onzin-kolomnaam, maar gaat om principe :) ), in deze oplossing wordt gecodeerd op welke kolom gesorteerd wordt, na (opnieuw) openen van het bestand


mvg
John
 
Rechtermuisklik op kolomheader waarop gesorteerd moet worden

Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("C1", "G1")) Is Nothing Then
    With Sheets("blad1")
        .Unprotect
        With .ListObjects("Tabel1")
            .Range.Sort key1:=.ListColumns(Target.Column), order1:=xlAscending, _
            Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
        End With
        .Protect
    End With
    Cancel = True
End If
End Sub

mvg
Leo
 

Bijlagen

Na wat knutselen (ik moest ook de blokkering van de kolomtitels uitzetten :) ) lukt het om te sorteren. Dank

Het vervelend is dat je niet kunt zien op welke kolom er is gesorteerd, en ook niet in welke richting (A-Z / Z-A, of oud-nieuw / nieuw-oud). De pijltjes kolomtitels geven hierover ook geen duidelijkheid
Wat is het verschil tussen filteren en sorteren in een kolom ? Ik weet wel wat het verschil is, maar waarom werkt sorteren niet en filteren wel als je het autofilter aanzet in een beveiligd tabblad ?

Een ander probleem is dat ik nu geen wachtwoord heb ingevuld. Als ik tabblad beveilig met een wachtwoord gaat het niet lukken, want dan moet gebruiker een wachtwoord invullen om te "unprotecten", en dat is nu net wat ik niet wilde.

mvg
John
 
met paswoord en keuze

Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("C1", "G1")) Is Nothing Then
    With Sheets("blad1")
        .Unprotect Password:="test"
        r = InputBox("1 van laag naar hoog 0-9    A-Z" & Chr(13) & "2 van hoog naar laag 9-0     Z-A")
        With .ListObjects("Tabel1")
            If r = 1 Then
                .Range.Sort key1:=.ListColumns(Target.Column), order1:=xlAscending, _
                Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
            ElseIf r = 2 Then
                .Range.Sort key1:=.ListColumns(Target.Column), order1:=xlDescending, _
                Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
            End If
        End With
        .Protect Password:="test"
    End With
    Cancel = True
End If
End Sub

mvg
Leo
 
Super hoe snel je reageert op mijn vragen :)

De code ziet er indrukwekkend uit, maar is altijd in te zien door de gebruiker door te kiezen voor "Programmacode weergeven": hij kan dus ook het wachtwoord zien

Nogmaals, code werkt uitstekend, :thumb:, maar ik wil niet dat gebruiker in mijn code gaat lopen "klooien" door wachtwoord uit te zetten en formules aan te passen.

Vreemd dat de club van Bill Gates dit niet goed verwerkt in Excel :), of ben ik de enige die dit probleem ervaar ?
Bestaat er echt geen mogelijkheid om te sorteren via het standaard autofilter van Excel ? Bij beveiligen van tabblad kies ik voor opties sorteren Sorteren en Auto Filter gebruiken. Filteren lukt wel, maar sorteren helaas niet
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan