Avatar billede Fisk Novice
01. juli 2016 - 11:28 Der er 8 kommentarer og
1 løsning

Betinget lås af enkelte celler

Hej

Jeg skal lave en "regnemaskine" i excel på mit arbejde. I "maskinen" er der bl.a. 3 felter som ikke må kunne udfyldes samtidig. Dvs. hvis celle B8 bliver udfyldt, skal B9 og B10 låse. På samme skal B8 og B10 låse, hvis B9 bliver udfyldt osv. Allerhelst skal de låste felter også skifte farve (til grå), når de bliver låst, så det er tydeligt at de ikke kan udfyldes.

Jeg kan regne ud at jeg skal bruge en makro, men jeg har ikke prøvet den slags før. Er der nogen der kan hjælpe mig?

Mvh Fisk
Avatar billede finb Ekspert
01. juli 2016 - 11:47 #1
Datavalidering:
I  B8´s datavalidering skriver du =og(er.ikke.tom(B9);er.ikke.tom(B10))
I  B9´s datavalidering skriver du =og(er.ikke.tom(B8);er.ikke.tom(B10))
I B10´s datavalidering skriver du =og(er.ikke.tom(B8);er.ikke.tom(B9))
Avatar billede Fisk Novice
01. juli 2016 - 11:56 #2
Altså, jeg kan gøre det under datavalidering? Under indstillinger og tillad? Jeg kan ikke helt se hvordan - kan du guide mig?
Avatar billede finb Ekspert
01. juli 2016 - 12:11 #3
Data >> Datavalidering
Avatar billede Fisk Novice
01. juli 2016 - 12:15 #4
Dertil kan jeg godt komme. Under datavalidering går jeg ud fra det er indstillinger - men hvad skal jeg vælge?
Avatar billede Jessen Seniormester
01. juli 2016 - 12:53 #5
Du skal vælge kategorien 'Brugerdefineret', og herunder lave en formel som resulterer i 0/1 eller Sand/Falsk. Hertil kan du brug 'finb's formler ovenfor.
Avatar billede Fisk Novice
01. juli 2016 - 13:09 #6
Så siger den jeg har "angivet navnet på et område, der ikke eksisterer". Der er en rulleliste i cellen lige nu. Kan det være derfor det driller?
Avatar billede store-morten Ekspert
01. juli 2016 - 14:13 #7
Til #1 finb, eksisterer syntaksen: ER.IKKE.TOM() i din version af Excel?
Avatar billede store-morten Ekspert
03. juli 2016 - 15:40 #8
Prøv:

Betinget formatering: Brug en formel til at bestemme, hvilken celler der skal formateres. (Grå baggrundsfarve)
B8: Formlen er: =OG(ER.TOM(B9);ER.TOM(B10))=FALSK
B9: Formlen er: =OG(ER.TOM(B8);ER.TOM(B10))=FALSK
B10: Formlen er: =OG(ER.TOM(B8);ER.TOM(B9))=FALSK

Datavalidering: Liste

Makro til at låse celler:
Dim flag As Boolean              '<--
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tar As String

    If Not Intersect(Target, Range("B8:B10")) Is Nothing And flag = False Then
        flag = True '<--
       
    tar = Target.Address
    On Error GoTo err

    Select Case tar
        Case Is = "$B$8"
        If Not IsEmpty(Target.Offset(1, 0)) _
        Or Not IsEmpty(Target.Offset(2, 0)) Then
        Target = ""
        End If
       
    Case Is = "$B$9"
        If Not IsEmpty(Target.Offset(-1, 0)) _
        Or Not IsEmpty(Target.Offset(1, 0)) Then
        Target = ""
        End If

    Case Is = "$B$10"
        If Not IsEmpty(Target.Offset(-1, 0)) _
        Or Not IsEmpty(Target.Offset(-2, 0)) Then
        Target = ""
        End If
       
    Case Else
        Exit Sub
    End Select
err:
End If
        flag = False            '<--
End Sub
Avatar billede Fisk Novice
04. juli 2016 - 10:00 #9
Det virker! Fantastisk! Tusind tak for hjælpen.
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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