• 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 en beschermen door toetsencombinatie

Status
Niet open voor verdere reacties.

ChiaraFavaron

Gebruiker
Lid geworden
13 feb 2011
Berichten
114
Hallo allemaal,

In een bestand heb ik in kolom A een datum en in kolom B de tijd. Op de eerste regel is een filter.

Er wordt steeds informatie bijgevoegd, maar dat gebeurt niet op volgorde.

Veder mag niemand de ingevoerde informatie kunnen wijzigen. Wel mag het filter worden gebruikt.

Ik heb iets geprobeerd met een marco, maar dat werkte niet zoals ik het bedoelde. Omdat er steeds regels bij komen, werden niet alle gevulde regels gesorteerd en beschermd en ook het filter kon ik daarna niet gebruiken. Die marco heb ik dus maar weer weggegooid.

Is er een mogelijkheid dat er door een toetsencombinatie zowel wordt gesorteerd op datum en tijd en dat ook alle gevulde regels worden beschermd. Ook als er regels bij komen.

Misschien is er iemand die hier iets op weet.

Groetjes, Chiara
 

Bijlagen

Laatst bewerkt:
Chiara, met een 'marco' gaat dit niet lukken maar met een 'macro' wel :D
Test onderstaande eens uit
Code:
Sub tst()
    With Sheets("Blad1")
        .Unprotect
        .Range("A2:F" & .Cells(Rows.Count, 1).End(xlUp).Row).Sort [A2]
        .Range("A2:F" & .Cells(Rows.Count, 1).End(xlUp).Row).Locked = True
        .Protect AllowFiltering:=True
    End With
End Sub
Je kan dan aan de macro een toetscombinatie toewijzen
 
of de XL2007-versie
Code:
Sub Sorteren()
Application.ScreenUpdating = False
    With Sheets("Blad1")
        .Unprotect
        .Columns("A:F").Locked = False
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Range("A2:A" & .Cells(Rows.Count, 1) _
                    .End(xlUp).Row), SortOn:=xlSortOnValues
        With .Sort
            .SetRange Range("A1:F" & Sheets("Blad1") _
                        .Cells(Rows.Count, 1).End(xlUp).Row)
            .Header = xlYes
            .Apply
        End With
        .Range("A1:F" & .Cells(Rows.Count, 1).End(xlUp).Row).Locked = True
        .Protect AllowFiltering:=True
    End With
Application.ScreenUpdating = True
End Sub
 
of de XL2007-versie
Code:
Sub Sorteren()
Application.ScreenUpdating = False
    With Sheets("Blad1")
        .Unprotect
        .Columns("A:F").Locked = False
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Range("A2:A" & .Cells(Rows.Count, 1) _
                    .End(xlUp).Row), SortOn:=xlSortOnValues
        With .Sort
            .SetRange Range("A1:F" & Sheets("Blad1") _
                        .Cells(Rows.Count, 1).End(xlUp).Row)
            .Header = xlYes
            .Apply
        End With
        .Range("A1:F" & .Cells(Rows.Count, 1).End(xlUp).Row).Locked = True
        .Protect AllowFiltering:=True
    End With
Application.ScreenUpdating = True
End Sub

Hallo,

Ik dacht echt een 'marco' te lezen, maar je hebt gelijk, haha :o

Wat hierboven staat, ziet er indrukwekkend uit, maar wat moet ik ermee? Hoe test ik dat? :o

Ben een blond excelmaagdje hoor :o

Groetjes, Chiara
 
Beschik je over Winzip of Winrar, want dan kan ik het in een bestandje zetten. Echter xlsm-bestanden kunnen enkel 'verpakt' gepost worden. Anders zal ik je er doorheen moeten praten.
 
In bijlage je bestandje met de macro. Vul een regel in en druk dan op ctrl+s(toetscombinatie die de macro start). De datums worden gesorteerd en de gegevens worden beveiligd.
 

Bijlagen

In bijlage je bestandje met de macro. Vul een regel in en druk dan op ctrl+s(toetscombinatie die de macro start). De datums worden gesorteerd en de gegevens worden beveiligd.

Hoi,

De toetsencombinatie werkt wel en er wordt gesorteerd op datum. Alleen de gegevens worden niet beveiligd.

Is het ook mogelijk om na de datum op tijd te sorteren?

Groetjes, Chiara
 
Dat is dan zeer eigenaardig, want als ik een nieuwe regel invoer, dan de macro laat lopen kan ik in de bestaande gegevens in kolom A tem F niets meer wijzigen. Is je origineel hetzelfde opgebouwd als je voorbeeldbestand ?
 
Dat is dan zeer eigenaardig, want als ik een nieuwe regel invoer, dan de macro laat lopen kan ik in de bestaande gegevens in kolom A tem F niets meer wijzigen. Is je origineel hetzelfde opgebouwd als je voorbeeldbestand ?

Ja, is hetzelfde. Het bestandje uit de .rar heb ik geprobeerd en vandaar mijn vorige commentaar.

Chiara
 
Er wordt nu eerst gesorteerd op datum en dan op tijd. Daarna worden de bestaande gegevens beveiligd (bij mij werkt dit althans perfect).
 

Bijlagen

Er wordt nu eerst gesorteerd op datum en dan op tijd. Daarna worden de bestaande gegevens beveiligd (bij mij werkt dit althans perfect).

Sorteren op datum en tijd is perfect. Ik zie ook op het lint dat het blad beveiligd is. Echter, kan ik gewoon in alle cellen klikken.

Dan heb ik er nog een vraagje bij als ik me niet te zeer opdring. Kan de beveiliging ook met een wachtwoord worden in- en uitgeschakeld? Soms kijken er namelijk leerlingen in deze bestanden en we willen voorkomen dat ze 'knoeien' met de gegevens.

Groetjes, Chiara
 
Met het wachtwoord bedoel ik dat die in de macro zit en gevraagd wordt om de beveiliging op te heffen.
 
Beveilig eerst je werkblad met een wachtwoord. Zet dit wachtwoord dan ook in de macro en sla dan je workbook op.
Code:
Sub Sorteren()
Application.ScreenUpdating = False
    With Sheets("Blad1")
        .Unprotect Password:="[COLOR="red"]zet hier het wachtwoord[/COLOR]"
        .Columns("A:F").Locked = False
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Range("A2:A" & .Cells(Rows.Count, 1) _
                    .End(xlUp).Row), SortOn:=xlSortOnValues, Order:=xlAscending
        .Sort.SortFields.Add Key:=Range("B2:B" & .Cells(Rows.Count, 1) _
                    .End(xlUp).Row), SortOn:=xlSortOnValues, Order:=xlAscending
        With .Sort
            .SetRange Range("A1:F" & Sheets("Blad1") _
                        .Cells(Rows.Count, 1).End(xlUp).Row)
            .Header = xlYes
            .Apply
        End With
        .Range("A1:F" & .Cells(Rows.Count, 1).End(xlUp).Row).Locked = True
        .Protect Password:="[COLOR="red"]herhaal hier het wachtwoord[/COLOR]", AllowFiltering:=True
    End With
Application.ScreenUpdating = True
End Sub

PS: Je kan inderdaad op de beveiligde cellen klikken, maar heb je ook geprobeerd iets te wijzigen ?:o
 
PS: Je kan inderdaad op de beveiligde cellen klikken, maar heb je ook geprobeerd iets te wijzigen ?:o

Oeps! :o:o:o

Voor zover ik nu alles heb kunnen zien, werkt het helemaal goed. Mocht ik nog vragen hebben, dan meld ik me weer.

Weer iets geleerd en erg snel geholpen. Jullie zijn goed!

Heel erg bedankt, warme bakkertje :thumb:

Groetjes, Chiara
 
Hoi allemaal,

Toch nog een vraagje. Is het ook mogelijk om de laatste gevulde regel niet mee te beveiligen?

Chiara
 
Laatst bewerkt:
Code:
.Range("A1:F" & .Cells(Rows.Count, 1).End(xlUp).Row - 1).Locked = True
 
Als je een tabel invoegt en daarna de code uitvoert, kun je de tabel verder niet meer gebruiken. Klopt dat? Of is er wel een mogelijkheid.

Chiara
 
Je hebt toch zelf gevraagd om de ingevoerde gegevens te beveiligen tegen wijziging, dus......:o
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan