23. januar 2003 - 20:22Der 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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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
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.
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
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()
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"
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.
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.
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.
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
Synes godt om
Ny brugerNybegynder
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.