Indsæt sideskift inden nyt indhold

I et regneark forekommer indhold, der starter i A2. Regnearket består af e antal rækker med tekst og tal. Derefter kommer et antal rækker, der er tomme, så igen et antal rækker med tekst/tal efter fulgt af nye tomme rækker og så fremdeles. Hvis en række ikke er tom, vil A-kolonnen altid have indhold. Et eksempel er vist i illustrationen til hæjre. Regnearket kan indeholde adskillige af sådanne grupper.

Der ønskes nu indsat sideskift før hver gruppe, så disse udskrives separat, med hver gruppe begyndende på et nye ark papir. Denne makro løser opgaven:

Sub IndsætSideskift()
    Application.ScreenUpdating = False
    Dim i As Long
    With ActiveSheet
        .UsedRange
        .ResetAllPageBreaks
        For i = 2 To .Cells.SpecialCells(xlCellTypeLastCell).Row
            If Cells(i, 1).Value <> "" And Cells(i, 1).Offset(-1, 0).Value = "" Then
                Cells(i, 1).Activate
                ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
            End If
       Next
    End With
    Application.ScreenUpdating = True
End Sub

 

Først indstilles at skærmen ikke skal opdateres undervejs og koden slutter med at skærmopdatering slås til igen. Koden bruger en enkelt variabel, som erklæres som Long, da den kun skal indeholde heltal, men disse kan til gengæld blive store. Så slettes alle eksisterende linjeskift i det område i det aktive ark, der er i brug. Derefter gennemløbes cellerne i A-kolonne fra Række 2 (når Række 1 ikke medtages i gennemløbet, skyldes det, at der ikke kan indsættes sideskift før den første række, og det er således ikke nødvendigt at undersøge denne. Dette loop gennemkøres indtil den når den sidste udfyldte celle i A-kolonnen.

Hvis en der står noget i  en given celle i A-kolonnen, undersøges om cellen lige over er tom. Er det tilfældet indsættes et sideskift mellem den udfyldte og den tomme celle. Er der ikke en tom celle lige over den med indhold, indsættes der ikke et linjeskift men koden fortsætter til alle celler i det brugte område i A-kolonnen er undersøgt.

- Tilbage til makroer -
- Tilbage til Excel -