Avatar billede pejsen Nybegynder
19. oktober 2005 - 21:01 Der er 26 kommentarer og
2 løsninger

Farvelægge celler efter forskellige kriterier

Hej

Jeg ved intet om VBA-excel. Derfor vil jeg gerne have hjælp med en vejledning til at lave en makro der kan farvelægge cellerne i en kollone med op til 20 forskellige farver.
Cellerne er lavet med Datavalidering med 20 forskelige ord så som :

Fri
Syg
Ferie
Kursus
Aftenhold
Daghold
mv....

Jeg vil gerne give hvert udtryk i den de respektive celler en unik farve, gerne alle cellerne til venstre for udtrykket eks.:

Datavalideringen er lavet i kollonnen H1:H50 via en Rulleliste i hver celle.
Når jeg så vælger udtrykket "Fri" fra Rullelisten i H10, så vil gerne at cellerne fra A10, B10,C10,D10,E10,F10,G10,H10, blev farvelagt med en rød farve, hvis ikke det kan lade sig gøre så skal Cellen H10 i hvertfald blive rød.

Det eneste jeg kender til VB-koder er at man kan kopier noget VB-kode ind ved hjælp at højre klikke på Ark-Fanebladet og vælg "Vis programkode"..... :-(((

Er der nogen som vil lærer mig lidt VB

Mvh Jan
Avatar billede pejsen Nybegynder
19. oktober 2005 - 21:06 #1
Har overvejet et kursus i Excel-VBA hos http://www.it-fjernundervisning.dk/
Er der andre websteder, hvor jeg kan hente inspiration og hjælp til VBA-kode på begynderniveau

Mvh Jan
Avatar billede brynil Nybegynder
19. oktober 2005 - 21:15 #2
Kan du bruge noget som dette:

Sub Colorize()
Dim i As Integer

For i = 1 To 4
    Select Case Cells(i, 1).Value
        Case "fri"
            Cells(i, 1).Interior.ColorIndex = 3
        Case "syg"
            Cells(i, 1).Interior.ColorIndex = 4
    End Select
Next i

End Sub
Avatar billede pejsen Nybegynder
19. oktober 2005 - 21:19 #3
Hej Brynil

1)Hvad betyder For i = 1 To 4???
2)Kan jeg umiddelbart indsætte den kode ved hjælp af Copy???

Jan
Avatar billede brynil Nybegynder
19. oktober 2005 - 21:20 #4
Øjeblik, skal lige tilpasse den lidt mere.
Avatar billede brynil Nybegynder
19. oktober 2005 - 21:31 #5
' antal rækker der skal gennemløbes (H1 til H50)
For i = 1 to 50
'Hvilken celle/kolonne skal valideres (H, dvs. 8)
    Select Case Cells(i,8).Value
' Opret en Case for hver tekststreng der skal undersøges. Jeg viser hér 2:
        Case "fri"
' Smid en farve i cellen afhængigt af indholdet
            Cells(i,8).Interior.ColorIndex = 3
        Case "syg"
            Cells(i,8).Interior.ColorIndex = 4
' .... flere cases
' Afslut cases med denne..
        Case Else
            Cells(i,8).Interior.ColorIndex = 2
'Afslut Select og fortsæt loop
    End Select
Next i

Det ser rodet ud. Her uden kommentarer:

Sub Colorize()
For i = 1 to 50
    Select Case Cells(i,8).Value
        Case "fri", "Fri"
            Cells(i,8).Interior.ColorIndex = 3
        Case "syg", " "Syg"
            Cells(i,8).Interior.ColorIndex = 4

' indsæt selv flere cases

        Case Else
            Cells(i,8).Interior.ColorIndex = 2
    End Select
Next i
End Sub

Du kan copy paste koden ind i et modul og køre den.

Farvenumre kan du få med denne:

Sub Colors()
Dim i As Integer

For i = 1 To 50
    Cells(i, 1).Value = i
    Cells(i, 2).Interior.ColorIndex = i
Next i
End Sub

Kør den i et andet ark.
Avatar billede brynil Nybegynder
19. oktober 2005 - 21:33 #6
Læg mærke til koden uden bemærkninger. Case validerer på det nøjagtige udtryk, derfor skal du tage højde for evt. forskellige stavemåder.
Avatar billede pejsen Nybegynder
19. oktober 2005 - 21:36 #7
Tak for dit hurtige svar!!!

Det var godt nok noget af en smører. Jeg vil lige prøve mig frem, men jeg kommer til at famle mig i blinde, da det er et helt nyt område for mig...
Avatar billede pejsen Nybegynder
19. oktober 2005 - 21:44 #8
Kan jeg få den til at kører pr. automatik efter hver celle ændring?????
Avatar billede pejsen Nybegynder
19. oktober 2005 - 21:47 #9
Jep det virker.
Men kan det laves på de celler der ligger til venstre for kolonne H.???????
Avatar billede brynil Nybegynder
19. oktober 2005 - 21:49 #10
Udskift linierne:

  Cells(i,8).Interior.ColorIndex = 3

med

  Range("A" & i & ":H" & i).Interior.ColorIndex = 3

Den farver fra kolonne A til og med H
Avatar billede brynil Nybegynder
19. oktober 2005 - 21:50 #11
Men det fungerer jo ikke ud fra dit valg i 'rullelisten' ;)
Avatar billede brynil Nybegynder
19. oktober 2005 - 21:56 #12
Jeg kan desværre ikke fange valget fra rullelisten. Men det er der måske andre her på eksperten der kan hjælpe med eller forklare om det kan lade sig gøre.

Så vent og se om der er en af de 'hårde drenge' der reagerer.

Jeg skal lukke ned nu. Go' fornøjelse!
Avatar billede pejsen Nybegynder
19. oktober 2005 - 22:00 #13
Det som står i Kollone A til H er Person oplysninger. Kollone H er fraværs-udtryk
  A    |  B  |    C        | D  |  E    |      F      |    G      | H  |
Anders | And |Andebyvej 22 | 7800| Andeby | 98 16 52 00 | 13-10-2005| Fri |

Så jeg vil gerne at hele rækken fik den samme farve som celle H.
Avatar billede kabbak Professor
19. oktober 2005 - 22:21 #14
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H:H")) Is Nothing Then

For i = 1 To 50
    Select Case UCase(Cells(i, 8))
        Case "FRI"
            Rows(i).Interior.ColorIndex = 3
        Case "SYG"
            Rows(i).Interior.ColorIndex = 4

        ' indsæt selv flere cases

        Case Else
            Rows(i).Interior.ColorIndex = xlNone
    End Select
Next i
End If
End Sub

skal i arkets modul
Avatar billede kabbak Professor
19. oktober 2005 - 22:23 #15
Jeg var lidt for hurtig, nu er den rettet.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H:H")) Is Nothing Then

  Select Case UCase(Target)
        Case "FRI"
            Rows(Target.Row).Interior.ColorIndex = 3
        Case "SYG"
            Rows(Target.Row).Interior.ColorIndex = 4

        ' indsæt selv flere cases

        Case Else
            Rows(Target.Row).Interior.ColorIndex = xlNone
    End Select

End If
End Sub
Avatar billede pejsen Nybegynder
19. oktober 2005 - 22:35 #16
Hej Kabbak

Du bliver nødt til at guide mig lidt. Jeg får ingen makronavn frem, når jeg skal afspille Din Farve Makro


Mvh Jan
Avatar billede kabbak Professor
19. oktober 2005 - 22:37 #17
hvis du har lagt den i arkmodulet, så afspiller den selv når du ændrer på en celle i H kolonnen
Avatar billede pejsen Nybegynder
19. oktober 2005 - 22:42 #18
Det virjer ikke!!!!
Virker det også via en rulleliste (Datavalidering) det er her alle udtrykkene er placeret.
Jeg har ændret din Case "FRI" til "Ferie" . Er det her problemet er??+
Avatar billede kabbak Professor
19. oktober 2005 - 22:54 #19
UCase(Target)
betyder at det der står i cellen bliver til store bogstaver, derfor skal alle Case også være med store bogstaver
Avatar billede kabbak Professor
19. oktober 2005 - 22:55 #20
Ja det virker med rulleliste, den fra datavalidering, er testet
Avatar billede pejsen Nybegynder
19. oktober 2005 - 23:03 #21
Nu virker det næsten, men det farvelægger hele rækken.
Jeg ønsker kun at farvelægge den del af rækken, som ligger til venstre for kolonne H.
Kan du fikse det??????????????
Avatar billede kabbak Professor
19. oktober 2005 - 23:06 #22
Lav alle
Rows(Target.Row)

om til

Range("A" & Target.Row & ":G" & Target.Row)
Avatar billede pejsen Nybegynder
19. oktober 2005 - 23:25 #23
Yes,yes, Lige nøjagtigt.
Tusinde tak for hjælpen.

Kan jeg ikke dele point mere mellem to personer. Jeg vil gerne bidrage lidt point til Brynil og resten til dig Kabbak

En lille bitte ting mere, hvis jeg bruger mørke farver kan jeg så i de Cases vælge en skriftype som er hvid.
Avatar billede kabbak Professor
19. oktober 2005 - 23:30 #24
du skal så lige vente til brynil svarer, med at give point.

Angående farver, så er hjælpen god i excel.

Inde hvor du ser koden, sæt cursoren midt på ordet ColorIndex, tryk så på F1, så ryger du lige ind og ser de farver og værdier der findes.

Hilsen Kabbak
Avatar billede pejsen Nybegynder
19. oktober 2005 - 23:38 #25
Okay!

Jeg fandt selv svaret i Hjælp-menuen, lige inden du skrev tilbage

Du skal have mange tak for hjælpen. Du får dine point så snart brynil har svaret.

Jeg vender sikkert tilbage til dig angående noget mere VBA :-))))

Hilsen Jan
Avatar billede kabbak Professor
19. oktober 2005 - 23:40 #26
ok
Avatar billede brynil Nybegynder
20. oktober 2005 - 06:52 #27
Det var jo herligt. Jeg lærte også flere ting!
Avatar billede pejsen Nybegynder
20. oktober 2005 - 22:59 #28
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

Seneste spørgsmål Seneste aktivitet
I dag 21:00 Libre Office Impress Af Frank i Andre styresystemer
I dag 11:47 VB script Af Jenshentze i Word
I dag 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel