• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA Code om page break in te voeren

Status
Niet open voor verdere reacties.

Dallandra

Gebruiker
Lid geworden
26 aug 2005
Berichten
75
Hoi,

Kan iemand me helpen aan een VBA code om telkens als er in een specifieke kolom de data wijzigt een pagebreak in te voeren.

dus bvb in kolom A staat: VRT006/VRT006/VRT006/VRT008/VRT008/VRT009/VRT009/VRT009

dan moet er dus een pagebreak komen tussen VRT006 en VRT008 en tussen VRT008 en VRT009

Alvast bedankt,
Saskia
 
Code:
Sub PaginaEinde()
Dim lRij As Long
    lRij = 1
    While Range("A" & lRij).Value <> ""
        If Range("A" & lRij).Value <> Range("A" & lRij + 1).Value Then
            ActiveSheet.HPageBreaks.Add Before:=Range("A" & lRij + 1)
        End If
        lRij = lRij + 1
    Wend
End Sub

Met vriendelijke groet,


Roncancio
 
Het werkt niet ?

Sub PaginaEinde()
Dim lRij As Long
lRij = 1
While Range("A" & lRij).Value <> "vrt006"
If Range("A" & lRij).Value <> Range("A" & lRij + 1).Value Then
ActiveSheet.HPageBreaks.Add Before:=Range("A" & lRij + 1)
End If
lRij = lRij + 1
Wend
End Sub

Krijg een foutmelding op de regel invet

Ik krijg de volgende foutmelding:

Fout 1004 tijdens uitvoering:

Methode range van object_global is mislukt.


Wat doe ik fout?

Dallandra
 
Wat bedoel je met IRij?

Hij maakt een pagebreak na elke rij.
 
Laatst bewerkt:
Het woord vrt006 zal niet voorkomen in kolom A van het blad.
 
maar dat doet 't wel :confused:

Ik heb een bestandje erbij gedaan.

Ik wil dus een pagebreak na elke wijziging in Vrtnr.
 

Bijlagen

  • voorbeeld.xls
    51 KB · Weergaven: 29
een pagebreak na elke wijziging in Vrtnr.

Waarom komt er dan vrt006 in de code voor?

Anyway

Code:
Sub PaginaEinde()
Dim lRij As Long
   [B] lRij = 2
    While Range("A" & lRij + 1).Value <> ""[/B]
        If Range("A" & lRij).Value <> Range("A" & lRij + 1).Value Then
            ActiveSheet.HPageBreaks.Add Before:=Range("A" & lRij + 1)
        End If
        lRij = lRij + 1
    Wend
End Sub

Wigi
 
Dallandra, Zoiets?
Code:
Sub PaginaEinde2()
Dim c As Range

    For Each c In Range("A2:A65536").SpecialCells(xlCellTypeConstants)
        If c.Value <> c.Offset(1).Value Then
            ActiveSheet.HPageBreaks.Add before:=c.Offset(1)
        End If
    Next c

End Sub

Groet, Leo
 
Waarom komt er dan vrt006 in de code voor?

Anyway

Code:
Sub PaginaEinde()
Dim lRij As Long
   [B] lRij = 2
    While Range("A" & lRij + 1).Value <> ""[/B]
        If Range("A" & lRij).Value <> Range("A" & lRij + 1).Value Then
            ActiveSheet.HPageBreaks.Add Before:=Range("A" & lRij + 1)
        End If
        lRij = lRij + 1
    Wend
End Sub

Wigi

In mijn code had ik 'm tussen de " " geplaatst

While Range("A" & lRij).Value <> "vrt006"
 
Dallandra, Zoiets?
Code:
Sub PaginaEinde2()
Dim c As Range

    For Each c In Range("A2:A65536").SpecialCells(xlCellTypeConstants)
        If c.Value <> c.Offset(1).Value Then
            ActiveSheet.HPageBreaks.Add before:=c.Offset(1)
        End If
    Next c

End Sub

Groet, Leo

ga ik morgen proberen
 
maar dat doet 't wel :confused:

Ik heb een bestandje erbij gedaan.

Ik wil dus een pagebreak na elke wijziging in Vrtnr.

Dan is het (zoals door Wigi opgemerkt) niet logisch om "vrt006" in de code te zetten.
Er zal dan niet overal een paginabreak voorkomen.
Ik ben namelijk uitgegaan van je voorbeeld en mijn code zet een pagebreak na vrt006, vrt008, vrt009.

Met vriendelijke groet,


Roncancio
 
Ik doe vast iets heel erg fout.

Als ik de code van Roncacio er zo in plak en er niets aan wijzig, voert ie alleen een pagebreak in na de eerste regel.

Moet ik nog iets aanpassen aan de code?

Dallandra
 
Ik heb de code losgelaten op je laatste voorbeeld en bij mij worden er pagebreaks gemaakt onder de laatste vrt006, vrt008 etc.
Wat je wel kunt doen is de code laten beginnen bij rij 2 zoals eerder opgemerkt door Wigi.
In dat geval heb je geen (vrijwel) lege beginpagina.

Code:
Sub PaginaEinde()
Dim lRij As Long
    lRij = [B][COLOR="Red"]2[/COLOR][/B]
    While Range("A" & lRij).Value <> ""
        If Range("A" & lRij).Value <> Range("A" & lRij + 1).Value Then
            ActiveSheet.HPageBreaks.Add Before:=Range("A" & lRij + 1)
        End If
        lRij = lRij + 1
    Wend
End Sub

Met vriendelijke groet,


Roncancio
 
Roncancio,

Ik was een beetje blond vanochtend :p

Ik had vergeten een kolom te verwijderen waardoor kolom A iets heel anders was :D

Ik heb idd de lRij = 2 aangepast en nu werkt 't als een zonnetje.

Bedankt!!!!!

:thumb::thumb::thumb:

Dallandra
 
Graag gedaan.

Gaarne de vraag op opgelost zetten (rechts onderaan het scherm).
Bvd.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan