Avatar billede Henry Poulsen Mester
10. december 2020 - 17:50 Der er 4 kommentarer

vba - autosum i Excel

Jeg har et Excel ark med flere data for forskellig tidsperioder, hver række en bestemt måned, pt. ca.  150 rækker. I kolonne G er et valuta beløb som jeg gerne vil have sammentalt for hver måned.
Med VBA sorterer jeg rækkerne i grupper med  samme måned og laver 2 tomme rækker mellem hver månedsgruppe.
I første tomme celle i kolonne G vil jeg gerne indsætte sammentælling af tal i cellerne over. 
Funktionen virker perfekt når jeg indspiller en makro, men i koden  indsættes  der relative cellereferencer efter den aktuelle indspilning, dvs. 3 rækker hvis der er 3 celler mellem tomme rækker.
Ved næste makro kørsel er der 7 eller 12 rækker til sammentælling, så hjælper den indspillede kode med 3 rækker ikke.
Er der en af jer der kender de vise sten ?
Avatar billede kim1a Ekspert
10. december 2020 - 18:43 #1
Hvis du viser os den kode du har der kører i dag, og så måske den kode som er optaget forstår vi måske lidt mere :-)

Det lyder som om du reelt med relative referencer skal have den til at stille sig i Kolonne G og så bruge ctrl+pil ned så den hopper til næste udfyldte eller ikke udfyldte celle. Det er en kommando der hedder i retning af:
Range("G1").End(xlDown).Select
Avatar billede Henry Poulsen Mester
10. december 2020 - 21:58 #2
Disse 4 linjer grupperer  1 måned       
lev = ActiveCell.Value
                                                              Do While ActiveCell.Value = lev
                                                              ActiveCell.Offset(1, 0).Select
                                                              Loop

Disse 4 linjer indsætter 2 blanke rækker mellem hver måneds gruppe
    ActiveCell.EntireRow.Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Denne kode finder kolonne G i første blanke række under månedens rækker
ActiveCell.Offset(, 4).Select

Jeg vil gerne finde en VBA sum kode, der sammentæller alle tal mele 2 blanke rækker.
Avatar billede kim1a Ekspert
11. december 2020 - 08:15 #3
Det er lige lidt nok :-) det ser ud til at din kode hopper rundt i arket med select - så på den måde skal vi lige forstå hvor du står henne i arket når ActiveCell.Offset(, 4).Select vælges. Vi kan ikke lure hvilken række du er på, kører den som en del af loopet? Står den så i første tomme eller anden tomme?

Det kan være du kan bruge usedrange på kolonne G, det kan være som jeg skrev ovenfor at du kan bruge xldown eller xlup til at definere den range du vil summere.
Avatar billede store-morten Ekspert
11. december 2020 - 21:49 #4
lev = ActiveCell.Value
StartRK = ActiveCell.Row

    Do While ActiveCell.Value = lev
    ActiveCell.Offset(1, 0).Select
    Loop

'Disse 4 linjer indsætter 2 blanke rækker mellem hver måneds gruppe
    ActiveCell.EntireRow.Select
SidsteRk = ActiveCell.Row
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

'Denne kode finder kolonne G i første blanke række under månedens rækker
ActiveCell.Offset(0, 4).Select
ActiveCell.Offset(0, 2).Formula = "=SUM(G" & StartRK & ":G" & ActiveCell.Row - 1 & ")"
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