Avatar billede jath08ac Forsker
28. juli 2016 - 13:26 Der er 17 kommentarer

Lås celle på baggrund af tekst farve

Hej,
Vil høre om det er muligt at låse celler for redigering med en bestemt tekst farve.?

Farven er rød.

På forhånd tak
Avatar billede jath08ac Forsker
28. juli 2016 - 13:30 #1
Manglede lige at nævne, at VBA koden også gerne må beskytte celler som indeholde en formel/henvisning til andre celler.
Avatar billede supertekst Ekspert
28. juli 2016 - 13:39 #2
Skal det ske på "kommando" eller ved ændring?
Avatar billede jath08ac Forsker
29. juli 2016 - 12:51 #3
Det skal ske på kommando vha, af en knap, koden skal gælde for Fane 1 og Fane 2.
Avatar billede supertekst Ekspert
29. juli 2016 - 13:34 #4
Ok vender tilbage
Avatar billede jath08ac Forsker
29. juli 2016 - 13:53 #5
Det lyder meget fornemt. Tak for det.
Avatar billede supertekst Ekspert
29. juli 2016 - 15:05 #6
Version 1:

Rem VBA-kode placeres i ThisWorkbook
Rem ================================
Const faneNavne = "Ark1,Ark2"
Const tekstFarveRød = 255
Const adgangskode = "xx"

Dim antalRæk As Integer, antalKol As Integer
Public Sub låsCellerPåBetingelser()
Dim f As Integer, v As Variant, arkNavn As String, cc
    v = Split(faneNavne, ",")
    For f = 0 To UBound(v)
        arkNavn = v(f)
       
        ActiveWorkbook.Sheets(arkNavn).Activate
        antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
        antalKol = ActiveCell.SpecialCells(xlLastCell).Column
       
        For Each cc In Range(Cells(1, 1), Cells(antalRæk, antalKol))
Rem Er der rød tekst
            If cc.Font.Color = tekstFarveRød Then
                cc.Locked = True
            Else
                If cc.HasFormula = True Then
                    cc.Locked = True
                Else
                    cc.Locked = False
                End If
            End If
        Next cc
        ActiveWorkbook.Sheets(arkNavn).Protect adgangskode
    Next f
Avatar billede jath08ac Forsker
31. juli 2016 - 16:08 #7
Jeg har desværre problemer med koden.

Nedenstående del har jeg indsat i 'Denne_projektmappe':

Rem VBA-kode placeres i ThisWorkbook
Rem ================================
Const faneNavne = "Ark1,Ark2"
Const tekstFarveRød = 255
Const adgangskode = "xx"

Denne del af koden har jeg indsat i et modul:
Public Sub låsCellerPåBetingelser()
Dim f As Integer, v As Variant, arkNavn As String, cc
    v = Split(faneNavne, ",")
    For f = 0 To UBound(v)
        arkNavn = v(f)
       
        ActiveWorkbook.Sheets(arkNavn).Activate
        antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
        antalKol = ActiveCell.SpecialCells(xlLastCell).Column
       
        For Each cc In Range(Cells(1, 1), Cells(antalRæk, antalKol))
Rem Er der rød tekst
            If cc.Font.Color = tekstFarveRød Then
                cc.Locked = True
            Else
                If cc.HasFormula = True Then
                    cc.Locked = True
                Else
                    cc.Locked = False
                End If
            End If
        Next cc
        ActiveWorkbook.Sheets(arkNavn).Protect adgangskode
    Next f
   
End Sub
Avatar billede store-morten Ekspert
31. juli 2016 - 16:39 #8
Det er en kode.

Prøv at samle det hele i 'Denne_projektmappe'
Avatar billede jath08ac Forsker
01. august 2016 - 14:30 #9
Så lykkedes det. Tak for hjælpen
Avatar billede jath08ac Forsker
01. august 2016 - 14:35 #10
Jeg var desværre lidt for hurtig.

Koden fungerer fint nok. Problemet er, at det ikke er muligt, efter at makroen er kørt, at indtaste i celler der er blanke eller som ikke indehold rød tekst eller en formel.
Avatar billede supertekst Ekspert
01. august 2016 - 15:20 #11
Kan godt indtaste i celler, der er uden forbeholdet - så ?
Avatar billede jath08ac Forsker
01. august 2016 - 16:00 #12
Nej, desværre
Avatar billede supertekst Ekspert
01. august 2016 - 16:16 #13
PS: Nok fordi jeg kun har prøvet indenfor dataområder på arkene.
Udenfor er der beskyttelse!
Avatar billede jath08ac Forsker
02. august 2016 - 12:22 #14
Er der mulighed for, at dette område kan blive gjort åben?
Avatar billede store-morten Ekspert
02. august 2016 - 12:49 #15
Jeg får en fejl i makroen, når jeg køre den flere gange?

Du kan prøve manuelt at låse alle celler op.
Tryk på lille firkant over 1 tallet, for at markerer alle celler
Højre-klik på en celle --> Formater celler...
Beskyttelse --> fjern flueben i: låst --> tryk OK

Eller måske tilføje: Cells.Locked = False
i starten af makroen, lige under:
ActiveWorkbook.Sheets(arkNavn).Activate
Avatar billede supertekst Ekspert
02. august 2016 - 13:56 #16
Formater / Beskyttelse / Låst / fjern "flueben"
Indsæt data i ubrugte celler.
Kør makroen - herefter vil også "nye celler" være underlagt de givne regler.
Avatar billede supertekst Ekspert
09. august 2016 - 12:07 #17
Nogen afklaring?
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

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