03. februar 2004 - 17:37Der er
12 kommentarer og 1 løsning
Formatering i Excel 7.0
Man kan ikke lave betinget formatering i denne version af Excel, men det må være muligt at kode sig ud af problemet. Det jeg gerne vil have er f.eks at cellerne B3 - B33, C3 - C33 og D3 - D33 skal farves under bestemte betingelser. Cellerne i kolonne B skal farves hvis den tilsvarende celle i kolonne C har værdien "Lø" eller "Sø" (ugedag formateret som kort navn med stort begyndelsesbogstav). Cellerne i kolonne C skal farves hvis de har værdien "Lø" eller "Sø". Cellerne i kolonne D skal farves hvis cellen ikke er tom eller den tilsvarende celle i kolonne C har værdien "Lø" eller "Sø". Er der nogen der kan hjælpe?
Hvis ovenstående er tilfældet, burde følgende kunne klare problemet:
Sub BetForm()
For Each c In ActiveSheet.Range("b3:d33").Cells If Mid(c.Address, 2, 1) = "C" And c.Value = "Lø" Or c = "Sø" Then c.Interior.ColorIndex = 5 c.Offset(0, -1).Interior.ColorIndex = 5 c.Offset(0, 1).Interior.ColorIndex = 5 End If If Mid(c.Address, 2, 1) = "D" And Not IsEmpty(c) Then c.Interior.ColorIndex = 9 End If Next c
Skal koden sættes ind som et VBA modul (sådan et der tester for helligdage er der i forvejen) eller skal det sættes ind i 'Vis programkode' når man højreklikker på arkets fane.
jkrons Det lader til at du får pointene, blot bliver alle celler i kolonne D 3-33 farvet, uanset om de er tomme eller ej. Kan det laves så hver enkelt celle i D3-D33 kun bliver farvet hvis enten den ikke er tom eller tilsvarende celle i kolonne B har værdien "Sø"?
Den er lavet i excel 2000, håber at koderne virker i din version.
Sub BetForm() For Each c In ActiveSheet.Range("C3:C33").Cells c.Interior.ColorIndex = xlNone c.Offset(0, -1).Interior.ColorIndex = xlNone c.Offset(0, 1).Interior.ColorIndex = xlNone
' hvis det er en dato der har formatet ddd bruges den næste linie ' If Weekday(c.Value, vbMonday) = 6 Or Weekday(c.Value, vbMonday) = 7 Then
' hvis det er tekst bruges den næste linie If c.Value = "Lø" Or c = "Sø" Then c.Interior.ColorIndex = 5 c.Offset(0, -1).Interior.ColorIndex = 5 c.Offset(0, 1).Interior.ColorIndex = 5 End If If c.Offset(0, 1) <> "" And Not IsEmpty(c) Then c.Offset(0, 1).Interior.ColorIndex = 5 End If Next c
kabbak Din modificerede udgave virkede perfekt. Hvad nu med point? PS. Den samme kode vil jeg gerne have til at virke på kolonne F-G-H og kolonne J-K-L og kolonne N-O-P og kolonne R-S-T og kolonne V-W-X og kolonne Z-AA-AB og kolonne AD-AE-AF og kolonne AH-AI-AJ og kolonne AL-AM-AN og kolonne AP-AQ-AR samt kolonne AT-AU-AV (det må du altså undskylde, men det er en kalender - altså 12*3 kolonner) kan jeg bare gentage koden og så ændre området eller hvad. Og hvordan får jeg koden udført når arket åbnes og hvis der laves ændringer.
Maker alle de celler i de kolonner der indeholder dagene.
Altså C3:C33, G3:G33, osv.
Når alle celler fra 3 til 33, i de 12 kolonner er makeret, klik så ind, der hvor du plejer at se celle navnet,( øverste venstre hjørne ), slet det der står og skriv:
DagCol
tryk enter sp du er ude af boksen.
nu skulle du ved at trykke på pilen ved boksen se navnet DagCol, hvis det er der er det ok.
Fantastisk, det er jo det rene trylleri. Kan man også få trylleriet til at virke sådan at koden køres hver gang filen åbnes og hver gang nogen foretager ændringer i den. Det kunne jo godt være at man engang ad åre ønskede at udskrive en kalender for et nyt år!
kabbak Jamen det er da mig der takker. Jeg har prøvet din sidste anvisning, men den kan jeg ikke få til at virke, måske fordi jeg prøver den i version 2003 af Excel, men den skal virke i en version 7.0. Men jeg er meget tilfreds med resultatet. Jeg har tildelt makroen til en knap i værktøjslinien samt til en genvejstast. Det gør det meget let at udføre farvning af weekender og helligdage. Tak endnu engang
Helt i orden at give point til kabbak. Af en eller anden grund får jeg kun få mails fra Eksperten pt, så derfor havde jeg ikke set, at du havde spurgt igen.
Synes godt om
Ny brugerNybegynder
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.