Avatar billede HHA Professor
07. januar 2021 - 12:44 Der er 10 kommentarer og
2 løsninger

Makro, skifte tekst farve i en celle i den eller de markerede rækker

Hejsa,

Prøver at få nedenstående til at virke, men den driller.
Det er en knap jeg har tildelt en makro.
Den skal i den eller de markerede rækker sætte NEJ i celle B og Ja i celle M, den skal ligeledes ændre farven på teksten i celle D.

Dem virker ikke med hensyn til farven og heller ikke ved markering af flere rækker.

Hvad mangler jeg, ud over mere viden til programmering?

Sub Estm_Knap()
'
' Estm_Knap Makro
' Sætter celle B til NEJ og M til JA, tekst i celle D grønlig, i den markerede række(r)
'
 

Dim R1
R1 = Selection.Rows(1).Row

Range(Cells(R1, 2), Cells(R1, 2)) = "Nej"
Range(Cells(R1, 13), Cells(R1, 13)) = "Ja"
Range(Cells(R1, 4), Cells(R1, 4)) = Font.Color = RGB (131.200.130)

End Sub
Avatar billede Jan K Ekspert
07. januar 2021 - 14:50 #1
Du kan ikke skriveb=Font.Color, da det er en egenskab ved cellen ligesom Color er en egenskab ved Font. Så du skanl bruge niget i stil med

Range(....).Font.Color = RGB(131,200,130)
Avatar billede HHA Professor
07. januar 2021 - 15:28 #2
Hej Jan K,

Takker det virkede på det med farven 👍

Har du en løsning på hvorfor det ikke virker hvis jeg markerer flere celler, altså 1 i hver række, fx 3 celler i en kolonne?
Avatar billede jens48 Ekspert
07. januar 2021 - 15:58 #3
Prøv med

Sub Estm_Knap()
'
' Estm_Knap Makro
' Sætter celle B til NEJ og M til JA, tekst i celle D grønlig, i den markerede række(r)
'
Dim R1, RT
R1 = Selection.Rows(1).Row
RT = Selection.Rows.Count
For x = R1 To R1 + RT
Range(Cells(x, 2), Cells(x, 2)) = "Nej"
Range(Cells(x, 13), Cells(x, 13)) = "Ja"
Range(Cells(x, 4), Cells(x, 4)).Font.Color = RGB(131, 200, 130)
Next
End Sub
Avatar billede jens48 Ekspert
07. januar 2021 - 16:05 #4
Den tog en linje foe meget med. Her er det rettet.

Dim R1, RT
R1 = Selection.Rows(1).Row
RT = Selection.Rows.Count
For x = R1 To R1 + RT - 1
Range(Cells(x, 2), Cells(x, 2)) = "Nej"
Range(Cells(x, 13), Cells(x, 13)) = "Ja"
Range(Cells(x, 4), Cells(x, 4)).Font.Color = RGB(131, 200, 130)
Next
End Sub
Avatar billede store-morten Ekspert
07. januar 2021 - 16:56 #5
Prøver også en lille en:
Sub Estm_Knap()

Dim c As Range
Dim i As Long

For Each c In Selection.Cells
    i = c.Row

    Range("B" & i) = "Nej"
    Range("M" & i) = "Ja"
    Range("D" & i).Font.ColorIndex = 4

Next c
End Sub
Avatar billede HHA Professor
07. januar 2021 - 17:35 #6
Hej jens48,

Virker næsten.
Den tager dog linjen med under de markerede celler.
Avatar billede jens48 Ekspert
07. januar 2021 - 17:40 #7
Ja, det opdagede jeg. Derfor rettelsen i  #4
Avatar billede HHA Professor
07. januar 2021 - 17:47 #8
Hej jens48 og store-morten,

Takker for jeres vilje til at hjælpe når det driller vi andre der tror vi kan :)

👍👍👍
Avatar billede store-morten Ekspert
07. januar 2021 - 18:12 #9
Der er en lille forskel på de to :-)

Min i #5 kan bruges med spredte markerede celler, f.eks. række 3,5, 8 og 10
Avatar billede HHA Professor
07. januar 2021 - 18:14 #10
store-morten,

Din kode ændrer ikke teksten til en anden farve.
Jeg kan ikke lige gennemskue hvad der er galt.
Avatar billede HHA Professor
07. januar 2021 - 18:15 #11
Takken skal da også lyde til dig Jan K.
Glemte lige dig i takken 😁
Avatar billede HHA Professor
07. januar 2021 - 18:23 #12
store-morten,

Det virker fint, havde lige en fejl 40 her :)

God aften til jer.
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