Avatar billede mfj1 Nybegynder
14. september 2002 - 20:53 Der er 13 kommentarer og
2 løsninger

Sub Beskytt() virker ikke??

Hej Eksperter!
Jeg fandt følgende Makro, men jeg kan ikke få den til at virke, HVORFOR:

Private Sub Worksheet_Activate()
ActiveSheet.EnableSelection = xlUnlockedCells
End Sub

Er der nogen eksperter der kan hjælpe.
Avatar billede sjap Praktikant
14. september 2002 - 21:49 #1
Du skal beskytte arket før du kører ovenstående program - tror jeg.
Avatar billede jkrons Professor
14. september 2002 - 22:13 #2
Makroen søger for at du kun kan vælge mellem ulåste celler i et beskyttet ark. Desuden virker den på Activate handlingen. Det vil sige hvis det pågældende ark bliver aktiveret. Det gør det ikke, hvis det er det ark mappen åbner i. Derfor virker makroen først, hvis du har været i et andent ark, og så klikkerpå arkfanen for det ark, der indeholder makroen.
Samtidigt skal du huske at hændelsesmakroer skal ligge i arkets programkode. Højreklik på arkfanen og vælg Vis programkode. Sæt koden ind her.

Hvis den skal virke altid ville jeg bruge Private Sub Worksheet_Open()
i stedet for.
Avatar billede mfj1 Nybegynder
14. september 2002 - 22:40 #3
Jeg har forstået det sådan, at man IKKE skal beskytte Arket først, men jeg er ikke sikker!?

Nu har jeg oprettet en fil med Ark1 og Ark2 og har IGEN lagt Makroen ind i Arkets programkode i både Ark1 og Ark2, men det funger ikke. Makroen er NU:

Private Sub Worksheet_Open()
ActiveSheet.EnableSelection = xlUnlockedsCells
End Sub
Avatar billede sjap Praktikant
14. september 2002 - 22:54 #4
Jeg kan altså IKKE få ActiveSheet.EnableSelection = xlUnlockedsCells
til at virke uden at aktivere beskyttelsen. :-)
Avatar billede mfj1 Nybegynder
14. september 2002 - 23:05 #5
superjap! Jeg kan også få: ActiveSheet.EnableSelection = xlUnlockedsCells til at virke når jeg aktivere beskyttelsen, men hvis beskyttelsen skal aktiveres går lidt af det, jeg troede kunne være fidusen væk.

Hvad er så fordelen ved at bruge den nævnte Makro, når man skal ind i hvert Ark for at slå beskyttelsen til??
Avatar billede bak Forsker
14. september 2002 - 23:18 #6
prøv at lægge dette ind i modulet ThisWorkBook
Den aktiverer beskyttelse for alle ark og gør at man ikke kan markere/selecte låste celler overhovedet.
Den er også lige den lille kringle med at userinterfaceonly:=True gør at makroer kan køre og ændre arket selvom det er beskyttet, men det kan ikke ikke ændres af andet. (det kunne være det du søger i dit andet spm.)


Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
  sh.Protect
  sh.EnableSelection = xlUnlockedCells
Next
End Sub
Avatar billede bak Forsker
14. september 2002 - 23:19 #7
sorry

Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
  sh.Protect userinterfaceonly:=True
  sh.EnableSelection = xlUnlockedCells
Next
End Sub
Avatar billede jkrons Professor
15. september 2002 - 01:26 #8
mjf1->En enkelt kommentar til dit oprindelige spørgsmål. Nej, den pågældende makro beskytter ingenting. Den forhindrer dig bare i at markere beskyttede celler. bak's makro derimod beskytter også.
Avatar billede janvogt Praktikant
15. september 2002 - 21:21 #9
Det var vist mig som kom med koden for et par uger siden.
Som det vist er nævnt virker den kun på ark, som er beskyttet :-)
Avatar billede mfj1 Nybegynder
15. september 2002 - 21:56 #10
Bak > Makroen vil ikke virke når den er sat ind efter ”This WorkBook ”
Jeg har sat Makroen ind som følger, er det OK??

With ThisWorkbook
Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
  sh.Protect userinterfaceonly:=True
  sh.EnableSelection = xlUnlockedCells
Next
End Sub
  Set StdWsh = .("skabelon")
  Set MedWsh = .SSheetsheets("Medarbejdere")
  Set SkaOpgwsh = .Sheets("Opgørelse")
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
  sh.Protect userinterfaceonly:=True
  sh.EnableSelection = xlUnlockedCells
Next
End Sub

Jkrons> Tak, jeg lære hele tiden noget nyt især når det drejer sig om det MEGET STORE DYBE HUL makro og især når man ikke er mellem 13 og 17 år.
Avatar billede mfj1 Nybegynder
15. september 2002 - 22:11 #11
Når denne Makro kode virker (kommer til det) betyder det så ikke, den efterfølgende kode ikke vil funger mere???

Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
  sh.Protect userinterfaceonly:=True
  sh.EnableSelection = xlUnlockedCells
Next
End Sub

----------------------------------------------Ny kode

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim ss As String
  On Error GoTo fejl
    If Not Intersect(Target, Range("c8:c200")) Is Nothing Then
    Cancel = True
    ss = "'C:\[JOBnrMed_Tekst.xls]Sheet1'!$A$3:$B$500,2,false"
    ss = "=vlookup(" & Target.Address & "," & ss & ")"
    [aa1].Formula = ss
    If IsError([aa1]) Then MsgBox Target.Value & vbCr & ("Ingen hjælpetekst") Else MsgBox Target.Value & vbCr & [aa1].Value
    [aa1].Clear
  End If
  Exit Sub
fejl:
  MsgBox ("der er sket en fejl")
End Sub
Avatar billede bak Forsker
15. september 2002 - 22:36 #12
Nej det virker såmænd fint
cellerne C8:C200 må bare ikke være beskyttede. (i Formater / celler / beskyttelse / låst  fjernes hakket).
hvis ikke man kan "selecte" dem kan man jo heller ikke dobbeltklikke i dem.
Husk at  beskyttelsemakroen skal være i ThisWorkBook og din egen skal være i arkets eget kodemodul.

med hensyn til dit første spørgsmål så ser koden da lidt dobbelt ud !!!
Avatar billede mfj1 Nybegynder
22. september 2002 - 17:30 #13
Bak!! Jeg bliv nød til at bede om lidt hjælp, når jeg ”ligger følgende ind i modulet ThisWorkBook:

Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
  sh.Protect userinterfaceonly:=True
  sh.EnableSelection = xlUnlockedCells
Next
End Sub

Kan jeg ikke få det til at køre tilfredsstillende, alt efter hvad jeg prøver opretter den kun en enkelt mappe eller slet ingen.
mfj1
Avatar billede bak Forsker
23. september 2002 - 16:46 #14
ok, sæt det ind i bunden af din "store" makro..
With Application
    .DisplayAlerts = False
    Sheets(1).Delete  '*** sletter 1. ark
    .DisplayAlerts = True
  End With
'*******her indsættes det*************
  For Each sh In ActiveWorkbook.Worksheets
      sh.Protect userinterfaceonly:=True
      sh.EnableSelection = xlUnlockedCells
  Next
'********-----------------**************
Next
With Application
  .SheetsInNewWorkbook = Oldsheets
  .ScreenUpdating = True
  .Calculation = xlCalculationAutomatic
End With
End Sub

HUSK at indsætte
Dim sh As Worksheet
i toppen

Dette gør at arkene først beskyttes efter de nye mapper er oprettet.
Avatar billede mfj1 Nybegynder
23. september 2002 - 19:54 #15
Tak, for hjælpen og undervisningen.

Bak. Mange tak for hjælpen, jeg opretter lige et spørgsmål, hvor du bedes ligge et svar så du kan få lidt point.
mfj1
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester