04. april 2015 - 09:16
Der er
2 kommentarer og
1 løsning
Automatisk indsætning af tomme rækker
Hej
Jeg har et regneark hvor der forekommer en masse kundeposter.
Jeg vil gerne have indsat en blank række efter hver kunde.
Der optræder forskellige antal poster pr. kunde
Hvordan gøres det nemmest? (uden at gøre det manuelt)
04. april 2015 - 10:26
#1
Jeg går ud fra, at du ønsker dette af "kosmetiske årsager"? Det er i andre sammenhænge ikke smart at have tomme rækker i et datasæt. Men det kan gøres vha. VBA på mange forskellige måder. Nedenunder er et eksempel.
Først skal du sikre dig, at posterne er sorteret efter en korrekt nøgle. I dit tilfælde er det f.eks. kundenummeret. Jeg forudsætter i det følgende, at kundenumrene er i kolonne A.
Når sorteringen er sket så kan følgende kode benyttes:
Sub IndsætTomRække()
Dim ws As Worksheet
Set ws = ActiveSheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With ws.Range("A1", ws.Range("A" & Rows.Count).End(xlUp))
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(1), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
.Offset(2, -1).SpecialCells(xlCellTypeConstants).Offset(, 1).ClearContents
.Offset(, -1).EntireColumn.Delete
.EntireColumn.RemoveSubtotal
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Du sætter denne kode ind i et modul og afvikler dernæst makroen fra det ark, hvor dine data findes.
NB: Husk at der ikke er en fortrydelsesmulighed med VBA, så arbejd på en kopi af dine data. Enten i en anden fil eller evt. i et separat ark.