Gå til innhold

Anbefalte innlegg

Hei

 

Jeg har en tabell i excel med celler som har forskjellige bakgrunnsfarger og tekstfarger.

Jeg ønsker å summere disse tallene f.eks bare de som har sort skrift og grønn bakgrunnsfarge.

 

Noen som vet om det finnes en funksjon eller en vba-kode som gjør at jeg kan få dette til?

Lenke til kommentar
Videoannonse
Annonse

Hei

 

Excel kan ikke dette. Du må skrive din egen regnearkfunksjon for å få det til. Moro.

 

Åpne VB-editoren (Alt F11 eller lignende). Meny Insert > Module. I modulen limer du inn dette:

 

Public Function Fargesum(Celleområde As Range, _
   SammeFargeSom As Range) As Double
Dim Rng As Range, Cel As Range
Dim Bcolr As Long, Fcolr As Long
Application.Volatile
On Error Resume Next
Set Rng = Intersect(Celleområde, Celleområde.Parent.UsedRange)
If Rng Is Nothing Then Exit Function
Bcolr = SammeFargeSom(1).Interior.Color
Fcolr = SammeFargeSom(1).Font.Color
For Each Cel In Rng
   If Cel.Interior.Color = Bcolr Then
       If Cel.Font.Color = Fcolr Then _
           Fargesum = Fargesum + Cel.Value
   End If
Next
End Function

 

Lukk VB-editoren. Nå har du fått en ny regnearkfunksjon i denne filen. Den skal ha to inputs: celleområde som skal summeres, og en celle den skal sammenlikne farger med. I en celle skriver du f.eks

=Fargesum(A2:W100;F5)

så får du summen av cellene i området A2:W100 som har samme bakgrunnsfarge og tekstfarge som celle F5.

 

Merk at fargelegging ikke trigger beregning i Excel, du må trykke F9 etter en fargeendring for å få et nytt resultat.

 

HTH. Beste hilsen Harald

  • Liker 1
Lenke til kommentar
  • 2 uker senere...

Nå har jeg et annet spørsmål: Jeg skal lage en logg, hvor jeg ønsker at det skal være slik at jeg har en makro som heter f.eks. "ny linje". Den må gjøre slik at når du kjører den, setter den inn en ny linje, og i den første cellen, setter den inn dagens dato og klokkeslett.

Går det an?

Lenke til kommentar

Det går fint.

Denne setter inn over aktiv celle.

 

Sub NyLinje()
Dim Radnr As Long
Radnr = ActiveCell.Row
Rows(Radnr).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(Radnr, 1).Value = Now
End Sub

Hvis du skal ha den på fast plass, f.eks rad 12, så endrere du koden til

Radnr = 12

 

HTH. Beste hilsen Harald

Lenke til kommentar

Tusen takk for hjelpen.

Det er til stor nytte.

 

Har et siste spørsmål:

 

Går det an å få makroen til legge inn et nummer som øker med 1, hver gang den legger inn en ny linje. Litt vanskelig å forklare.

 

F.eks. Jeg kjører makroen NyLinje, den legger da inn en rad med linjenr i første celle og dato/tid i andre celle på den nye raden.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...