|
| Excel formatering af celler Fra : hryttel | Vist : 2128 gange 500 point Dato : 15-03-08 09:15 |
|
Hej,
Jeg kunne tænke mig at give fx. A1 den samme farve som B1 afhængig af værdien de bliver udfyldt i B1
kolonne A fyldes med navne af medarbejdere
kolonne B skrives navnet af medarbejderens supervisor som der er 6 af og ± 10 medarbejdere.
hvordan gør jeg det med VBA vil jeg tro men hvordan?
Henning (fra Holland) 8<
| |
| Kommentar Fra : Eyvind |
Dato : 15-03-08 09:17 |
|
Du skal bruge betinget formatering.
Formatér < betinget formatering.
| |
| Kommentar Fra : hryttel |
Dato : 15-03-08 11:31 |
|
Jeg bruger Office 2003 Hollandsk version. jeg skrev at der var 10 medarbejdere der skulle stå 100.
Eksembel:
Kolonne A B
1 Jan Henning
2 Ole Peter
3 Kirsten Henning
4 Grethe Lulu
6 Kim Lulu
7 Sven Peter
8 Ove Ries
9 Sven H Mark
Henning = gul
Peter = blå
Lulu = grøn
Mark = lyseblå
Thessa = lilla
Ries = rød
A1 og A3 har Henning som supervisor d.v.s. at når jeg udfylder B1 og B3 med Henning skal A1, B1, A3 og B3 blive gul.
Mvh,
Henning
| |
| Kommentar Fra : Eyvind |
Dato : 15-03-08 11:55 |
|
Jeg har ikke office på denne comp. -så efter hukommelsen.
stå i A1 > format > betinget format > og så mener jeg der skal stå B1= Henning og i format skal du pege på en farve
Som jeg husker det kan der laves flere betingelser med flere farver.
Jeg vender tilbage når jeg har en office comp kørende igen.
| |
| Kommentar Fra : hryttel |
Dato : 15-03-08 12:12 |
| | |
| Kommentar Fra : hryttel |
Dato : 15-03-08 12:27 |
|
Hej Fijala,
Det drejer sig ikke så meget om farverne, i excel 2003 har du kun 3 betinget formater, men mere om at jeg har 6 supervisor hvor jeg for hver bruger en egen farve.
D.v.s. at, tror jeg, jeg er nødt til at bruge VBA
Mvh,
Henning
| |
| Kommentar Fra : Fijala |
Dato : 15-03-08 12:34 |
|
Ok det kan jeg godt se. Var lige ovre på min kones pc og hun kører så Office XP.
I Oficce 2007 kan du selv oprette nye regler hvor hvad der skal ske
| |
| Kommentar Fra : Eyvind |
Dato : 15-03-08 12:54 |
|
OK jeg har office 2000 nu - men tænker lige lidt for det er ikke helt som jeg huskede.
| |
| Kommentar Fra : Eyvind |
Dato : 15-03-08 13:43 |
| | |
| Kommentar Fra : Eyvind |
Dato : 15-03-08 13:52 |
| | |
| Kommentar Fra : Eyvind |
Dato : 15-03-08 13:59 |
|
Hvis du vil have jensen/olsen/pedersen til at få samme farve:
format > betinget format > [celleværdien er]......[ lig med]......[jensen] > formater osv
| |
| Kommentar Fra : hryttel |
Dato : 15-03-08 14:19 |
|
Eyvind,
Det er tydeligt det du viser mig her.
Det jeg har brug for er at, hvis jeg har en navneliste ± 100 navne, kolonne A og jeg skriver fx mit navn i kolonne B (supervisor), cellerne i både A&B får den samme farve. Se eksemplet her: http://Billedeupload.dk/showpic-989.jpg
Henning
| |
| Kommentar Fra : Eyvind |
Dato : 15-03-08 14:57 |
| | |
| Kommentar Fra : hryttel |
Dato : 15-03-08 15:30 |
|
Eyvind,
Som du kan se her har jeg gjort som du kar skrevet. http://Billedeupload.dk/showpic-994.jpg
Men som do også kan se er de ikke helt hvad jeg vil.
Kolonne B bliver ikke farvet. Og jeg mangler de andre 3 supervisor.
Mvh,
Henning
| |
| Kommentar Fra : hryttel |
Dato : 15-03-08 16:04 |
|
Eyvind,
Jeg har nu brugt 2 forskellige betinget format. den første (du viste) for kolonne A og den anden til kolonne B.
Det virker.... Men jeg har kun 3 navne, farve mulighedder.
Mvh,
Henning
| |
| Kommentar Fra : Eyvind |
Dato : 15-03-08 16:36 |
|
Ok jeg leger lidt med noget makro...........pussigt at jeg lige afprøvede med kun 3 stk.
| |
| Kommentar Fra : IPAA |
Dato : 01-05-08 19:58 |
|
Prøv f. eks. med denne rutine:
Sub sammenavn()
Dim color, names As Variant
color = Array(1, 4, 5, 8, 9, 13)
names = Array("Henning", "Larsen", "Petersen", "Olsen", "Nielsen", "Fogh")
For Each n In Range(Selection.Columns(1).Address)
If InStr(n.Value, n.Offset(0, 1).Value) <> 0 Then
c = color(Application.WorksheetFunction.Match(n.Offset(0, 1).Value, names, 0))
n.Offset(0, 1).Interior.ColorIndex = c
End If
Next
End Sub
| |
| Kommentar Fra : hryttel |
Dato : 02-05-08 07:19 |
|
Hej IPAA,
Desværre virker det ikke eller jeg gø noget forkert.
Hvis du sender mig en e-mail kan jeg sende dig filen, så du jo se om jeg har gjort noget forkert.
Mvh,
Henning
| |
| Kommentar Fra : IPAA |
Dato : 02-05-08 13:15 |
|
Rutinen virker sådan, at når du skriver navnene (strenge) med både fornavn efternavn etc. i én kolonne og så skriver efternavnet (eller hvad du vil checke på om er indeholdt i den første streng), så vil rutinen når du markerer (selection) begge kolonner skifte farve på de celler (efternavne) der er indeholdt i strengene i den første kolonne - svarende til farvekoderne i matricen color/matricen names. Læs: hvis et af efternavnene i anden kolonne er indeholdt i strengen i første kolonne udfører rutinen et opslag, som oversætter navnet til en farvekode og ændrer farve på pågældende celle. Henning= farve 1, Larsen=farve 4, Petersen=farve 5 etc..
Nå, jeg har vist misforstået dig lidt.
Det bliver det bare enklere af.
Forstår jeg dig ret, skal cellen i første kolonne bare have en farve svarende
til navnet på den supervisor, der står i anden kolonne (?)
Hvis dette er korrekt, så prøv med denne udgave i stedet:
Sub supervisorcolor()
Dim color, names As Variant
color = Array(1, 4, 5, 8, 9, 13)
names = Array("Henning", "Larsen", "Petersen", "Olsen", "Nielsen", "Fogh")
For Each n In Range(Selection.Columns(1).Address)
'If InStr(n.Value, n.Offset(0, 1).Value) <> 0 Then
c = color(Application.WorksheetFunction.Match(n.Offset(0, 1).Value, names, 0) - 1)
n.Interior.ColorIndex = c
n.Offset(0, 1).Interior.ColorIndex = c
'End If
Next
End Sub
Markerer du nu begge kolonner og kører makroen, vil den skifte farve på cellerne i begge kolonner svarende til farve for det supervisornavn, der står i cellen i anden kolonne. (Jvnf. ovennævnte).
Dvs. du skal i rutinen blot tilpasse matricerne names og color, så de svarer til de supervisorer med respektive farver, du har.
Du må eksperimentere lidt eller finde de respektive farvers koder.
Der var en mindre fejl i rutine som jeg har rettet.
Se billedet her:
Kode http://billedeupload.dk/showpic-1810.jpg |
| |
| Kommentar Fra : IPAA |
Dato : 02-05-08 13:17 |
| | |
| Kommentar Fra : hryttel |
Dato : 03-05-08 08:49 |
|
Hej IPAA,
Nu kører den.
Er det muligt alt lave rutinen så den kører når du springer til en ny linje? fx. med enter?
ps jeg får få fejl melding 400 og nå jeg så vil kontrollere ser jeg den første linje i rutinen bliver gul og der står en pil i begyndelsen.
Sub supervisorcolor() <== teksten her bliver gul !!!!!!!!!!!!!!
Dim color, names As Variant
color = Array(37, 34, 35, 38, 39, 33)
names = Array("Henning", "Larsen", "Petersen", "Olsen", "Nielsen", "Fogh")
For Each n In Range(Selection.Columns(1).Address)
'If InStr(n.Value, n.Offset(0, 1).Value) <> 0 Then
c = color(Application.WorksheetFunction.Match(n.Offset(0, 1).Value, names, 0) - 1)
n.Interior.ColorIndex = c
n.Offset(0, 1).Interior.ColorIndex = c
'End If
Next
End Sub
Mvh,
Henning
| |
| Accepteret svar Fra : IPAA | Modtaget 500 point Dato : 03-05-08 09:52 |
|
Hej Henning
Hvis du får fejlmeddelelsen 400 er det sandsynligvis fordi, du på en eller anden måde indexerer matricen for højt eller skriver en supervisor, der ikke er i names-matricen.
I eksemplet består matricerne af 6 elementer hver og så vidt jeg husker er indekset 0-5. Derfor trak jeg 1 fra
Hvis du f. eks. forsøger at bruge color(7) vil du få en fejl af denne type (overløb), men også hvis supervisornavnet ikke findes i listen.
Du bliver nødt til at sikre dig, at matricerne er korrekte også at de kun indeholder farvenumre, som Excel anvender f. eks..
Der er mulighed for at aktivere en makro ved f. eks. ændring af arket, men jeg forsøger at undgå makroer af denne type, da de kan være lidt tunge at danse med, da de skal scanne for en ændring hele tiden og ikke kun aktiveres når du kører makroen.
Hvis du vil bruge dette er du også nødt til at ændre selection af området i makroen, da du jo så ikke gør dette manuelt længere.
Inde i VB-makro vinduet vælger du (general):
Workbook
og under (declarations):
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Skriv selve makroen her'
End Sub
Det burde kunne lade sig gøre (?).
| |
| Godkendelse af svar Fra : hryttel |
Dato : 04-05-08 15:14 |
|
Tak for svaret IPAA.
Jeg har fået den til at køre. Nu skal jeg bare side og lege med resten jeg vil have lavet.
Mit spørgsmål besvaret godt!
Mvh,
Henning
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|