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

macro automatisch starten

  • Onderwerp starter Onderwerp starter mtb
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

mtb

Gebruiker
Lid geworden
15 feb 2005
Berichten
314
hallo,

Ik heb een file met met verschillende tabbladen daarin, nu heb ik een tabblad in die file die beveiligd is tegen bewerken,

nu mijn vraag: is het mogelijk dat wanneer dat tabblad aangeklikt word er direct een macro start, zonder dat eerst de beveiliging eraf moet worden gehaald
 
Hoi Mcihel,

Dat kan. Je dient dan via VBA op dat bepaalde werkblad een event aan te maken:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Jouw code
End Sub

Deze routine zou dan moeten beginnen met het verwijderen van de beveiliging, en eindigen met het erop zetten.

Groeten,

Richard
 
Richard,

Aangezien mijn kennis op dat gebied niet van dien aard is, is mijn vraag zou jij willen helpen met de code samen te stellen:o :o

dit is mijn code die ik tot nu toe heb

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Range("D9:H57").Select
Selection.Sort Key1:=Range("H9"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

hier wat extra info:

- het wachtwoord is: 'Willem123"
- de naam van de sheet is: stand
- de beveiliging moet dus zo zijn dat er niets meer in het blad valt te wijzigen en dat de
formules verborgen zijn.
- zo gauw de sheet aangeklikt word moet de macro starten

thanks a lot so far :thumb:
 
hoi,

iemand anders nog een idee/suggestie hoe dit te op te pakken, krijg er mijn vinger niet achter

bedankt
 
Workbook_SheetActivate(ByVal Sh As Object) werkt niet in de module van een werkblad. Gebruik dan WorkSheet_Activate()

Benoem je range die je wilt sorteren met de naam SORT_RANGE.
Code zou dan zoiets moeten worden:
Code:
Option Explicit

Private Sub WorkSheet_Activate()
Application.ScreenUpdating = False
    ActiveSheet.Unprotect Password:="123"
    Range("SORT_RANGE").Sort Key1:=Cells(1, 1), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
    Application.Goto Cells(1, 1)
    ActiveSheet.Protect Password:="123"
Application.ScreenUpdating = True
End Sub
 
Diezel


na een beetje stoeien, is het opgelost,

thanks

:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan