Avatar billede Slettet bruger
07. juli 2006 - 16:13 Der er 2 kommentarer og
1 løsning

userinterfaceonly sheet kan ikke redigeres af makro i anden mappe

Hej,

Jeg har en shared, protected (userinterfaceonly) mappe, som jeg gerne via en anden workbook skulle redigere i.

Userinterfaceonly skulle efter min overbevisning tillade makroer at redigere celler, men åbenbart ikke når cellerne er i en anden mappe.

Da mappen er shared, kan jeg ikke umiddelbart unprotecte for så at protecte igen (da det ikke er tilladt at lave så drastiske ændringer i en shared workbook).

For at lave ændringerne skal jeg derfor

1. unshare, som kræver jeg gemmer. Dette har to ulemper - Jeg skal gemme (det er på en server, så det tager noget tid) og jeg kan forestille mig, brugerne på workbooken bliver smidt af (hvilket lidt ødelægger ideen med en shared workbook)
2. unprotecte
3. lave mine ændringer
4. protecte
5. share, som igen kræver jeg gemmer.

userinterfaceonly virker fint ved oprettelsessession (hvis jeg opretter en fil med makro, protecter og derefter laver ændringer). Men når filen bliver gemt, lukket og åbnet igen er den protected kun med skriverettigheder for workbookens egne makroer.

Et alternativ er self. at lave en insiderfunction i den protectede workbook, der kan lave arbejdet for mig.

Jeg håber meget, der er en, der kan hjælpe mig - Hvis jeg ikke har forklaret mig ordentlig, skal i bare spørge ind.

/1
Avatar billede Slettet bruger
07. juli 2006 - 16:26 #1
Jeg smutter til weekend nu, så svarer muligvis først på mulige spørgsmål/svar mandag.

/1.
Avatar billede Slettet bruger
10. juli 2006 - 09:44 #2
Jeg dropper bare at have den shared (det virkdere ikke at have en inserderfunktion - samme fejlmeddellelse).

Giver i stedet brugeren besked på at gemme ændringer senere, hvis workbooken er åbnet af en anden.

/1.
Avatar billede Slettet bruger
17. august 2006 - 08:48 #3
Jeg har i stedet lavet min egen protect function:

I worksheet programkoden:
Private Sub Worksheet_Change(ByVal Target As Range)
    disable_events
    Application.Undo
    MsgBox ("You are not allowed to manually change cells in this sheet - please use the macro buttons")
End Sub

I Separat modul:
Function disable_events()
    Application.EnableEvents = False
    Application.OnTime Now, "enable_events"
End Function
Function enable_events()
    Application.EnableEvents = True
End Function


Når jeg vil redigere med makroer bruger jeg application.enableevents = false - eller dvs. jeg bruger disable_events functionen, der disabler events indtil alle makroer er færdige med at køre.

/1.
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