Toon posts:

(excel)-tabbladen selecteren

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0Henk 'm!

  • Yoni1207
  • Registratie: Januari 2021
  • Laatst online: 08-03-2021
Mijn vraag

ik heb een macro geschreven om een aantal werkbladen te selecteren, in pdf af te drukken en op te slaan op de pc. Dit werkt perfect, behalve wanneer een tabblad verdicht is.
...

Relevante software en hardware die ik gebruik
excel
...

Wat ik al gevonden of geprobeerd heb

dit is mijn macro die werkt, behalve dus als 1 vd werkbladen verdicht is... (ter info: elk tabblad zou kunnen verdicht zijn en het is niet de bedoeling om dit tabblad zichtbaar te maken, dit zou verdicht moeten blijven)..

Sub afdrukken_pdf()
'
' afdrukken_pdf Macro
'

'
Sheets(Array("FOUTMELDINGEN", "Begeleidende brief", "organogram AH+BL (1)")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"F:\Demi\Naam.pdf", IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub
...

Alle reacties


Acties:
  • 0Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Met verdicht bedoel je verborgen? Is dat Vlaams?

Anyway, een verborgen tabblad kun je dus inderdaad nooit selecteren. Maar select is ook niet nodig. Dat is in je vorige topic ook al opgemerkt.
Lustucru schreef op vrijdag 22 januari 2021 @ 11:19:
[...]
Maar sowieso is een worksheet.select in een macro meestal onnodig en ongewenst.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0Henk 'm!

  • Yoni1207
  • Registratie: Januari 2021
  • Laatst online: 08-03-2021
Verdicht = verborgen inderdaad. :)

maar hoe weet de macro dan welke tabbladen hij moet selecteren?
moet ik best op een andere manier werken?

dat had jij voorgesteld om te gebruiken:
for each ws in activeworkbook.worksheets
If ws.visible then
'doe je ding
endif

moet daar geen 'next' in gebruikt worden? ik krijg daar een foutmelding op..

Acties:
  • 0Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 04:23

g0tanks

Moderator CSA
Yoni1207 schreef op zondag 7 maart 2021 @ 12:33:
maar hoe weet de macro dan welke tabbladen hij moet selecteren?
Wat je nu doet is een sheet selecteren en dan vervolgens refereren naar ActiveSheet. In de code van @Lustucru kan je gewoon direct refereren naar "ws".
Yoni1207 schreef op zondag 7 maart 2021 @ 12:33:
moet daar geen 'next' in gebruikt worden?
Als ik kijk naar de code van @Lustucru dan staat daar toch Next bij?

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW


Acties:
  • 0Henk 'm!

  • Yoni1207
  • Registratie: Januari 2021
  • Laatst online: 08-03-2021
Sub pdf()
'
' pdf Macro
'

'
For Each ws In ActiveWorkbook.Worksheets
If ws.Visible Then
Sheets().Select

End If
Next ws

End Sub

--> dan kom ik hier op uit.. maar hij moet van bv. de 10 tabbladen enkel tabblad 1, 3 en 5 in pdf zetten, en als 3 bijvoorbeeld verborgen is, dan moet hij deze niet meenemen.. ik veronderstel in de formule hierboven, dat hij alle zichtbare tabbladen gaat meenemen.. ik ben dus niet helemaal mee (ben ook nog een beginner en nog niet zo lang bezig met VBA wat je wel gemerkt zult hebben :))

Acties:
  • 0Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Zou je ajb je code tussen [code][/code] willen zetten?


In je eerste regel:
code:
1
Sheets(Array("FOUTMELDINGEN", "Begeleidende brief", "organogram AH+BL (1)"))
geef je al een array mee van eventueel af te drukken bladen. Dan is de rest dus simpel: je loopt daar doorheen en selecteert ze alleen als ze zichtbaar zijn:

code:
1
2
3
4
5
6
7
replaceselection=true
For each ws in Sheets(Array("FOUTMELDINGEN", "Begeleidende brief", "organogram AH+BL (1)"))
     If ws.visible then
          ws.select replaceSelection
          replaceSelection=false
     endif
next ws


replaceSelection is een handigheidje. Doordat die bij de eerste sheet 'true' is begin je daar een nieuwe selectie. Meteen daarna wordt hij false en breidt iedere volgende select opdracht de selectie uit.

Een alternatief is eerst een array opbouwen met de juiste sheets, maar dat zijn meer regels. Dit is dus een van de weinige gevallen waarin een select handig kan zijn. ;)

[Voor 8% gewijzigd door Lustucru op 07-03-2021 15:54]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0Henk 'm!

  • Yoni1207
  • Registratie: Januari 2021
  • Laatst online: 08-03-2021
Lustucru,

werkt inderdaad perfect. bedankt!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 04:23

g0tanks

Moderator CSA
Het is mij trouwens niet helemaal duidelijk of de drie geselecteerde sheets ("FOUTMELDINGEN", "Begeleidende brief", "organogram AH+BL (1)") ook gelijk de enige zijn die zichtbaar zijn. Als dat zo is kan het nog simpeler door de hele workbook te printen. ExportAsFixedFormat print namelijk standaard alleen de zichtbare sheets. Dus dan werkt het volgende ook:
code:
1
2
3
4
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "export.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=True

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee