Avatar billede rickie Juniormester
10. januar 2005 - 11:20 Der er 12 kommentarer og
1 løsning

Makro som farver celle/row udfra dato

Hej alle eksperter!

Er der nogen som kan lave et makro som farver en celle rød hvis datoen er lig med eller mindre end dagens dato minus 30 dage.

Feks:
15-01-2004 16-02-2004 11-03-2004 15-04-2004 19-12-2004
I dette tilfælde skal 19-12-2004 farves rød

15-01-2004 16-02-2004 11-03-2004 15-04-2004 19-06-2004
Her skal intet farves

Den skal kun farve cellen og IKKE rækken.

På forhånd tak :-)
Avatar billede jkrons Professor
10. januar 2005 - 11:32 #1
Du behøber ikke en makro. Betinget formatering kan gøre det.

Marker de relevante celler og vælg formater - Betinger formatering.

Vælg Celleværdien er Mindre end og indsæt denne formel: =IDAG()-30
Vælg så den farve din celle skal have og klik OK.
Avatar billede jkrons Professor
10. januar 2005 - 11:37 #2
Rettelse. Du skal nok vælge Celleværdien er Større end, og så indsætte formlen.
Avatar billede rickie Juniormester
10. januar 2005 - 11:45 #3
Ok! Tak men jeg vil gerne have en makro som gør det automatiskt. Alt hentes fra en database og der bliver flere og flere hver gang.

Datoen som ikke længere går ind under ovenstående kriterie skal jo farves normal igen.
Avatar billede kabbak Professor
10. januar 2005 - 12:02 #4
Betinget formatering, gør det automatisk, og der er hurtigere end makro.

Så følg jkrons råd.
Avatar billede jkrons Professor
10. januar 2005 - 13:31 #5
Hvis du meget gerne vil have en makro, så kan følgende bruges, men husk at makroen skal afspilles hver gang. Den er baseret på at cellerbne med datoerne markeres først.

Sub FarvHvis()
    For Each c In Selection.Cells
        If c.Value >= Date - 30 Then
            c.Interior.ColorIndex = 3
        End If
    Next c
End Sub
Avatar billede kabbak Professor
10. januar 2005 - 13:35 #6
jkrons > husk lige at du også skal fjerne farverne igen, når kriteriet ikke længere er opfyldt.
Avatar billede jkrons Professor
10. januar 2005 - 13:39 #7
kabbak-> Du har ret. Og hvis det skal ske automatisk skal vi over i noget hændelsesprogrammering og så er vi nødt til at vide hvilke celler, der skal undersøges.

Der er den med "affarvning"

Sub FarvHvis()
    For Each c In Selection.Cells
        If c.Value >= Date - 30 Then
            c.Interior.ColorIndex = 3
        Else
            c.Interior.ColorIndex = xlNone
        End If
    Next c
End Sub

c.Interior.ColorIndex = xlNone
Avatar billede rickie Juniormester
10. januar 2005 - 14:01 #8
Hi! Det er noget i den stil som jeg leder efter. Betinget formatering virker også men der er allerede et makro i arket så det er perfekt at få det som et makro.

Jeg når ikke at teste den nu men skal nok gøre det så snart jeg har tid.
Kanon gutter! :)
Avatar billede rickie Juniormester
11. januar 2005 - 10:32 #9
Det virker bare perfekt! Tak fo hjælpen gutter!

--> Ikrons: Svar for dine velfortjente points.

Ps. Kan du forresten også lige forklare hvordan jeg sætter ett mellemrum ind i en msgbox?

Streng = MsgBox("Gul 100 aktive sager!, Grøn - 10 aktive sager!, Orange - 0 aktive sager")
Avatar billede rickie Juniormester
21. marts 2005 - 10:36 #10
Ikrons! Hvis du svarer får du dine points :-)
Avatar billede rickie Juniormester
09. maj 2006 - 23:08 #11
Stadig ikke noget svar - lukker! Skriv igen hvis du vil have dine points :-)
Avatar billede jkrons Professor
09. maj 2006 - 23:11 #12
Her goes.
Avatar billede jkrons Professor
09. maj 2006 - 23:13 #13
Hvor er det i øvrigt at du vil have mellemrummet i msgboxen?
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