Avatar billede msl- Nybegynder
09. marts 2010 - 10:50 Der er 10 kommentarer og
1 løsning

SumColor / taelfed

Hej...

Har fundet følgende guide, men kan ikke få det til at fungere:
http://www.kronsell.net/Farvefunktioner.htm

Lad os starte med SumColor:

1) Jeg har oprettet et tomt excel ark, åbnet visualbasic og kopieret kodestykket ind i Ark1 i VB.

2) Jeg har nu gemt min excel fil med makroer

3) Jeg udfylder a1 med gul

4) A2:A10 er pletvist markeret med gul.

5) I A12 har jeg min funktion =sumcolor(A1;A2:A10)

A12 viser nu bare #NAVN

Hvad gør jeg forkert. Det samme sker når jeg forsøger med funktionen "taelfed".
Avatar billede supertekst Ekspert
09. marts 2010 - 11:44 #1
Sæt VBA kode ind i et Modul

Aktiver A12 - Menu: Indsæt / Funktion / Kategori = Brugerdefineret -så skulle funktionen kunne ses. Vælg denne og udfyld evt. dialog-boksen
Avatar billede msl- Nybegynder
09. marts 2010 - 11:53 #2
Nu virker det til dels, tak...

Situationen er derimod den, at når jeg så f.eks. benytter funktionen "SumColor" og markerer mit farvede område, så tæller den rigtigt nok de gule felter. Men går jeg ind og fjerner formateringen på et af felterne tælles dette felt stadig med?

Kan jeg få funktionerne til automatisk at genberegne, hvilket de tilsyneladende ikke gør nu?
Avatar billede supertekst Ekspert
09. marts 2010 - 12:40 #3
Manuelt kan man dobbeltklikke på formlen og trykke Enter - alternativt skal derskrivesen makro ti at fjerne /sætte den gule farve - så kunne SumColor nok aktiveres igen.
Avatar billede msl- Nybegynder
09. marts 2010 - 12:47 #4
Så det kan altså ikke lade sig gøre at fortælle makroen at den skal holde sig automatisk opdateret?
Avatar billede supertekst Ekspert
09. marts 2010 - 12:53 #5
På en eller anden måde skal der genberegnes når farven sættes/fjernes - prøver en idé - vender tilbage..
Avatar billede msl- Nybegynder
09. marts 2010 - 13:00 #6
Skal vi helgardere os, er vi vel ude i, at så snart der ændres formatering i en celle, hvad enten der er tilføjelse eller fjernelse af en cellefarve, eller at vi tilføjer/fjerner en bold tekstformatering, så skal der genberegnes?

Dette dækker jo både over CountColor, SumColor og TaelFed
Avatar billede supertekst Ekspert
09. marts 2010 - 14:20 #7
Indsæt koden under arket (Højreklik / Vis programkode:

Midlertidig løsning: HøjreKlik på en celle, der skal skifte til GUL / fra GUL

(Med flere formater kunne der anvendes en Userform - eller oprettes en værktøjslinie)

Private Sub beregn()
        colo = Cells(1, 1).Interior.ColorIndex
        colsum = 0
        For Each c In Range("A2:A11").Cells
            If c.Interior.ColorIndex = colo Then
                colsum = colsum + c.Value
            End If
        Next c
        Range("A12") = colsum
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Interior.ColorIndex = xlColorIndexNone Then
        Target.Interior.ColorIndex = Cells(1, 1).Interior.ColorIndex
    Else
        Target.Interior.ColorIndex = xlColorIndexNone
    End If
    beregn
   
    Cancel = True
End Sub
Avatar billede msl- Nybegynder
09. marts 2010 - 15:38 #8
Hej igen

Kan godt følge dig i ovenstående, men hensigten med sum-funktionerne er netop at kunne adskille udvalgte stikprøver i et større datamateriale, hvor forskellige stikprøvetyper kan fremkomme i samme kolonne.

Heraf kommer behovet for at kunne vælge så mange forskellige farver som muligt.

Men såfremt det ikke er muligt at få funktionen til at genberegne automatisk, f.eks. hvert sekund (har ingen anelse om hvorvidt en sådan funktion ville have drastisk virkning på computerens ressourcer?). Så må jeg jo bare finde mig i at skulle opdatere manuelt :)

Smid et svar, det har du ihvertfald fortjent!
Avatar billede supertekst Ekspert
09. marts 2010 - 15:48 #9
Hvis vi anvender en userform vil flere farver kunne sættes / fjernes samtidig med opdatering og det hele ville kunne vises i Userform (hvis du kender en sådan).

Man kunne også anvende OnTime-funktionen - men skulle ikke være nødvendig, hvis Userform anvendes.

- -

Hvis du er interesseret - så kan der konstrueres en mere "prof" løsning - men udern for dette forum. Mailadresse under profil.
Avatar billede supertekst Ekspert
09. marts 2010 - 15:50 #10
Kode i selve arket:

Private Sub beregn()
        colo = Cells(1, 1).Interior.ColorIndex
        colsum = 0
        For Each c In Range("A2:A11").Cells
            If c.Interior.ColorIndex = colo Then
                colsum = colsum + c.Value
            End If
        Next c
        Range("A12") = colsum
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Interior.ColorIndex = xlColorIndexNone Then
        Target.Interior.ColorIndex = Cells(1, 1).Interior.ColorIndex
    Else
        Target.Interior.ColorIndex = xlColorIndexNone
    End If
    beregn
   
    Cancel = True
End Sub
Avatar billede msl- Nybegynder
09. marts 2010 - 16:00 #11
En timer løsning ville være optimal til mit behov, jo oftere der opdateres jo bedre - dog såfremt at konsekvensen af konstante opdateringer, ikke medfølger at computerens ressourcer reduceres mærkbart.

Jeg vil gerne have mulighed for at kunne benytte countcolor på samme vis som jeg benytter min almindelige sum-funktion.

Lige nu kan jeg se at højrekliksfunktionen genberegner netop A2:A11 som bare vare et givet eksempel. Alt det med specifikke celler skal helst ikke ind i billedet.
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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