Avatar billede Kristian H Nybegynder
26. november 2012 - 08:23 Der er 2 kommentarer og
1 løsning

VBA: Problem med Worksheet_Activate()

Hej Excel eksperter

For at beskytte mit Excel har mod sletning af udvalgte Sheets, fandt jeg en kodestump på nettet som kunne hjælpe i mod dette.

Den første del af koden blev smidt ind i de sheets som jeg ville beskytte

'==========================>>
Private Sub Worksheet_Activate()
Dim CB As CommandBar
Dim Ctrl As CommandBarControl
For Each CB In Application.CommandBars
Set Ctrl = CB.FindControl(ID:=847, recursive:=True)
If Not Ctrl Is Nothing Then
Ctrl.OnAction = "RefuseToDelete"
Ctrl.State = msoButtonUp
End If
Next
End Sub

'-----------------------------------

Private Sub Worksheet_Deactivate()
Dim CB As CommandBar
Dim Ctrl As CommandBarControl
For Each CB In Application.CommandBars
Set Ctrl = CB.FindControl(ID:=847, recursive:=True)
If Not Ctrl Is Nothing Then Ctrl.OnAction = ""
Next
End Sub
'<<==========================


Den anden del af koden blev lagt i et module.


Public Sub RefuseToDelete()

MsgBox "This help sheet should not be deleted!", _
Buttons:=vbExclamation, _
Title:="Cannot Deelete Help!"

End Sub


Koden virkede rigtig fint, men lige pludselig var alle Sheets omfattet af denne kode, og det var ikke muligt at slette nogen sheets. Jeg valgte derfor at slette den indsatte kode da min workbook også består at sheets som skal slettes. Efter jeg fjernede koden er det stadig ikke muligt at slette sheets.

Selvom ingen af mine sheets har en Worksheet_Activate() eller Worksheet_Deactivate() bliver RefuseToDelete() kaldt hver gang jeg prøver at slette et sheet. Hvordan kommer jeg af med dette problem?
Avatar billede tjp Mester
26. november 2012 - 10:12 #1
Hvad om du lige kørte Worksheet_Deactivate() en enkelt gang i VBE? Så bliver alle OnAction's på Delete Sheet sat til "" i stedet for "RefuseToDelete".
Avatar billede Kristian H Nybegynder
29. november 2012 - 08:24 #2
Did the trick. Smid et svar.
Avatar billede tjp Mester
29. november 2012 - 10:41 #3
Nice. Here U R...
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
Kurser inden for grundlæggende programmering

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