17. januar 2011 - 09:38Der er
8 kommentarer og 1 løsning
Kan jeg forhindre rename af worksheet
Hej Eksperter...
Jeg har en workbook kørende med menge forskellige brugere. Der er tilknyttet en makro der automatisk opretter et nyt ark hver uge ud fra en worksheet der hedder "Skabelon". Hvis en af brugerne finder på at omdøbe arket skabelon, så vil makroen fejle derefter.
spørgsmålet: Kan jeg på nogen måde forhindre at denne woeksheet("Skabelon") omdøbes - evt. kan jeg nøjes med en msgbox der gør opmærksom på at automatikken er afhængig af at den hedder "skabelon" og ikke andent.
kan den oplysning, at den i project-træet hedder "Sheet42(Skabelon)" evt. udnyttes til at kontrollere at den hedder det rigtige?
Jeg kan ikke finde noget direkte på, at når der bliver ændret arknavn. Men har sat den til at tjekke når arket bliver aktivt, inaktivt og der bliver ændret i arket.
Private Sub Worksheet_Activate() Dim navn As String navn = "Skabelon" If Not Sheets(42).Name = navn Then MsgBox "Du har ændret navnet på arket", vbCritical, "Arket har fået nyt navn" 'Sheets(42).Name = navn End If End Sub Private Sub Worksheet_Deactivate() Dim navn As String navn = "Skabelon" If Not Sheets(42).Name = navn Then MsgBox "Du har ændret navnet på arket", vbCritical, "Arket har fået nyt navn" 'Sheets(42).Name = navn End If End Sub Private Sub Worksheet_Change(ByVal Target As Range) Dim navn As String navn = "Skabelon" If Not Sheets(42).Name = navn Then MsgBox "Du har ændret navnet på arket", vbCritical, "Arket har fået nyt navn" 'Sheets(42).Name = navn End If End Sub
Hvis dit problem bare er at du i koden refererer til Worksheets("Skabelon"), så kan du i stedet referere til det interne navn som er sheet42.
Fx Sheet42.Range("A1").value = 1 i stedet for Worksheets("Skabelon").Range("A1").Value = 1
etc.
Og du kan også ændre det interne navn til at være noget mere sigende, jeg plejer at bruge prefixet ws, fx wsSkabelon. Du ændrer det interne navn i properties-arket, som du får vist ved at trykke F4 eller "View->Properties Window" i menuen.
Når du så klikker på dit skabelon-sheet kan du se i properties-vinduet at (Name) er lig Sheet42, hvilket du blot kan ændre til fx wsSkabelon.
Dette løser selvf. kun dit problem, hvis ikke du bruger "Skabelon"-navnet til andet end at referere til det specifikke worksheet.
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.