Avatar billede Butterfly Ekspert
28. februar 2024 - 10:54 Der er 3 kommentarer og
1 løsning

Lås celler hvis

Hej
Er det muligt at lave noget VBA der låser celler hvis de indeholder en bestemt tekst?
Jeg har et regneark H4:AE370, hvor jeg gerne vil have låst alle celler hvor der står O, og alle andre låst op.
Avatar billede MaxZpaD Guru
28. februar 2024 - 11:38 #1
Jeg tænker noget i stil med dette:

Sub sub_lock_cells()
    Dim sht As Worksheet
    Dim rng_cell As Range
    Set sht = ThisWorkbook.Sheets("Ark1")
    For Each rng_cell In sht.UsedRange.Cells
        With rng_cell
            If .Value = "O" Then
                .Locked = True
            Else
                .Locked = False
            End If
        End With
    Next rng_cell
    With sht
        If Not .ProtectContents Then
            'Beskyt arket (uden kodeord)
            .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        End If
    End With
End Sub

Bemærk at det kun giver mening at låse celler, når man efterfølgende beskytter arket.
Avatar billede MaxZpaD Guru
28. februar 2024 - 11:39 #2
Hov - det skal være sådan her i dit ark, dvs. inden for et begrænset område/range:

For Each rng_cell In sht.range("H4:AE370")
Avatar billede Dan Elgaard Ekspert
28. februar 2024 - 12:14 #3
MaxZpaD's kode er fin, men måske burde man enten låse arket op først (i VBA koden), eller også benytte UserInterfaceOnly når man låser.

(Eller gøre begge dele, faktisk, da UserInterfaceOnly nulstilles næste gang arket åbnes)
Avatar billede Butterfly Ekspert
28. februar 2024 - 13:39 #4
Tusind tak for hjælpen, lige hvad jeg har brug for
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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