Avatar billede lsimony Nybegynder
23. januar 2003 - 20:22 Der er 15 kommentarer og
1 løsning

AutoOpen event

Hej igen alle sammen



sub auto_open()
    macro 1
    macro 2
    macro n
end sub

Ved en autoopen event er det muligt at cancel eventen ved at trykke shift samtidigt med at arket bliver åbnet. Er det muligt at en macro kan forhindre dette? Eller endnu bedre er det muligt at registrere brugen af shift og derefter starte en macro, der spørger efter password.

Hilsen

Lars
Avatar billede sjap Praktikant
23. januar 2003 - 21:17 #1
Lars

Jeg har ledt lidt og tror jeg har fundet en måde - i hvert tilfælde i Excel 97:

- Åbn din kode i visual basic vinduet
- Højreklik på arket i Projektvinduet (øverst til venstre hos mig)
- Vælg egenskaber for "navn på projekt"
- Vælg fanebladet Beskyttelse

Så tror jeg du finder det, du leder efter.

//jap
Avatar billede lsimony Nybegynder
23. januar 2003 - 22:39 #2
Hej Jap

Jeg tror du har misforstået mig. Jeg er ikke interesseret i at vide, hvordan jeg skjuler koden for viewing. Det har jeg fuldstændigt styr på.
Der i mod er jeg interesseret i, at kunne styre den backdoor, der findes i autoopen eventen, så det ikke er muligt at starte mit regneark uden kørsel af autoopen eventen.

Lars
23. januar 2003 - 22:44 #3
Application.Interactive = False
' Din kode
Application.Interactive = True
Avatar billede lsimony Nybegynder
23. januar 2003 - 22:58 #4
Hej Flemming

Jeg prøver det i morgen. Skal linierne stå udenfor sub'en

Lars
23. januar 2003 - 23:07 #5
Sub Auto_Open()
  Application.Interactive = False
  ' Din kode
  Application.Interactive = True
End Suc
Avatar billede lsimony Nybegynder
24. januar 2003 - 07:37 #6
Hej Flemming

Hvilken funktion giver koden? Hvis jeg vælger følgende kode i et modul:

Sub Auto_Open()
  Application.Interactive = False
  MsgBox ("Hello World")
  Application.Interactive = True
End Sub

Så starter koden ikke op, hvis jeg trykker shift samtidigt med at regnearket åbnes.

Lars
24. januar 2003 - 10:08 #7
så har jeg ikke noget forslag lige pt.
Avatar billede lsimony Nybegynder
24. januar 2003 - 11:21 #8
Det var ærgeligt. Men ellers tak for din hjælp Flemming.

Lars
Avatar billede bak Forsker
24. januar 2003 - 21:52 #9
Hej Lsimony -> hvis dine spm har lidt sammenhæng er dine muligheder nok lidt begrænsede, da bruger også kan lade være med at aktiver makroer (sætte sikkerhden til mellem eller høj), men jeg har alligevel et forslag.

Opret et forside ark hvor du skriver at dette regne ark kun kan bruges med makroer osv.
indsæt så disse to makroer i thisworkbook

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> "Ark1" Then _
  sh.Visible = xlVeryHidden
Next
End Sub

Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In ThisWorkbook.Worksheets
  sh.Visible = True
Next
call macro1
call macro2
call osv
End Sub

I beforesave skjuler du alle ark undtaget din forside. Du skjuler den med xlveryHidden hvilket gør at man ikke kan se dem under format / ark. De kan kun vises igen via VBA.
Dette gør du så i Workbook_open
Avatar billede martin_moth Mester
27. januar 2003 - 22:24 #10
lsimony: Hvordan fan... har du fundet ud af, at du kan omgå Auto_open ved at trykke shift. Smart, i øvrigt? Sorry, skal ikke forstyrre mere...
Avatar billede lsimony Nybegynder
31. januar 2003 - 09:18 #11
Hej Bak

Undskyld at jeg ikke har svaret før, men rent arbejdsmæssigt har jeg ligget vandret. ;-).

Jeg er ikke interesseret i at skjule mine ark, men at låse dem, så evt. kritiske formler ikke kan ændres af brugeren.

Jeg tror den eneste løsning måske er at skrive en "Hvis Du Trykker På Tast Shift-event". Er dette muligt?

Til Martin Moth

Jeg så på et tidspunkt, et eller andet sted under Help i VBA editoren, noget omkring tryk af shift og opstart af en macro enabler kørslen af en macro. Jeg kan bare ikke huske, hvor under Help at det stod. Desværre. Men det virker på en auto_open()

Lars
31. januar 2003 - 13:47 #12
Hej Lars

En Excel "guru" skriver følgende på nettet omkring shift problematikken
"A thousand virus writers out there would also like to prevent this. Luckily, they can't"

Jeg tror ikke på du kan komme omkring det.
Avatar billede bak Forsker
31. januar 2003 - 14:04 #13
Lars -> hvis du gør som jeg skriver er arkene kun skulte, hvis auto_open makroen ikke har fået lov at køre. dvs. hvis shift har været trykket ned under åbning.
Avatar billede lsimony Nybegynder
31. januar 2003 - 21:25 #14
Hej Bak

Jeg tjekker din kode på mandag, hvor jeg har adgang til databasen, der ikke kan lide låste regneark.

Hej Flemming. Jeg tror din Guru har ret. Det er sikkert rart at have denne backdoor i baghånden. Det er bare ærgeligt, hvis det ikke kan lade sig gøre i mit tilfælde.

God weekend

Lars
Avatar billede lsimony Nybegynder
04. februar 2003 - 08:22 #15
Hej Bak

Nu har jeg prøvet din kode. Det var ikke det jeg var ude efter. Desværre. Jeg var kun ude efter at låst alle mine celler ved en start op. Selv om jeg trykker shift ved start op. Pga. min database af en eller anden grund ikke kan håndtere regneark med låste celler.

Men i skal alle have tak for jeres inputs.

Lars
Avatar billede lsimony Nybegynder
04. februar 2003 - 08:24 #16
Så Flemming fortjener vel pointene, da han iflg sit indlæg "31/01-2003 13:47:32" mente at det ikke kan lade sig gøre.

Lars
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