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

Einde pagina markering automatisch verwijderen bij verborgen cellen (VBA?)

Status
Niet open voor verdere reacties.

JWExcel

Gebruiker
Lid geworden
20 mrt 2015
Berichten
44
Beste,

Ik heb het volgende probleem:

Ik heb een sheet waarin tekst en afbeeldingen elkaar afwisselen in een kolom.
Deze afbeeldingen hebben als eigenschap, Move and size with cells, vanwege gelinkte functies.
Ook zijn er einde pagina markering toegevoegd per zoveel afbeeldingen en tekst.

Nu verberg ik een aantal rijen waarin ook deze afbeeldingen staan en wil ik dit gaan printen.
Echter als ik printen dan krijg ik lege pagina's dit kan of komen door:
- Einde pagina markering staat een aantal keer in die verborgen cellen
of - Hij print toch de verborgen rijen waar de plaatjes staan

De vraag is: Hoe kan ik ervoor zorgen dat bij printen de verborgen rijen niet meegenomen worden, ondanks dat hier pagina-einde markeringen zijn toegevoegd?


Ik kan natuurlijk voor 1x ze zelf eruit halen alleen deze sheet wordt een sjabloon en honderden keren gebruikt met steeds andere verborgen rijen.

VBA oplossingen zijn ook prima!

Met vriendelijke groet!

Bekijk bijlage Versie voor Forum3x.zip
 
Laatst bewerkt:
JWExcel,

De oorzaken en oplossingen kunnen heel divers zijn.
Kun je een voorbeeld bestand invoegen.
Dat maakt het geven van een oplossing een stuk eenvoudiger.

Rob
 
JWExcel,

Ik zie in jouw document dat je geen afdrukbereik hebt ingesteld. Als ik die aanbreng dan zie ik in het afdrukvoorbeeld geen lege pagina's meer.
Kijk even of dat jouw probleem oplost.

Rob
 
Het afdruk bereik laat ik automatisch genereren met de knop opslaan als PDF.
Hij selecteert alleen de kolom D en in de test is het rij 5 tm 196 (D5 tm D196).

Het probleem is echt dat hij in het voorbeeld witte pagina's pakt van de rijen 22 tm 33.
Als je namelijk op de knop opslaan als PDF duwt. Dan zie je dat onder het plaatje (pagina 2) er 3 witte pagina's zijn voor het woord Bron weer op een pagina staat.

De reden is dat er pagina einde markeringen zijn toegevoegd in deze verborgen cellen. Deze zijn echter nodig omdat er iedere keer andere rijen verborgen worden maar de groepjes rijen wel apart op 1 vel papier moeten komen.

Als het niet duidelijk is dan probeer ik het nog keer beter uit te leggen :rolleyes:
 
Laatst bewerkt:
JWExcel,

Ik zie je probleem. Ik weet echter niet zo snel hoe ik dit voor je op kan lossen.
Wellicht dat een ander je verder kan helpen.

Rob
 
Hoop dat iemand nog even een mooie ingeving of work around heeft :D
 
vooraleer je gaat printen, bepaal je eerst je printbereik met deze macro en daarna print je je blad af of exporteer je je pdf
Code:
Sub afdrukken()
    With Sheets("prijsindicatie")
        Set c = .Range("D5:D90").SpecialCells(xlCellTypeVisible)
        .PageSetup.PrintArea = c.Address
    End With
End Sub
je kon het anders ook in 1 regel doen, zonder die "set c= ..."
 
Laatst bewerkt:
Cow18, bedankt voor je reactie. Een print area instellen had ik al in de opslaan als pdf macro toegevoegd.

Ik hoop dat ik het verkeerd zie maar met jouw oplossing los ik niet het probleem op dat ik bv alleen rij 50 tm 59 op 1 pagina wil.

Stel ik wil standaard rij 1 tm 10 op 1 pagina, 11 tm 20, 21 tm 30 enz tot 91 tm 100.
Nu kan ik hier standaard pagina einde markering invoeren. Maar als dan in een versie rij 21 tm 50 verborgen is dan print ik alsnog deze 3 lege pagina's.

Dit is het probleem met pagina einde markering invoeren bij cellen die mogelijk verborgen worden.

Ik ben nu aant kijken of het volgende een oplossing kan bieden (hulp is welkom!!!):

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim c As Range

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

End Sub
 
Ik wil het probleem op deze manier gaan oplossen:
https://www.helpmij.nl/forum/showthread.php/454309-automatisch-pagina-einde

Nu heb ik zijn code geintegreerd met mijn eigen code alleen stel hij nu de pagina breaks nog niet goed in.
Is het zo dat ik in het 2e gedeelte van de code (vanaf Dim lLaatsteRegel As Long) door het array te bevestigen, de pagebreaks opnieuw instel?
(Ik heb idee fout ergens in de rode gemarkeerde regel zit)



Code:

Sub PDF()

ActiveSheet.Range("$B$2:$B$196").AutoFilter Field:=1, Criteria1:=Array( _
"#1 is ja, 0 is nee", "1", "Allene bij lucht pomp", "="), Operator:= _
xlFilterValues



Dim c As Range

ActiveSheet.ResetAllPageBreaks
For Each c In ActiveSheet.Range("A2:A250").SpecialCells(xlCellTypeConstants)
If c.Value <> c.Offset(-1).Value Then ActiveSheet.HPageBreaks.Add Before:=c
Next c





pad1 = "C:\Users\JanWillemSwerts\Desktop\Automatische PI"

BestandsNaam = Range("D6").Value & " - " & Range("D5").Value

ActiveSheet.Range("E5:E196").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pad1 & BestandsNaam, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub
 
Laatst bewerkt:
je gaat in de fout door een selectie aan te geven bij je export en niet je tabblad, dus trekt hij zich niets aan van je printbereik
Dit is gebaseerd op je eerste versie, ik denk dat je ergens met de kolommen zitten schuiven hebt sedertdien.
Code:
Sub NULLENinklappen()
'
' NULLENinklappen Macro
'

'
    Dim c As Range, c1 As Range
    With Sheets("prijsindicatie")
        .ResetAllPageBreaks
        Set c = .Range("$A$2:$A$50")
        c.AutoFilter Field:=1, Criteria1:=Array("#1 is ja, 0 is nee", "1", "Allene bij lucht pomp", "="), Operator:=xlFilterValues
        For Each c1 In c.SpecialCells(xlCellTypeConstants)
            If c1.Value <> c1.Offset(-1).Value Then ActiveSheet.HPageBreaks.Add Before:=c
        Next c1
        MsgBox c.Offset(, 3).SpecialCells(xlCellTypeVisible).Address
        .PageSetup.PrintArea = c.Offset(, 3).SpecialCells(xlCellTypeVisible).Address
        pad1 = "C:\Users\JanWillemSwerts\Desktop\Automatische PI"
        BestandsNaam = Range("D6").Value & " - " & Range("D5").Value
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=pad1 & BestandsNaam, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan