Gå til innhold

Hvordan låse makro knapper


Anbefalte innlegg

Hei!

Jeg har Vista og Office 2007

 

Jeg har en arbeidsbok med 12 ark.

På ett ark (ÅRSSKIFTE)har jeg 4 makroknapper(kommandoknapp ActiveX-kontroll).

Jeg har låst hele arket med passord men likevel kan jeg klikke på makroknappene og kjøre disse selv om de også er låst.

 

Kan jeg få låst knappene med passord? Dette for og hindre andre til og kjøre makroer.

 

På forhånd takk

 

Hilsen

meg

Lenke til kommentar
Videoannonse
Annonse

Ikke out of the box, du må programmere litt i makroene eller lage noen nye. I sin aller enkleste form begynner du makroene med en inputbox:

 

Sub Makro1()
If InputBox("Passord:") <> "HemiliPassord" Then Exit Sub
'resten av koden her
End Sub

 

Videre; huske at gjeldende bruker allerede vet passordet, maskere det med ***, ..

 

En annen innfallsvinkel er å lage en makro som viser eller enabler knappene hvis innskrevet passord er ok.

 

Beste hilsen Harald

Lenke til kommentar

Hei igjen Harald. Jeg har følgende makro på knapp nr 2. Når jeg låser ark vil jeg også at knapp nr 2 skal være låst. La oss si at jeg vil bruke "Nisse" som passord.

Hvordan gjør jeg dette?

På forhånd takk.

 

Sub NullstilleRegar()

'

' NullstilleRegark Makro

' Denne nullstiller også korigeringer

'

 

'

Sheets("Reg ark").Select

ActiveCell.FormulaR1C1 = "0"

Range("F7").Select

ActiveCell.FormulaR1C1 = "0"

Range("G7").Select

ActiveCell.FormulaR1C1 = "0"

Range("H7").Select

ActiveCell.FormulaR1C1 = "0"

Range("I7").Select

ActiveCell.FormulaR1C1 = "0"

Range("J7").Select

ActiveCell.FormulaR1C1 = "0"

Range("G7:J7").Select

Selection.AutoFill Destination:=Range("G7:J59")

Range("G7:J59").Select

Range("X7").Select

ActiveCell.FormulaR1C1 = "0"

Range("Y7").Select

ActiveCell.FormulaR1C1 = "0"

Range("Z7").Select

ActiveCell.FormulaR1C1 = "0"

Range("AA7").Select

ActiveCell.FormulaR1C1 = "0"

Range("AB7").Select

ActiveCell.FormulaR1C1 = "0"

Range("AC7").Select

ActiveCell.FormulaR1C1 = "0"

Range("AD7").Select

ActiveCell.FormulaR1C1 = "0"

Range("AE7").Select

ActiveCell.FormulaR1C1 = "0"

Range("X7:AE7").Select

Selection.AutoFill Destination:=Range("X7:AE59")

Range("X7:AE59").Select

Range("BJ7").Select

ActiveCell.FormulaR1C1 = "0"

Range("BK7").Select

ActiveCell.FormulaR1C1 = "0"

Range("BL7").Select

ActiveCell.FormulaR1C1 = "0"

Range("BM7").Select

ActiveCell.FormulaR1C1 = "0"

Range("BN7").Select

ActiveCell.FormulaR1C1 = "0"

Range("BO7").Select

ActiveCell.FormulaR1C1 = "0"

Range("BJ7:BO7").Select

Selection.AutoFill Destination:=Range("BJ7:BO59")

Range("BJ7:BO59").Select

Range("CP7").Select

ActiveCell.FormulaR1C1 = "0"

Range("CQ7").Select

ActiveCell.FormulaR1C1 = "0"

Range("CR7").Select

ActiveCell.FormulaR1C1 = "0"

Range("CS7").Select

ActiveCell.FormulaR1C1 = "0"

Range("CT7").Select

ActiveCell.FormulaR1C1 = "0"

Range("CU7").Select

ActiveCell.FormulaR1C1 = "0"

Range("CV7").Select

ActiveCell.FormulaR1C1 = "0"

Range("CP7:CV7").Select

Selection.AutoFill Destination:=Range("CP7:CV59")

Range("CP7:CV59").Select

Range("DX7").Select

ActiveCell.FormulaR1C1 = "0"

Range("DY7").Select

ActiveCell.FormulaR1C1 = "0"

Range("DZ7").Select

ActiveCell.FormulaR1C1 = "0"

Range("EA7").Select

ActiveCell.FormulaR1C1 = "0"

Range("EB7").Select

ActiveCell.FormulaR1C1 = "0"

Range("EC7").Select

ActiveCell.FormulaR1C1 = "0"

Range("ED7").Select

ActiveCell.FormulaR1C1 = "0"

Range("EE7").Select

ActiveCell.FormulaR1C1 = "0"

Range("EF7").Select

ActiveCell.FormulaR1C1 = "0"

Range("EG7").Select

ActiveCell.FormulaR1C1 = "0"

Range("EH7").Select

ActiveCell.FormulaR1C1 = "0"

Range("EI7").Select

ActiveCell.FormulaR1C1 = "0"

Range("DX7:EI7").Select

Selection.AutoFill Destination:=Range("DX7:EI59")

Range("DX7:EI59").Select

Range("DX7").Select

Range("F7").Select

Sheets("SALG").Select

Range("Q7").Select

ActiveCell.FormulaR1C1 = "0"

Range("Q7").Select

Selection.AutoFill Destination:=Range("Q7:Q59")

Range("Q7:Q59").Select

Range("Q7").Select

Sheets("Årsskifte").Select

Range("F18").Select

End Sub

Lenke til kommentar

Du skjønte ikke hva jeg mente. Putt dette i begynnelsen av makroen din:

 

If InputBox("Passord:") <> "Nisse" Then Exit Sub

 

Knappen er ikke låst, men den spør om passordet før den gjør noe.

 

En annen sak, du kan forenkle koden din betraktelig, så kjører den på null tid og gir en annen brukeropplevelse. Merk at den ikke går til arket eller flytter markøren:

 

Sub NullstilleRegar()
'
' NullstilleRegark Makro
' Denne nullstiller også korigeringer 
If InputBox("Passord for nullstilling:") <> "Nisse" Then Exit Sub
Sheets("Reg ark").Range("G7:J59").Value = 0
Sheets("Reg ark").Range("X7:AE59").Value = 0
Sheets("Reg ark").Range("BJ7:BO59").Value = 0
Sheets("Reg ark").Range("CP7:CV59").Value = 0
Sheets("Reg ark").Range("DX7:EI59").Value = 0
Sheets("Reg ark").Range("Q7:Q59").Value = 0
End Sub

 

HTH. Beste hilsen Harald

Lenke til kommentar

Ingenting galt med å spille inn makroer -jeg gjør knapt annet de gangene jeg må programmere Word, som jeg kan ingenting om. Koden blir feilfri. Men den blir 50 ganger større enn nødvendig siden den ikke vet hva du er ute etter å oppnå, og derfor spiller inn absolutt alt som skjer. Jeg tror du er klar for å se hvordan du bearbeder en innspilling, det er både nyttig og morsomt. Sjekk to greie instruksjonssider:

 

http://www.dailydoseofexcel.com/archives/2004/04/26/beginning-vba-recording-macros/

 

http://www.dailydoseofexcel.com/archives/2004/04/27/beginning-vba-select-and-activate/

 

Jeg har ikke gjort annet enn å fjerne det du ikke var ute etter i koden din, ref siste lenke, ren backspace-knapp-operasjon. Med litt øvelse i dette er veien kort til å tenke som en programmerer, og da starter moroa for alvor :)

 

Beste hilsen Harald

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...