Toon posts:

[EXCEL] Meerdere tabbladen dynamisch in PDF exporteren

Pagina: 1
Acties:

Onderwerpen

Vraag


  • Djurres
  • Registratie: Januari 2013
  • Laatst online: 20-03 10:05
Beste tweakerts,

Ik werk bij een bedrijf waarbij er nog in Excel gepland word. Opzich is dat niet erg, en werkt het behoorlijk goed. De afgelopen maanden heb ik daarbij wel wat handigheidjes ingebouwd dmv van VBA, daarbij is de planning (die eerst in 1 worksheet stond, naast elkaar) iets gewijzigd en staat iedere week nu in een los tabblad.

Nou heb ik een collega die vind dat hij het overzicht verloren is nu we de overstap gemaakt hebben. (Dit is volledig bullshit, maar dat terzijde). Hij wil graag een 'schuifplanning' waarbij hij als het ware van links naar rechts door de planning heen kan schuiven en iedere week voorbij ziet komen. (ipv op een tabblad een week verder klikken 8)7 )

Maargoed, hij kan er dusdanig niet aan wennen dat mij gevraagd is of ik dit zou kunnen realiseren. Nou kan ik met wat snippets en wat basic gepruts echt wel wat, maar hoe ik dit aan moet vliegen is mij eigenlijk een brug te ver. Ik zat te denken om door alle sheets heen te loopen en die vervolgens in 1 PDF te exporteren. Dan kan hij welis waar niet van links naar rechts schuiven, maar wel van boven naar beneden.

In principe lukt dit wel met een simpel stukje code. Onderstaand is te zien dat ik ook al zo slim was geweest om de index van het actieve blad, en de index van het laatste blad op te halen. Ik mis alleen even de stap hoe ik nou een stukkie schrijf waarbij ik een selectie maak van een aantal tabbladen. Als ik een loop doe met een .Select dan cycled hij alleen door de tabbladen heen, en dat wil ik nou juist niet. Ik wil de selectie maken zoals een ctrl + click op een tabblad.

Ik zou het dus ook graag op basis van ActiveWS en LastWS willen doen om het dynamisch te houden. Ook krijg ik de getallen reeks niet goed in een array en er weer uit om het op die manier op te lossen.

Wie kan deze n00b helpen!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Public Sub Schuifplanning()

    With ActiveSheet.PageSetup
        .LeftMargin = Application.InchesToPoints(0)
        .RightMargin = Application.InchesToPoints(0)
        .TopMargin = Application.InchesToPoints(0)
        .BottomMargin = Application.InchesToPoints(0)
        .HeaderMargin = Application.InchesToPoints(0)
        .FooterMargin = Application.InchesToPoints(0)
        '.Orientation = xlLandscape
        .Orientation = xlPortrait
        '.PaperSize = ePaperSize.A3
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With

Dim ActiveWS As Integer
    ActiveWS = ActiveSheet.Index
    
Dim LastWS As Integer
    LastWS = Worksheets(Worksheets.Count).Index
    
Dim weekNumber As String
             weekNumber = Range("L4").Value
    
Dim Path As String
    Path = Environ$("Userprofile") & "\Documents\Planning PDF\"

Sheets(Array("Planning Week 9", "Planning Week 10", "Planning Week 11", "Planning Week 12", "Planning Week 13", "Planning Week 14", "Planning Week 15", "Planning Week 16")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=Path & "Schuifplanning.pdf", ignoreprintareas:=True, OpenAfterPublish:=True
    
End Sub

Alle reacties


Acties:
  • +1Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 16:54

g0tanks

Moderator CSA
Djurres schreef op vrijdag 5 maart 2021 @ 15:01:
Maargoed, hij kan er dusdanig niet aan wennen dat mij gevraagd is of ik dit zou kunnen realiseren. Nou kan ik met wat snippets en wat basic gepruts echt wel wat, maar hoe ik dit aan moet vliegen is mij eigenlijk een brug te ver. Ik zat te denken om door alle sheets heen te loopen en die vervolgens in 1 PDF te exporteren. Dan kan hij welis waar niet van links naar rechts schuiven, maar wel van boven naar beneden.
Waarom maak je niet een stukje code dat alle weken naast elkaar zet in een verzameltab? Dan heb je echt wat je collega wil. Als de layout voor elke week precies hetzelfde is zou dat zelfs zonder VBA kunnen.

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


  • Djurres
  • Registratie: Januari 2013
  • Laatst online: 20-03 10:05
g0tanks schreef op vrijdag 5 maart 2021 @ 15:34:
[...]


Waarom maak je niet een stukje code dat alle weken naast elkaar zet in een verzameltab? Dan heb je echt wat je collega wil. Als de layout voor elke week precies hetzelfde is zou dat zelfs zonder VBA kunnen.
De layout is inderdaad volledig hetzelfde, alleen de lengte van de tabel wil nog wel eens verschillen.

Oppervlakte van de tabel is van D4 tot AH1xx (lengte van de tabel wil verschillen, afstand is altijd D tot AH.
Als ik jou dus goed begrijp zou dit met een for each loop prima kunnen, for each worksheet copy range naar worksheet x waarbij je paste in toegekende cell y

Omschrijf ik dat op deze manier goed? Want wil zelf eerst wel even een VBA opzetje maken en kijken wat ik voor elkaar krijg..

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 16:54

g0tanks

Moderator CSA
Djurres schreef op vrijdag 5 maart 2021 @ 15:49:
[...]


De layout is inderdaad volledig hetzelfde, alleen de lengte van de tabel wil nog wel eens verschillen.

Oppervlakte van de tabel is van D4 tot AH1xx (lengte van de tabel wil verschillen, afstand is altijd D tot AH.
Als ik jou dus goed begrijp zou dit met een for each loop prima kunnen, for each worksheet copy range naar worksheet x waarbij je paste in toegekende cell y

Omschrijf ik dat op deze manier goed? Want wil zelf eerst wel even een VBA opzetje maken en kijken wat ik voor elkaar krijg..
Dat lijkt me een goede aanpak. Ik weet niet of ergens al staat welke week het is, maar eventueel kan je binnen elke iteratie nog het weeknummer laten plaatsen.

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


  • Djurres
  • Registratie: Januari 2013
  • Laatst online: 20-03 10:05
g0tanks schreef op vrijdag 5 maart 2021 @ 15:59:
[...]


Dat lijkt me een goede aanpak. Ik weet niet of ergens al staat welke week het is, maar eventueel kan je binnen elke iteratie nog het weeknummer laten plaatsen.
Ik ga maandag eens aan de gang met wat code, kom ik er niet uit kom ik maandag terug in dit topic!
Dank voor de gedachtwisseling :)

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Ik heb wel eens iets soortgelijks gemaakt. Wat ik deed was alle sheets die niet geprint moesten worden even onzichtbaar maken, vervolgens het hele bestand printen naar pdf en dan de eerste stap weer terugdraaien. Zou zo iets voor jou werken?

  • Djurres
  • Registratie: Januari 2013
  • Laatst online: 20-03 10:05
KabouterSuper schreef op vrijdag 5 maart 2021 @ 16:23:
Ik heb wel eens iets soortgelijks gemaakt. Wat ik deed was alle sheets die niet geprint moesten worden even onzichtbaar maken, vervolgens het hele bestand printen naar pdf en dan de eerste stap weer terugdraaien. Zou zo iets voor jou werken?
Opzich is dat het probleem niet, maar ik wil het graag dynamisch houden want in de toekomst zouden de tabnamen nog wel eens kunnen wijzigen! Thx voor het meedenken iig!
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