19. oktober 2005 - 21:01Der 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"..... :-(((
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
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
' 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
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.
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.
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??+
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??????????????
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.