[VBA Excel] Celbeveiliging inschakelen/uitschakelen

Pagina: 1
Acties:
  • 197 views sinds 30-01-2008
  • Reageer

  • HarryL
  • Registratie: Januari 2003
  • Laatst online: 17-11-2025

HarryL

127.0.0.1

Topicstarter
Ik heb een klein probleempje,

Ik moet een stukje code uitvoeren, die de celbeveiliging uitschakeld op een bepaalde range, dan code uitvoerd en dan weer de celbeveiliging inschakeld.
Op dit moment heb ik deze code, maar dit verloopt niet foutloos...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Private Sub Worksheet_Activate()
range("A3:J3").Select
ActiveRange.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False
Dim ColumnWidth As Boolean

If ColumnWidth = False Then

'Kolommen A en B worden 14 breed
Columns("A:B").ColumnWidth = 14
Columns("C:J").ColumnWidth = 8
'Rij 3 wordt 50 hoog
Rows("3:3").RowHeight = 64.5

    range("C3:J3").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 90
        .AddIndent = False
        .ShrinkToFit = False
        .MergeCells = False
    End With
    
    range("C3:J3").Select
    With Selection.Font
        .Name = "Arial"
        .Size = 8
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    
Else

range("B1").Select
End If

range("A3:J3").Select
ActiveRange.Protect DrawingObjects:=True, Contents:=True, Scenarios:=False
range("B1").Select
gemiddelde
End Sub


Waarom dit niet werkt, begrijp ik niet ,want volgens mij zou het zo moeten werken...

I have gone to find myself, if I get back before I return, Please keep me here! PSNID: djmagich


  • FireWood
  • Registratie: Augustus 2003
  • Nu online
Record eens een stuk vba en je weet het dan direct, is de makkelijkste manier. Hoe het precies moet weet ik ook niet, maar bij mij gaat het recorden altijd het snelst en dan pas gaan aanpassen.

Noobs don't use "F1", Pro's do, but they can't find the information they needed


Verwijderd

beveiliging opheffen gaat met unprotect:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub unprotectchangeprotect()
  With ActiveSheet
    .Unprotect
    With Range("C3:J3")
      .HorizontalAlignment = xlCenter
      .VerticalAlignment = xlBottom
      .WrapText = False
      .Orientation = 90
      .AddIndent = False
      .ShrinkToFit = False
      .MergeCells = False
      With .Font
        .Name = "Arial"
        .Size = 8
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
      End With
    End With
    .Protect DrawingObjects:=True, contents:=True
  End With
End Sub


tss haakjes:de code drinkt thee. :z

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

DjMaGiCh schreef op 27 september 2004 @ 16:43:
Ik moet een stukje code uitvoeren, die de celbeveiliging uitschakeld op een bepaalde range, dan code uitvoerd en dan weer de celbeveiliging inschakeld.
Op dit moment heb ik deze code, maar dit verloopt niet foutloos...
[...]
Waarom dit niet werkt, begrijp ik niet ,want volgens mij zou het zo moeten werken...
Tja, volgens microsoft werkt het zó niet; en ik ben bang dat je het tegen hen aflegt :). Protect is een methode van een worksheet/workbook/chart en niet van een range, maar dat had je zelf ook kunnen lezen als je op help had geklikt.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland