Avatar billede jensenil Nybegynder
15. oktober 2006 - 22:49 Der er 23 kommentarer og
1 løsning

Hvilken funktion skal man bruge

Jeg står overfor at skulle lave en formel som skal skifte baggrundsfarve på en celle afhængig af, hvad man indtaster i cellen. Jeg kan ikke bruge betinget formatering, da man kun kan lave 3 udvælgelse. Jeg skal bruge op til 7 skifte. Jeg håber at en eller anden kan hjælpe mig med problemet.

På forhånd tak
Avatar billede gider_ikke_mere Nybegynder
15. oktober 2006 - 22:57 #1
Så er du nok nødt til at lave det som en makro der kører ved WorkSheet_Change.
Avatar billede jensenil Nybegynder
15. oktober 2006 - 23:01 #2
Hvordan gør man det?
Avatar billede gider_ikke_mere Nybegynder
15. oktober 2006 - 23:02 #3
Er det for en eller flere celler du skal bruge det?
Avatar billede gider_ikke_mere Nybegynder
15. oktober 2006 - 23:02 #4
Og hvad skal du checke for?
Avatar billede mrjh Novice
15. oktober 2006 - 23:03 #5
Indsæt denne i dit ark modul. tilføj selv flere case betingelser


Private Sub worksheet_change(ByVal target As Range)

With target

Select Case target.Value
Case "A"
.Interior.ColorIndex = 4
Case "B"
.Interior.ColorIndex = 5
Case Else
.Interior.ColorIndex = xlNone
End Select

End With

End Sub
Avatar billede jensenil Nybegynder
15. oktober 2006 - 23:07 #6
Den skal bruges over flere celler. Den skal fx skifte baggrundsfarve til blå hvis man skriver F21 i en celle og til grøn hvis man skriver F46.
Avatar billede gider_ikke_mere Nybegynder
15. oktober 2006 - 23:09 #7
Tryk Alt+F11, dobb. klik på ark1(ark1), og sæt denne tekst ind:

Private Sub Worksheet_Change(ByVal Target As Range)
Vaerdi = Target.Value
    With Selection.Interior
Select Case Vaerdi
    Case "1"
        .ColorIndex = 46
    Case "2"
        .ColorIndex = 3
    Case "ja"
        .ColorIndex = 2
    Case Else
End Select
    .Pattern = xlSolid
End With
End Sub
Avatar billede gider_ikke_mere Nybegynder
15. oktober 2006 - 23:10 #8
Hov mrjh. Så ikke lige du var der.
Avatar billede mrjh Novice
15. oktober 2006 - 23:12 #9
Virker kun inden for A1:C100 f.eks.

Private Sub worksheet_change(ByVal target As Range)
If Not Intersect(Range("A1:C100"), target) Is Nothing Then
With target
    Select Case target.Value
        Case "A"
        .Interior.ColorIndex = 4
        Case "B"
        .Interior.ColorIndex = 5
        Case Else
        .Interior.ColorIndex = xlNone
    End Select
End With
End If
End Sub
Avatar billede mrjh Novice
15. oktober 2006 - 23:14 #10
Ok akyhne, så prøver jeg også lige at opdatere :-)
Ser ud til vi foreslår næsten det samme
Avatar billede jensenil Nybegynder
16. oktober 2006 - 22:38 #11
Jeg har kigget på eksempel, men jeg er hele ny, hvad angår VBA og kan ikke finde ud af hvad jeg skal gøre for at få den til at virke.
Avatar billede gider_ikke_mere Nybegynder
17. oktober 2006 - 07:59 #12
Åbn Excel, tryk Alt+F11 for at komme i VBA editoren. Dobbeltklik på Ark1(Ark1) i øverste venstre hjørne, smid koden ind. Gå tilbage til arket og test.
Avatar billede jensenil Nybegynder
17. oktober 2006 - 10:45 #13
Det har jeg prøvet, men det virker ikke. Skal man ikke skrive et eller andet sted i koden, hvad der skal stå i celler før den skifter farve.
Avatar billede mrjh Novice
17. oktober 2006 - 10:55 #14
Du skal ændre "A", "B" o.s.v. til din egen tekst lige efter Case i koden. Altså

Private Sub worksheet_change(ByVal target As Range)
If Not Intersect(Range("A1:C100"), target) Is Nothing Then
With target
    Select Case target.Value
        Case "DIN TEKST"
        .Interior.ColorIndex = 4
        Case "DIN TEKST"
        .Interior.ColorIndex = 5
        ' O.s.v.

Case Else
        .Interior.ColorIndex = xlNone
    End Select
End With
End If
End Sub
Avatar billede mrjh Novice
17. oktober 2006 - 10:57 #15
Farverne ændrer du efter .interior.colorindex = Farvekode
Avatar billede jensenil Nybegynder
17. oktober 2006 - 13:40 #16
Hvor kan man finde oversigt over farvekoderne
Avatar billede mrjh Novice
17. oktober 2006 - 13:48 #17
Avatar billede jensenil Nybegynder
17. oktober 2006 - 13:55 #18
Tak for hjælpen. Gider du at give et svar så du kan få dine point
Avatar billede mrjh Novice
17. oktober 2006 - 13:56 #19
Selvtak. Du får et svar. Fik du det til at virke ?
Avatar billede jensenil Nybegynder
17. oktober 2006 - 13:58 #20
Ja. Jeg fik det til at virke.
Avatar billede herremanden Nybegynder
06. februar 2007 - 12:46 #21
Hej
Jeg er meget interesseret i ovennævnte med farvekoderne. Jeg er ikke ekspert i VBA, men har dog indspillet en del makroer.

Når jeg i editoren indspiller ovennævnte kode for senere at redigere den, bliver den ikke gemt. Dvs. når jeg går tilbage til mit xls. ark er der ingen makro. Hvad gør jeg galt - virker jo som makroen ikke bliver gemt?

Hilsen
Elmer

PS! Bær over med mig, er helt ny bruger
Avatar billede herremanden Nybegynder
07. februar 2007 - 03:08 #22
Nu fandt jeg selv ud af det :-)

Skal programmet returnere en farvekode med værdien indeholdt i cellen, kan man skrive dette program. Det er relativt hurtigt at koipere og editiere, hvis det er et stort program. Jeg erfarede af VBA kun kunne have ca. 600 linier ad gangen, så jeg måtte lave mange moduler.

Indtast nedenstående i VBA: (Celler og farvekoder  er tilfældige)
sub Farve()
If Range("c8") = 0 Then Range("c8").Interior.ColorIndex = 2
If Range("c8") = 1 Then Range("c8").Interior.ColorIndex = 15
If Range("c8") = 2 Then Range("c8").Interior.ColorIndex = 3
If Range("c8") = 3 Then Range("c8").Interior.ColorIndex = 20
If Range("c8") = 4 Then Range("c8").Interior.ColorIndex = 27
If Range("c8") = 5 Then Range("c8").Interior.ColorIndex = 4
If Range("d8") = 0 Then Range("d8").Interior.ColorIndex = 2
If Range("d8") = 1 Then Range("d8").Interior.ColorIndex = 15
If Range("d8") = 2 Then Range("d8").Interior.ColorIndex = 3
If Range("d8") = 3 Then Range("d8").Interior.ColorIndex = 20
If Range("d8") = 4 Then Range("d8").Interior.ColorIndex = 27
If Range("d8") = 5 Then Range("d8").Interior.ColorIndex = 4
If Range("e8") = 0 Then Range("e8").Interior.ColorIndex = 2
If Range("e8") = 1 Then Range("e8").Interior.ColorIndex = 15
If Range("e8") = 2 Then Range("e8").Interior.ColorIndex = 3
If Range("e8") = 3 Then Range("e8").Interior.ColorIndex = 20
If Range("e8") = 4 Then Range("e8").Interior.ColorIndex = 27
If Range("e8") = 5 Then Range("e8").Interior.ColorIndex = 4
If Range("c9") = 0 Then Range("c9").Interior.ColorIndex = 2
If Range("c9") = 1 Then Range("c9").Interior.ColorIndex = 15
If Range("c9") = 2 Then Range("c9").Interior.ColorIndex = 3
If Range("c9") = 3 Then Range("c9").Interior.ColorIndex = 20
If Range("c9") = 4 Then Range("c9").Interior.ColorIndex = 27
If Range("c9") = 5 Then Range("c9").Interior.ColorIndex = 4
If Range("d9") = 0 Then Range("d9").Interior.ColorIndex = 2
If Range("d9") = 1 Then Range("d9").Interior.ColorIndex = 15
If Range("d9") = 2 Then Range("d9").Interior.ColorIndex = 3
If Range("d9") = 3 Then Range("d9").Interior.ColorIndex = 20
If Range("d9") = 4 Then Range("d9").Interior.ColorIndex = 27
If Range("d9") = 5 Then Range("d9").Interior.ColorIndex = 4
If Range("e9") = 0 Then Range("e9").Interior.ColorIndex = 2
If Range("e9") = 1 Then Range("e9").Interior.ColorIndex = 15
If Range("e9") = 2 Then Range("e9").Interior.ColorIndex = 3
If Range("e9") = 3 Then Range("e9").Interior.ColorIndex = 20
If Range("e9") = 4 Then Range("e9").Interior.ColorIndex = 27
If Range("e9") = 5 Then Range("e9").Interior.ColorIndex = 4

Hilsen
Mogens
Avatar billede gider_ikke_mere Nybegynder
07. februar 2007 - 14:08 #23
Er det store områder er det bedre med noget lignende:

Sub FarvFelter()
Dim X As Range
Dim Y As Range
Set Y = Range("C8:E8")
For Each X In Y
    If X = "0" Then
        X.Interior.ColorIndex = 2
    Else
        X.Interior.ColorIndex = 0
    End If
Next
End Sub
Avatar billede herremanden Nybegynder
08. februar 2007 - 12:14 #24
Tak Akyhne, det fungerer faktisk.

Nu ike fordi jeg har lavet så meget arbejde, som min kopiering antyder. Editoren har lavet det meste. Men den lettere udgave har også specielt det gode, at man ikke behøver samle kommandoerne i flere moduler. Tilsyneladende kan den enkelte makro kun konsumere ca. 600 linier.

Hilsen
Mogens
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