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

Afdrukbereik instellen op basis van tekstregels, vaste hoogte.

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

GHJW

Gebruiker
Lid geworden
31 jan 2019
Berichten
11
Ik wil graag een offerte/factuurblad met bedragen maken en deze afdrukken op briefpapier.
Bovendien wil ik gebruik maken van tekstterugloop in de cellen.
Stel er passen 50 tekstregels/rijen op het briefpapier dan dit is ook het afdrukbereik.
Maar bij elke volgende tekstregel (tekstterugloop) in een cel verhoogt het aantal
van "50" regels met één omdat het afdrukbereik gekoppeld is aan de cel/rij ongeacht de inhoud.
Meest handige zou zijn dat een onafhankelijk veld van bijv. 240 mm hoog afgedrukt kan worden.
Wie heeft een oplossing?
 
dat kan je toch door je bereik af te drukken en via de printinstellingen dan te kiezen om het te doen passen op 1 pagina.
Desnoods neem je hiervan een macrootje op, zodat je die handeling niet telkens moet herhalen.
 
Handmatig het bereik/pagina-einde instellen is geen probleem.
Afdruk verschalen/passend maken op één pagina is geen optie.
Als er 50 rijen op een briefpapierpagina kunnen en elke rij heeft
gemiddeld 5 regels tekst, door de tekstterugloop, dan komen
er 250 tekstregels op 1 pagina. Het zou mooi zijn als VBA/macro
het aantal regels binnen de cel/tekstterugloop kan zien/tellen.
 
voorspellen van het aantal paginas die zullen afgedrukt worden, dat doe je bv. zo.
Daarna kan je via trial and error, daar proberen op in te spelen.
Hieronder een voorbeeldje en dan een poging om het aantal blz te beïnvloeden
Code:
Sub PrintMax2Paginas()
    With ActiveSheet
        With .PageSetup
            .Zoom = False                                            'geen zoom als we met FitTo... werken
            .FitToPagesWide = 1                                      'max 1 pagina in de breedte
            .FitToPagesTall = 100                                    'die voorlopig veel te groot
            .Parent.PrintPreview                                     'even snel een afdrukvoorbeeld
            paginas = ExecuteExcel4Macro("GET.DOCUMENT(50)")         'dit is het resulterende aantal paginas
            MsgBox "er zullen " & paginas & "  worden afgedrukt"
            If paginas > 2 Then .FitToPagesTall = 2                  'indien teveel paginas, krimpen tot 2
        End With
        .PrintPreview
        paginas = ExecuteExcel4Macro("GET.DOCUMENT(50)")             'dit is het resulterende aantal paginas
        MsgBox "er zullen " & paginas & "  worden afgedrukt"
    End With
End Sub
Tellen van het aantal regels binnen een cel via die terugloop is onmogelijk exact te bepalen.
By the way, excel blijft bij uitstek een rekenprogramma, geen tekstverwerker
 
Laatst bewerkt:
Ik gebruik nu het eerste deel van de VBA-Code (50 regels/100% schaal -is tevens de gewenste optie-)
en het werkt perfect. Ik heb een kolom genummerd en bij elke extra tekstterugloop-regel (binnen de cel)
schuift een genummerde cel door naar de volgende afdrukpagina. Top!!! Heel veel dank voor de hulp!!!
 
hoe weet je dat er een terugloop in een bepaalde cel gebeurd is ?
Dat nummeren begrijp ik niet.
Het is de pagesetup (meer bepaald die fittopageswide=1) in die macro, die alles toch doet, niet je nummer ?
 
zie bijlage,
in de macro worden de vroegere paginaeindes gereset en daarna doet de pagesetup zijn werk.
Via een msgbox krijg je nu te weten waar iedere pagina stopt.
Je kan desnoods nog even je paginaeindes verslepen (niet nodig dacht ik) en dan nog een keer de macro "paginaeindes" laten lopen.

Je kan een bestand als binaire werkmap of met macros hier neerzetten.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan