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 ?
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
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.
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.
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 & ")"
Synes godt om
Ny brugerNybegynder
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.