Avatar billede fimo Seniormester
13. juni 2023 - 11:53 Der er 17 kommentarer og
1 løsning

macro - forskellige antal liner ?

Hej,
Jeg har et excel ark hvor jeg fremhæver et vis antal liner med en farve, det kan være forskellige antal linjer der er farvet fra gang til gang når jeg køre min makro, og den så laver en sammentællning i nogler celler men jeg får et forkert efter jeg har kørt min makro hvis ikke antallet af linjer er det samme som den makro jeg har indspillet, både flere linjer + færre antal linjer...

Er der en som har en god ide til hvordan jeg kan løse dette "problem",
så jeg kan køre min makro og få samme sammentælling lige meget hvor mange eller få liner jeg har farve markeret fra gang til gang ?

Tak på forhånd for hjælpen :)


Sub Sortbycolors()
'
' Sortbycolors Macro
'
' Keyboard Shortcut: Ctrl+m
'
    ActiveWorkbook.Worksheets("2023_IMPORT_data 31.05.23").AutoFilter.Sort. _
        SortFields.Clear
    ActiveWorkbook.Worksheets("2023_IMPORT_data 31.05.23").AutoFilter.Sort. _
        SortFields.Add(Range("A16:A1687"), xlSortOnCellColor, xlAscending, , _
        xlSortNormal).SortOnValue.Color = RGB(255, 192, 0)
    With ActiveWorkbook.Worksheets("2023_IMPORT_data 31.05.23").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Rows("32:32").Select
    Selection.Insert Shift:=xlDown
    Selection.Insert Shift:=xlDown
    Range("F32").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=SUM(R[-16]C:R[-1]C)"
    Range("F33").Select
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    Range("F32").Select
    Selection.AutoFill Destination:=Range("F32:M32"), Type:=xlFillDefault
    Range("F32:M32").Select
    Range("K32").Select
    Selection.ClearContents
    Range("I32").Select
    Selection.ClearContents
    Range("J32").Select
    Selection.ClearContents
    Range("H32").Select
    Selection.ClearContents
    Range("L33").Select
End Sub
Avatar billede fimo Seniormester
13. juni 2023 - 11:55 #1
......og den laver så en sammentællning i nogler celler, men jeg får et forkert resultat...
Avatar billede kim1a Ekspert
13. juni 2023 - 20:53 #2
Har din tabel samme antal rækker og kolonner hver gang?

Det er godt du er startet med at prøve optageren, men din makro er ikke ret god, fordi den kører dele defineret i referencer og andet ud fra hvor den ender med at stå.

Du bør indsætte nogle variable for at definere slutningen på din tabel, det kan f.eks. være:
Din variabel = Cells(Rows.Count, 1).End(xlUp).Row
Nu kan du sætte dette:
SortFields.Add(Range("A16:A"&din variabel), xlSortOnCellColor, xlAscending, , _
        xlSortNormal).SortOnValue.Color = RGB(255, 192, 0) for at sikre den sorterer din kolonner korrekt.

Jeg har så lidt svært ved at greje hvor du vil lave sammentællinger og hvilke rækker der skal være med i det. Er det bare alle dine farvede rækker?
Avatar billede fimo Seniormester
13. juni 2023 - 21:44 #3
Hej Kim,
Tak for dit input...
Nej min tabel har forskellige antal rækker hver gang, det er en fil jeg arbejder på dagligt, så starter med en linje og så når dagen er omme, så er der måske 50 linjer og dag 2 er der måske 70 linjer osv.... men den vokser kun med rækker ikke kolonner..

Ja jeg tænkte at min macro nok ikke ville løse det for mig, men det var det mine excel kundskaber kunne finde ud af :)

Når jeg løbende indtaster nye linjer, så kan det være at jeg har "farvet" 5 linjer den ene gang og så sortere jeg celler via den farve og så under de 5 linjer , laver jeg en "indsæt 2 tomme linjer"  som jeg så bruger "sum" til at sammentælle mine 5 linjer oven... MEN de 5 linjer kan også nogen gange være 2 linjer eller 15 linjer og det er der jeg går i stå og ikke ved hvordan jeg skal komme videre :)

Ved ikke om dette giver mening ?
Avatar billede store-morten Ekspert
13. juni 2023 - 22:23 #4
Kan du "nøjes" med en sum formel på de farvede celler?
Avatar billede fimo Seniormester
13. juni 2023 - 22:39 #5
Ja helt klart det ville hjælpe mig meget :)
Avatar billede store-morten Ekspert
13. juni 2023 - 23:01 #6
Læg denne i et Modul:
Function SumColor(Celle_Farve, Sum_Område As Range) As Double
Application.Volatile
    colo = Celle_Farve.Interior.ColorIndex
    colsum = 0
    For Each c In Sum_Område.Cells
        If c.Interior.ColorIndex = colo Then
            colsum = colsum + c.Value
        End If
    Next c
SumColor = colsum
End Function


Og brug formlen: =SumColor(E2;E2:E9)

Hvor E2 har farve der sammelægges
Og E2:E9 er området der skal sammelægges
Avatar billede fimo Seniormester
13. juni 2023 - 23:08 #7
perfekt - jeg prøver imorgen takker for alt hjælpen :)
Avatar billede fimo Seniormester
14. juni 2023 - 11:42 #8
Hej igen,

Nu blev jeg lige pludselig i tvivl om hvad jeg skal bruge / ikke bruge i min test fil....

Dette er et eks på hvordan det kan se ud i min fil, altså de orange er dem jeg vil sortere øverst i mit excel ark og lave en sammentælling på alle celler i de tre rækker med orange farve.... og de 3 farvet linjer kan i andre tilfælde være 15 rækker eller 2 rækker eller hvad som....men altid en sammentællning af antal-pris-dims på samme række men med en total for antal - pris - dims
https://ibb.co/t3gRYPQ
Men nu blev jeg usikker på om jeg stadivæk skal bruge min macro + din kode eller kun den ene del ?

Og brug formlen: =SumColor(E2;E2:E9)

Er det en formel jeg skal indsætte hver gang eller kopiere et eller andet sted hen ?

Hvor E2 har farve der sammelægges
Og E2:E9 er området der skal sammelægges

Nu har jeg indsat denne kode i et modul som her:
https://ibb.co/bmq5L5f

og så går jeg kold :)
Avatar billede store-morten Ekspert
14. juni 2023 - 16:21 #9
Avatar billede fimo Seniormester
14. juni 2023 - 20:56 #10
Tusind tak det virker og nu forstår jeg lidt bedre hvordan det virker udfra din fil,
Perfekt og tak for din fine hjælp !!!
Ha en god aften :)
Avatar billede store-morten Ekspert
14. juni 2023 - 21:52 #11
Velbekomme 🌞
Avatar billede fimo Seniormester
16. juni 2023 - 13:41 #12
Hej igen glemte lige at spørge om jeg læser denne fil forkert,
de 26 cll forstår jeg 23+3
men kan ikke helt forstå de 2 andre resultater
1.318,50 og de 0,90 hvordan det resultat kommer fra de farvet felter ?

https://ibb.co/fv7j3KG
Avatar billede store-morten Ekspert
16. juni 2023 - 14:41 #13
Har du prøvet at trykke F2 ?
Avatar billede fimo Seniormester
16. juni 2023 - 14:48 #14
Jeg har bare taget dit eksempel fra filen og testet med = ovennævnte resultat og der sker ikke noget med F2 hos mig :)
Avatar billede store-morten Ekspert
16. juni 2023 - 14:51 #15
F9
Avatar billede fimo Seniormester
16. juni 2023 - 15:21 #16
Hej igen,

F9 fungere på antallet MEN ikke på korrekt sum i Prisog Dims cellen
viser dette med 20+23 i antal = 43 stk OK men ikke 1038,70 eller 1,00

43    1.038,70    1,00
Antal    Pris    Dims
1    1.000,50    0,01
3    18,20    0,12
20    298,00    0,02
23    27,00    0,12
5    20,00    0,87
Avatar billede store-morten Ekspert
16. juni 2023 - 15:34 #17
Vender tilbage når jeg er på pc
Avatar billede store-morten Ekspert
16. juni 2023 - 16:35 #18
Min fejl :-(

=SumColor(A6;A9:A13) Ok
=SumColor(B6;B9:B13) ikke ok
=SumColor(C6;C9:C13) ikke ok

B6 og C6 skal rettes til A6 (cellen med reference farven)
Ret selv eller hent arket igen.
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

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