• 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.

Variable pagina einde invoegen met VBA

  • Onderwerp starter Onderwerp starter HWV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Beste,

Ik wil een variabel pagina einde invoegen in een bestand met VBA,
In de bijlage het bestand, het geel gekleurde is altijd variable en als dat minder is dan 17 regels dan moet er een pagina einde ingevoegd worden.

Het formulier wordt in fase`s opgebouwd met VBA, dus ik zou kunnen tellen van af de onderkant hoeveel regels het zijn maar hoe weet ik dan waar de pagina einde staat.

Wie kan mij hierin helpen.

Groet HWV

Bekijk bijlage Variable paginaeinde.xlsx
 
andere insteek : deze kijkt of er horizontale pagina-eindes zijn, zo ja, dan moet er ook 1 zijn voor regel 37, de rest past zich dan aan.
Code:
Sub test()
  With Sheets("bald1")
    .ResetAllPageBreaks                                    'Alle paginaeindes verwijderen
    If .HPageBreaks.Count Then .HPageBreaks.Add Before:=.Range("A37")  'als er meerdere paginas zijn, dan 1e paginaeinde op A37
  End With
End Sub
 
Niet echt de oplossing

Beste,

mvw64 en cow18

Ik heb het bekeken en het is niet wat het moet zijn misschien even nog een kleine uitleg.

Het is een offerte programma waar artikelen aan worden toegevoegd doormiddel van een userform, dit gaat goed.
Zo kan ik meerdere artikelen toevoegen voor dat ik de offerte afsluit met de standaard tekst zoals tekst naam en bedrijf (dit zijn de 17 regels).
Dus voordat ik het laatst gedeelte toevoeg moet er gekeken worden naar de laatst gevulde cel en waar de pagina einde nu staat.
Is dit minder dan 17 regels dan pagina einde plaatsen na laats gevulde cel anders niet. (dus A37 is geen harde gegeven)

Dit allemaal omdat het er anders niet uit ziet, en vindt het beter als de tekst niet onderbroken wordt door een pagina einde.
Soms staat alles op één blad maar het kunnen soms ook meerdere bladen zijn

Groet HWV
 
voeg je 17 regels onmiddelijk in en tel daarna het aantal paginabreaks zoals ik je al voordeed.
Is dat >0, dan staat het over 2 of meerdere paginas en moet je zelf gaan bepalen waar die paginabreaks moeten komen.
Je wil dus 1 hebben op 17 voor je laatste cel, dan bepaal je je laatste cel en 17 rijen erboven geef je die in.
Zijn er nog meer paginas nodig, herhaal tot je het gewenste resultaat krijgt.
je moet zelf maar even met die 70 en 50 spelen
Code:
Sub NaToevoegenLaatste17rijen()
  Dim c As Range, bOk As Boolean
  With Sheets("bald1")
    .ResetAllPageBreaks                                    'Alle paginaeindes verwijderen
    If .HPageBreaks.Count Then
      On Error Resume Next
      Set c = .Range("A" & .Rows.Count).End(xlUp).Offset(-17)  'laatst gebruikte cel in A-kolom
      bOk = Not (c Is Nothing)
      Do While bOk
        .HPageBreaks.Add Before:=c  'als er meerdere paginas zijn, dan 1e paginaeinde op A37
        bOk = c.Row > 70
        If bOk Then Set c = c.Offset(-50)
      Loop
    End If
  End With
End Sub
 
Laatst bewerkt:
oké maar

cow18 bedankt voor je reactie

mmm ik denk dat ik je even kwijt ben.
Ik kan wel wat met VBA maar dit gaat even boven mijn pet :(

Code:
Sub test()
  Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
End Sub
Laats gevulde cel maar dan sorry ik ben de weg kwijt

Groet hwv
 
mijn vorige reactie bevat nu een macro
 
Oke ga er mee aan de gang

Beste,

bedankt voor de input, ga er mee aan de gang
Tot zover bedankt ik laat nog wat weten of het me gelukt is

Groet HWV
 
Het werkt nu zoals ik voor ogen had, bedankt hiervoor cow18.
Ik loop nog wel tegen wat problemen aan maar daar moet ik wel uit komen.

Daarom sluit ik deze topic

Groet HWV
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan