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

Afdruktitels niet op alle pagina's

Status
Niet open voor verdere reacties.

Hamadryas

Gebruiker
Lid geworden
21 jun 2019
Berichten
24
Dag allemaal

Ik heb in een excelwerkblad 6 pagina's onder elkaar.
Ik zou graag op de eerste 5 pagina's de aftruktitels die bovenaan het werkblad staan (rij 1 tot 6) mee afdrukken.
Op pagina 6 moet dit echter niet meer.

Is er een mogelijkheid om dit gedaan te krijgen? Eventueel via VBA?

Alvast bedankt voor jullie hulp!
Hamadryas
 
Graag even een voorbeeldbestandje met hoe het is en hoe je het wilt hebben...
 
dat wordt iets om in 2 keer af te drukken, eerst de 1e 5 met en dan de 6e zonder titels.
Alternerend de even en oneven paginas dat kan wel.
 
Goedemorgen

Hierbij een voorbeeld bestandje.
Als je spreekt van afdrukken in 2 stappen, kan dit dan wel in 1 pdf? of zijn er sowieso 2 pdfen nodig?

Alvast bedankt voor de feedback!
 

Bijlagen

  • Voorbeeld.xlsx
    40,5 KB · Weergaven: 38
Handmatig is dit goed te doen:
- maak een kopie van het blad naar een nieuwe map (rechts-klik op tab > verplaatsen/kopieren > naar nieuwe map en kopie maken)
- maak in de nieuwe map een kopie van het blad (klik op tab en sleep iets naar rechts met ctrl ingedrukt)
- in eerste blad laatste pag verwijderen, in tweede blad alles behalve de laatste (dit zal ook de pagina instelling wijzigen)
- selecteer beide bladen (met eerste actief ctrl-klik op de tweede)
- kies afdrukken/exporteren
- nieuwe map weggooien
Neem dit evt op als macro en test of het herbruikbaar is.
 
Eventueel via VBA?
Code:
Sub hsv()
Dim i As Long
With ActiveSheet
 For i = 1 To 6
  .PageSetup.PrintTitleRows = IIf(i <> 6, "$1:$6", "")
  .PrintOut i, i, , True
 Next i
End With
End sub

Misschien werkt onderstaande vlotter .
Code:
Sub hsv()
Dim i As Long
With ActiveSheet
 For i = 1 To 6 step 5
  .PageSetup.PrintTitleRows = IIf(i <> 6, "$1:$6", "")
  .PrintOut iif(i=1,1,i), iif(i=1,5,i), , True
 Next i
End With
End Sub
 
Laatst bewerkt:
Dag HSV

Bedankt voor de VBA oplossing.
De tweede oplossing is inderdaad praktischer.
Is het mogelijk om de beide pagina's in 1 document af te drukken?

Ik zou het nodig hebben voor verschillende werkbladen in het bestand, maar het doortrekken naar alle werkbladen lukt normaal zelf wel :)
Ik heb in mijn origineel document ook nog andere werkbladen (met vaste layout) die ook mee afgedrukt worden.

Alvast bedankt!
 
Laatst bewerkt:
Kun je van pagina 6 niet een apart werkblad maken? Eventueel met een koppeling naar pagina 6.
 
Dag Pixcel

Het werkblad dat als voorbeeld diend wordt automatisch gegenereerd.
Op basis van een lijst wordt het werkblad een aantal keer gekopieerd. Het gekopieerde werkblad is dan gelinkt aan vannalle andere werkbladen.
Het was het simpelste om pagina 6 onderaan toe te voegen inzake van formules en macro's die reeds geschreven zijn.

Ik hoop dus de afdruktittels nog goed te krijgen maar in het slechtste geval laat ik ze op pagina's 2 tot 5 gewoon weg :)

Met vriendelijke groeten
Hamadryas
 
ik zou even kijken of je geen batchprogrammaatje kan maken, waarbij je de 2 pdf's die je zonet aanmaakte, de 1e met pag 1-5 en de 2e met pag 6, zou mergen.
Zoiets zou toch de zaak enorm vereenvoudigen, de parameters voor dat bestandje zou je via VBA zo kunnen doorgeven.
 
Je kan de bereiken natuurlijk gewoon opgeven voor de twee pdf's.
 
Toch een poging met pagina 6 kopiëren als afbeelding naar een eigen blad. Voorwaarden:
- afdrukbereik van Blad1 aanpassen naar 5 pagina's
- usedrange van Blad1 moet goed zijn
- Blad2 toegevoegd met juiste pagesetup.
Code:
Public Sub PrintToPdf()
    Dim r As Excel.Range
    Dim shp As Excel.Shape
    If Blad2.Shapes.Count > 0 Then Blad2.Shapes(1).Delete
    With Blad1
        Set r = .Range(.PageSetup.PrintArea)
        Set r = r.Offset(r.Rows.Count).Resize(.UsedRange.Rows.Count - r.Rows.Count)
        r.Copy
    End With
    With Blad2
        Application.ScreenUpdating = False
        Application.Goto .Cells(1)
        .Pictures.Paste
        Set shp = .Shapes(1)
        .PageSetup.PrintArea = .Range(shp.TopLeftCell.Address, shp.BottomRightCell.Address).Address
    End With
    ActiveWorkbook.Worksheets(Array("Blad1", "Blad2")).Select
    Blad1.ExportAsFixedFormat Type:=xlTypePDF, Filename:="ZesPaginas.pdf", IgnorePrintAreas:=False, OpenAfterPublish:=True
    Blad1.Select
    Application.CutCopyMode = False
End Sub
 

Bijlagen

  • Laatste pagina.xlsm
    56,2 KB · Weergaven: 28
heel clever !
 
Super bedankt!
Ik probeer dit nu in mijn geheel van afdrukken te integreren. :)

Pixcel, je bent een held!
 
Dag Allemaal,

Ter info voor eventuele anderen die met dit probleem zouden zitten en als update: Ik heb gevonden dat door mijn pagina 6 bovenaan te zet, het probleem opgelost is zonder VBA of moeilijke processen.
Doordat mijn afdruktitels dan op rij 39 tot 43 staan neemt hij ze enkel over op alle volgende pagina's en dus niet op de eerste.

Toch bedankt voor het vele denkwerk!
 
ik vond het truukje van Pixcel nochtans geniaal in zijn eenvoud.
Je zit, in uitgebreide werkbladen, te knoeien met paginabreaks en toch print excel het net eventjes anders uit.
Stop de moeilijke gevallen in een picture
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan