HaKj Skrevet 13. april 2010 Del Skrevet 13. april 2010 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
Harald Staff Skrevet 13. april 2010 Del Skrevet 13. april 2010 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 1 Lenke til kommentar
HaKj Skrevet 13. april 2010 Forfatter Del Skrevet 13. april 2010 Tusen takk. Dette fungerte utmerket! Lenke til kommentar
Harald Staff Skrevet 13. april 2010 Del Skrevet 13. april 2010 Så bra. Takk for tilbakemelding. Beste hilsen Harald Lenke til kommentar
HaKj Skrevet 23. april 2010 Forfatter Del Skrevet 23. april 2010 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
Harald Staff Skrevet 23. april 2010 Del Skrevet 23. april 2010 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
HaKj Skrevet 28. april 2010 Forfatter Del Skrevet 28. april 2010 (endret) Flott Takk skal du ha. Endret 28. april 2010 av HaKj Lenke til kommentar
HaKj Skrevet 28. april 2010 Forfatter Del Skrevet 28. april 2010 Hva må jeg gjøre for å få satt inn en linje under active cell? Nå kommer den over. Lenke til kommentar
Harald Staff Skrevet 28. april 2010 Del Skrevet 28. april 2010 Hva må jeg gjøre for å få satt inn en linje under active cell? Nå kommer den over. Radnr = ActiveCell.Row + 1 Lenke til kommentar
HaKj Skrevet 28. april 2010 Forfatter Del Skrevet 28. april 2010 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
Harald Staff Skrevet 28. april 2010 Del Skrevet 28. april 2010 Du risikerer noe som blir seende slik ut 1 2 3 16 17 4 er det ønskelig? Jeg tror jeg ville latt innholdet i arket bestemme det nye tallet, ikke makrohukommelsen, den forsvinner når du lukker Excel. Er største tallet i A-kolonnen pluss 1 et greitt nytt tall? Lenke til kommentar
HaKj Skrevet 28. april 2010 Forfatter Del Skrevet 28. april 2010 Hørtes riktig ut med største tallet i A-kolonnen, ja. Beklager at jeg svarte litt seint, men var opptatt i møte. Lenke til kommentar
Harald Staff Skrevet 28. april 2010 Del Skrevet 28. april 2010 Sub NyLinje() Dim Radnr As Long Radnr = ActiveCell.Row + 1 Rows(Radnr).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Cells(Radnr, 1).Value = Application.WorksheetFunction.Max(Range("A:A")) + 1 Cells(Radnr, 2).Value = Now End Sub HTH. Beste hilsen Harald Lenke til kommentar
HaKj Skrevet 30. april 2010 Forfatter Del Skrevet 30. april 2010 Takker En annen ting, hvordan får jeg til at excel setter inn dagens dato, når regnearket blir opprettet, og at denne ikke endres senere? Lenke til kommentar
Harald Staff Skrevet 30. april 2010 Del Skrevet 30. april 2010 Til når-spørsmålet skal du få lekser istedetfor svar: http://www.cpearson.com/Excel/Events.aspx Beste hilsen Harald Lenke til kommentar
HaKj Skrevet 30. april 2010 Forfatter Del Skrevet 30. april 2010 Takk skal du ha! Skal sette meg ned i helga, og gå gjennom denne. mvh Harald K Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå