[EXCEL] Meerdere tabbladen dynamisch in PDF exporteren

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Djurres
  • Registratie: Januari 2013
  • Laatst online: 03-09 22:25
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:
  • +1 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 01:36

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


Acties:
  • 0 Henk 'm!

  • Djurres
  • Registratie: Januari 2013
  • Laatst online: 03-09 22:25
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..

Acties:
  • 0 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 01:36

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


Acties:
  • 0 Henk 'm!

  • Djurres
  • Registratie: Januari 2013
  • Laatst online: 03-09 22:25
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 :)

Acties:
  • 0 Henk 'm!

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

When life gives you lemons, start a battery factory


Acties:
  • 0 Henk 'm!

  • Djurres
  • Registratie: Januari 2013
  • Laatst online: 03-09 22:25
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