Avatar billede mira96ac Novice
16. marts 2007 - 07:59 Der er 6 kommentarer og
1 løsning

Ændring af makro

Hello

Jeg tror jeg har to nemme små spørgsmål.

1. Jeg har en makro i to forskellige Excel-filer som skjuler/sletter min værktøjslinie når man lukker excel-filen.
I Excel-fil 1 skjuler den linien i Excel-fil 2 sletter den linien.

Public Sub auto_close()
        Application.CommandBars("min-menu").Visible = False

End Sub
Public Sub auto_close()
        Application.CommandBars("min-menu").Delete

End Sub

Dvs. når man åbner de to excel filer samtidig og får lukket den hvor den sletter linien først, så kommer der en vba-fejl når man vil lukke den anden excel-fil, fordi den forsøger at skjule linien.

Kan man lave makroen så den tester på om værktøjslinien er slettet og hvis den er det skal den ikke skjule den ?

Spørgsmål 2:

Jeg har også nendenstående makro som skrivebeskytter mine ark.

Hvis jeg forsøger at aktivere mine andre makroer når arkene er skrivebeskyttede kommer der også en vba-fejl.

Kan man lave en kode i de andre makroer som siger: hvis arkene er skrivebeskyttet så msgbox "arket er skrivebeskyttet" ellers så fortsæt med den pågældende makro.

Sub Beskyt()
Application.ScreenUpdating = False
Dim wSheet As Worksheet
    For Each wSheet In Worksheets
        If wSheet.ProtectContents = True Then
            wSheet.Unprotect
        Else
            wSheet.Protect
        End If
    Next wSheet
Application.ScreenUpdating = True
End Sub
Avatar billede kabbak Professor
16. marts 2007 - 08:07 #1
Jeg har sat en if ind, hvor den tæller antal Workbooks, den udfører ikke koden hvis der er mere end 1.

Public Sub auto_close()
    If Workbooks.Count = 1 Then
        Application.CommandBars("min-menu").Visible = False
    End If
End Sub
Avatar billede mira96ac Novice
16. marts 2007 - 08:14 #2
Det er desværre ikke helt optimalt.

Problemet er at i min excel-fil 2 hvor den sletter værktøjslinien kan jeg ikke komme til at tilføje din "if", da makroerne er gemt i selve excel-filen. Dvs. når jeg åbner denne fil (og der er en del forskellige af den) så vil den altid Slette min linie.

Så jeg er næsten nødt til at rette koden i min excel-fil 1 hvor den skjuler linien. Her ligger koden i en ekstern xla-fil. Den skal så finde ud af om linien er slettet og hvis den er det skal den ikke skjule den ved luk.
Avatar billede kabbak Professor
16. marts 2007 - 09:25 #3
du kan holde SHIFT nede mens du klikker på filen for at åbne, så kører makroerne ikke
Avatar billede mira96ac Novice
16. marts 2007 - 09:28 #4
Det er desværre heller ikke en mulighed, da der er flere brugere der skal bruge disse excel-filer og løsningen skal ikke involvere dem overhovet. Det skal bare ske i "baggrunden"
Avatar billede mira96ac Novice
16. marts 2007 - 13:02 #5
Er der slet ingen løsning. Især på  Application.CommandBars problemet.

Det er ved at være irriterende at kigge på når man lukker Excel.
Avatar billede mira96ac Novice
17. marts 2007 - 11:46 #6
Jeg har bare lavet en "On Error goto" og så lader jeg den forlade sub'en, hvis der er fejl.

Det virker fint.
Avatar billede mira96ac Novice
18. marts 2007 - 13:20 #7
Lukker spørgsmål
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