Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketProtect - Tillad baggrundsfarve ændres på celler

 Besvar Besvar
Forfatter
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Emne: Protect - Tillad baggrundsfarve ændres på celler
    Sendt: 24.Jan.2019 kl. 13:43
Hej Forum.

Jeg fandt en kode på nettet, der tillader en baggrundsfarve ændres på en celle på OnFocus.
Og når den er OffFocus, ændres farven tilbage til Previous.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static oPrev As Range
    
    On Error Resume Next
    oPrev.FormatConditions.Delete
    Target.FormatConditions.Add(Type:=xlExpression, Formula1:=True).Interior.Color = vbYellow
    Set oPrev = Target
End Sub
Men det virker kun, når fanen er ubeskyttet.

For at det skal virke når fanen er beskyttet, skal der tilføjes en settings til Beskyttelses-koden - Her nedenunder med rødt.
Ps. Jeg har et fast Password stående i Sheets("ArkIndstil").Range("Q1"), der kan ændres via en Userform.
    myPassword = Sheets("ArkIndstil").Range("Q1").Value
    Sheets("Forside").Protect Password:=myPassword, AllowFormattingCells:=True
Desværre låser det også samtidigt al formattering af cellen op OnFocus og det må den ikke Cry

Jeg har prøvet, om jeg kan tilføje lnterior.Color til koden, men det kan jeg ikke få til at virke.

Faktisk må cellen slet ikke kunne formatteres på nogle måder.
Baggrundsfarven skal bare skifte OnFocus og tilbage igen OffFocus.

Er der en eller anden, der har en god ide ?

Mvh.
Ib

Ps igen - Jeg vil også lave en Settings, hvor man kan slå baggrundsfarven Til og Fra.
If Userform.CheckBox = True Then - osv.

Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top



Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 24.Jan.2019 kl. 17:19
Hej igen Søren.

Du gav mig faktisk en god ide og den ser ud til at virke.

Jeg har en fane, hvor der er en masse forskellige indstillinger.
Og her har jeg en masse forskellige celler, hvor den sætter en værdi, hvis jeg indstiller et eller andet.
Jeg kalder værdierne "Kontakter" eller "Triggere" og de er rare at have.

F.eks.
- Når jeg kører koden, der beskytter arket, sætter den værdien "Ja" i en celle.
- Når jeg fjerne arkbeskyttelsen, sætter den værdien"Nej" i samme celle.
På den måde kan jeg styre, hvordan arket skal opføre sig med en IF - THEN - ELSE.

Jeg fandt koden, der kunne vise en baggrundsfarve i en celle, når man stillede sig i den.
Og gå tilbage til den oprindelige baggrundsfarve, når man forlod cellen igen.

Nu skulle jeg så bare finde en kode, der deaktiverede popup ved højreklik på en celle og den fandt jeg også.

- Koderne nedenunder indsættes på den fane, man ønsker den skal virke på - F.eks. Ark1.
- Hvis de skal virke på hele arket og ikke kun på en fane, indsættes de i ThisWorkbook.

Når jeg tjekker CheckBoxen i arket Settings af, at den skal vise baggrundsfarve, skriver den "Ja" i Sheets("ArkIndstil").Range("Q15").
Ellers skriver den "Nej" i samme celle.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'-------------------'
' Cellefarve Ja/Nej '
'-------------------'
    Static oPrev As Range
    
    If Sheets("ArkIndstil").Range("Q15") = "Nej" Then
        Exit Sub
    Else
        On Error Resume Next
        oPrev.FormatConditions.Delete
        Target.FormatConditions.Add(Type:=xlExpression, Formula1:=True).Interior.Color = vbYellow
        Set oPrev = Target
    End If
End Sub

Når jeg beskytter arket skriver den "Ja" i Sheets("ArkIndstil").Range("Q16").
Ellers skriver den "Nej" i samme celle.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'----------------------------'
' Popup ved højreklik Ja/Nej '
'----------------------------'
    If Sheets("ArkIndstil").Range("Q16") = "Ja" Then
        Cancel = True
    Else
        Cancel = False
    End If
End Sub

Mvh.
Ib
Til top
Søren Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 01.Okt.2012
Land: Danmark
Status: Offline
Point: 7
Direkte link til dette indlæg Sendt: 24.Jan.2019 kl. 16:10
Hej Ib
Prøv at optage hele forløbet.
Det løser oftest udfordringerne.
VH
Søren
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 24.Jan.2019 kl. 16:17
Hej Søren.

Jeg forstår ikke helt, hvad du mener ?

Mvh.
Ib
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 24.Jan.2019 kl. 17:19
Hej igen Søren.

Du gav mig faktisk en god ide og den ser ud til at virke.

Jeg har en fane, hvor der er en masse forskellige indstillinger.
Og her har jeg en masse forskellige celler, hvor den sætter en værdi, hvis jeg indstiller et eller andet.
Jeg kalder værdierne "Kontakter" eller "Triggere" og de er rare at have.

F.eks.
- Når jeg kører koden, der beskytter arket, sætter den værdien "Ja" i en celle.
- Når jeg fjerne arkbeskyttelsen, sætter den værdien"Nej" i samme celle.
På den måde kan jeg styre, hvordan arket skal opføre sig med en IF - THEN - ELSE.

Jeg fandt koden, der kunne vise en baggrundsfarve i en celle, når man stillede sig i den.
Og gå tilbage til den oprindelige baggrundsfarve, når man forlod cellen igen.

Nu skulle jeg så bare finde en kode, der deaktiverede popup ved højreklik på en celle og den fandt jeg også.

- Koderne nedenunder indsættes på den fane, man ønsker den skal virke på - F.eks. Ark1.
- Hvis de skal virke på hele arket og ikke kun på en fane, indsættes de i ThisWorkbook.

Når jeg tjekker CheckBoxen i arket Settings af, at den skal vise baggrundsfarve, skriver den "Ja" i Sheets("ArkIndstil").Range("Q15").
Ellers skriver den "Nej" i samme celle.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'-------------------'
' Cellefarve Ja/Nej '
'-------------------'
    Static oPrev As Range
    
    If Sheets("ArkIndstil").Range("Q15") = "Nej" Then
        Exit Sub
    Else
        On Error Resume Next
        oPrev.FormatConditions.Delete
        Target.FormatConditions.Add(Type:=xlExpression, Formula1:=True).Interior.Color = vbYellow
        Set oPrev = Target
    End If
End Sub

Når jeg beskytter arket skriver den "Ja" i Sheets("ArkIndstil").Range("Q16").
Ellers skriver den "Nej" i samme celle.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'----------------------------'
' Popup ved højreklik Ja/Nej '
'----------------------------'
    If Sheets("ArkIndstil").Range("Q16") = "Ja" Then
        Cancel = True
    Else
        Cancel = False
    End If
End Sub

Mvh.
Ib
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk