• 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, verborgen rijen niet afdrukken.

Status
Niet open voor verdere reacties.

JoepG

Gebruiker
Lid geworden
23 okt 2020
Berichten
39
Beste alle,

Ik heb een Excel werkblad, waarbij op basis van een cel waarde een deel regels worden verborgen.
Bij het printen naar PDF pakt hij nu alle verborgen regels als blanco pagina's.
Ik probeer dus het print bereik aan te passen op basis van die zelfde cel waarde. Maar het werkt bij hij blijft lege pagina's geven.
Wat doe ik fout?
Ik heb het ook geprobeerd met een separate sub, en dan middels de Call functie deze op te roepen, ook dat werkte niet.
Ik heb volgende code gemaakt:

Code:
Option Explicit

Sub Aantalbladen()

If Range("AZ3") = "1" Then
Rows("1:550").Hidden = False
End If
With ActiveSheet.PageSetup.PrintArea = "A1:M550"
End With

If Range("AZ3") = "2" Then
Rows("1:55").Hidden = False
Rows("56:550").Hidden = True
End If
With ActiveSheet.PageSetup.PrintArea = "A1:M55"
End With

If Range("AZ3") = "3" Then
Rows("1:110").Hidden = False
Rows("111:550").Hidden = True
End If
With ActiveSheet.PageSetup.PrintArea = "A1:M110"
End With

If Range("AZ3") = "4" Then
Rows("1:165").Hidden = False
Rows("166:550").Hidden = True
End If
With ActiveSheet.PageSetup.PrintArea = "A1:M165"
End With

If Range("AZ3") = "5" Then
Rows("1:220").Hidden = False
Rows("221:550").Hidden = True
End If
With ActiveSheet.PageSetup.PrintArea = "A1:M220"
End With

If Range("AZ3") = "6" Then
Rows("1:275").Hidden = False
Rows("276:550").Hidden = True
End If
With ActiveSheet.PageSetup.PrintArea = "A1:M275"
End With

If Range("AZ3") = "7" Then
Rows("1:330").Hidden = False
Rows("331:550").Hidden = True
End If
With ActiveSheet.PageSetup.PrintArea = "A1:M330"
End With

If Range("AZ3") = "8" Then
Rows("1:385").Hidden = False
Rows("386:550").Hidden = True
End If
With ActiveSheet.PageSetup.PrintArea = "A1:M385"
End With

If Range("AZ3") = "9" Then
Rows("1:440").Hidden = False
Rows("441:550").Hidden = True
End If
With ActiveSheet.PageSetup.PrintArea = "A1:M440"
End With

If Range("AZ3") = "10" Then
Rows("1:495").Hidden = False
Rows("496:550").Hidden = True
End If
With ActiveSheet.PageSetup.PrintArea = "A1:M495"
End With

If Range("AZ3") = "11" Then
Rows("1:550").Hidden = False
End If
With ActiveSheet.PageSetup.PrintArea = "A1:M550"
End With

End Sub
 

Bijlagen

  • Voorbeeld.xlsm
    122,4 KB · Weergaven: 14
Laatst bewerkt:
u vergeet een voorbeeld bestand te plaatsen.
 
En codetags te gebruiken.

Daarnaast zou ik het zo schrijven:
Code:
Sub Aantalbladen()
    Select Case Range("AZ3")
        Case "1"
            Rows("1:550").Hidden = False
            ActiveSheet.PageSetup.PrintArea = "A1:M550"
        Case "2"
            Rows("1:55").Hidden = False
            Rows("56:550").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:M55"
        Case "3"
            Rows("1:110").Hidden = False
            Rows("111:550").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:M110"
        Case "4"
            Rows("1:165").Hidden = False
            Rows("166:550").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:M165"
        Case "5"
            Rows("1:220").Hidden = False
            Rows("221:550").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:M220"
        Case "6"
            Rows("1:275").Hidden = False
            Rows("276:550").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:M275"
        Case "7"
            Rows("1:330").Hidden = False
            Rows("331:550").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:M330"
        Case "8"
            Rows("1:385").Hidden = False
            Rows("386:550").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:M385"
        Case "9"
            Rows("1:440").Hidden = False
            Rows("441:550").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:M440"
        Case "10"
            Rows("1:495").Hidden = False
            Rows("496:550").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:M495"
        Case "11"
            Rows("1:550").Hidden = False
            ActiveSheet.PageSetup.PrintArea = "A1:M550"
    End Select
End Sub
 
Laatst bewerkt:
@ edmoor, de code lijkt goed te werken,:)
Maar behalve dat het er netter uit ziet, waarom werk jou code wel en die van mij niet?
Ik zie mijn fout niet ..:(
 
Dat komt waarschijnlijk omdat de With ActiveSheet.PageSetup.PrintArea regels buiten de If opdrachten staan waardoor alleen de laatste geldt.
 
Laatst bewerkt:
Op een ander werkblad, heb ik ook kolommen welke verborgen worden of niet op basis van een cel waarde,
dan moet ik hiervoor ook meteen elke vorm van case aanmaken welke kan voor komen?
Het is nagenoeg gelijk aan bovenstaande, en zijn 6 kollommen welke op basis van de keuze verborgen zijn.

Code:
'Kollom


Sub Voorwaarden()
If Range("AZ4") = "1" Then
Columns(8).EntireColumn.Hidden = True
Columns(9).EntireColumn.Hidden = True
Columns(10).EntireColumn.Hidden = False
Columns(11).EntireColumn.Hidden = False
Columns(13).EntireColumn.Hidden = True
Columns(14).EntireColumn.Hidden = True
Columns(15).EntireColumn.Hidden = True
Columns(16).EntireColumn.Hidden = False
Columns(17).EntireColumn.Hidden = False
Columns(18).EntireColumn.Hidden = False
End If

If Range("AZ4") = "2" Then
Columns(8).EntireColumn.Hidden = False
Columns(9).EntireColumn.Hidden = False
Columns(10).EntireColumn.Hidden = True
Columns(11).EntireColumn.Hidden = True
Columns(13).EntireColumn.Hidden = False
Columns(14).EntireColumn.Hidden = False
Columns(15).EntireColumn.Hidden = False
Columns(16).EntireColumn.Hidden = True
Columns(17).EntireColumn.Hidden = True
Columns(18).EntireColumn.Hidden = True
End If

'Rijen

    Select Case Range("AZ3")
        Case "1"
            Rows("4:275").Hidden = False
            ActiveSheet.PageSetup.PrintArea = "A1:R275"
        Case "2"
            Rows("4:27").Hidden = False
            Rows("28:275").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:R27"
        Case "3"
            Rows("4:52").Hidden = False
            Rows("53:275").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:R110"
        Case "4"
            Rows("4:81").Hidden = False
            Rows("82:275").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:R165"
        Case "5"
            Rows("4:106").Hidden = False
            Rows("107:275").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:R220"
        Case "6"
            Rows("4:136").Hidden = False
            Rows("137:275").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:R275"
        Case "7"
            Rows("4:161").Hidden = False
            Rows("162:275").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:R330"
        Case "8"
            Rows("4:191").Hidden = False
            Rows("192:275").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:R385"
        Case "9"
            Rows("4:216").Hidden = False
            Rows("217:275").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:R440"
        Case "10"
            Rows("4:246").Hidden = False
            Rows("247:275").Hidden = True
            ActiveSheet.PageSetup.PrintArea = "A1:R495"
        Case "11"
            Rows("4:275").Hidden = False
            ActiveSheet.PageSetup.PrintArea = "A1:R550"
    End Select
End Sub

Dus dan zou ik 11 x 2 opties 22 cases aan moeten maken?
moet ik dan van die twee keuzes een combinatie getal maken?
(wat bij mij meestal een ALS formule met alle mogelijke combinatie :-]
 
Dat zou ik inderdaad ook met Select Case doen.
Zo'n Select Case mag je ook "nesten".
 
Laatst bewerkt:
Nu weet ik alleen niet helemaal wat u met "nesten" bedoeld.
Ik zou een formules maken in cel AZ5:
=(AZ3x100)+AZ4
en vervolgens

=ALS(AZ5=101;1;ALS(AZ5=102;2;ALS(AZ5=201;3;ALS(AZ5=202;4 .......)))).etc
Maar daar moet ook een makkelijkere manier voor zijn..
 
Je hebt het nu ineens over formules waar we het over VBA hadden?
 
Ja, ik zou in een CEL een formule maken om de juiste Case in VBA te kunnen selecteren.
dat bedoel ik er eigenlijk mee.

Ik was aan zoeken op forum, hoe ik dan een Case kan selecteren op basis van 3 verschillende invoer velden, kan het alleen niet vinden.
Select case 1 als AZ2 = 1 & AZ3 = 1 & AZ4 = 2
Maar hoe ik dat op moet schrijven, ben ik nog aan het zoeken.
 
Laatst bewerkt:
Verder niet naar gekeken want voobeeldbestanden vol fouten neem ik niet serieus

Als de stap steeds 55 is dan volstaat zoiets ook.
Code:
Sub VenA()
  Rows("1:550").Hidden = True
  Rows(1).Resize(Range("AZ3") * 55).Hidden = False
End Sub
 
Sorry VenA,

ik heb het bestand gepakt en overige tabbladen er uit gegooid waardoor alle zoekverwijzingen naar die tabbladen verwijderd zijn.
Vandaar dat er al die fout meldingen in staan.
 
Sorry, ziek geweest.
Probleem is deels opgelost.
Ga eerst nog puzzelen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan