Ga naar inhoud

Aanbevolen berichten

Geplaatst:

Een vraagje aan alpha (of iemand anders) die me verleden jaar geholpen heeft met een macro te maken om in excel met een druk op de knop de huidige actieve pagina (en enkel die) afdrukt.  Dit dus zonder de pagina te moeten selecteren of invoeren in het printdialoogscherm.  Het excel document dient als kassasysteem voor een eetfestijn van mijn vereniging, en bevat per pagina 1 bestelling van de maaltijd.  De pagina's moeten dus worden afgedrukt in functie van het verschijnen van de klanten.  Dit jaar houden we terug een eetfestijn, maar ik merk dat de macro niet meer werkt.  Nochtans is er met de macro volgens mij niets mis, want hij werkt wel op sommige andere documenten.  Ik heb van de macro een opdrachtknop gemaakt in de 'werkbalk snelle toegang'.  Bij het aanklikken hiervan licht deze even op, maar komt er geen afdruk, ook geen foutmelding.  Ik heb alles eens volledig overgedaan (verwijderd en terug aangemaakt), maar niets helpt.  Ik denk dat het te maken heeft met de plaats waar ik de macro bewaar: ik doe dit in een eenvoudig basisdocument, zonder veel tekst of formules.  Als ik in mijn werkdocument klik op de opdrachtknop in de 'werkbalk snelle toegang' wordt dit basisdocument automatisch geopend het nodig is wil de macro werken.  Doe ik daar iets verkeerd of moet er een documentgebonden macro worden gemaakt, zo ja, hoe dan, want dat vind ik niet.  Het gaat over de volgende macro:
  

Sub macro1()
Dim pb As HPageBreak, pnr As Integer
On Error GoTo einde
pnr = 1
For Each pb In ActiveSheet.HPageBreaks
If pb.Location.Row > ActiveCell.Row Then
Exit For
End If
pnr = pnr + 1
Next pb
ActiveSheet.PrintOut From:=pnr, To:=pnr
einde:

End Sub

Alvast bedankt voor een antwoord.

Geplaatst:

Zonder het document in te zien waarin het fout loopt, is het gissen naar de oorzaak.

 

Opm: plaats code in een bericht steeds tussen codetags.

 

 

 

Geplaatst:

Hallo,

 

Zegt je volgende foutmelding iets: 'error 9 Het subscript valt buiten bereik'.  Ik heb er een kennis ook eens laten naar kijken en deze foutmelding krijgen we als we in de macro de zin 'On Error GoTo Einde' weghalen. Er gaat dus iets mis tijdens 'For Each pb In ActiveSheet.HPageBreaks'.  Maar wat?  Het document bevat heel wat pagina's, is dat het probleem?  Nochtans was dit vorig jaar ook zo, en dan werkte het prima.  Sedertdien heb ik wel Windows10 geïnstalleerd, het heeft daar toch niets mee te maken?  In de bijlage vind je een document waarin de macro wel werkt (zat.maagd), een waarin ze niet werkt (zon.werkdoc) en het basisdocument waarin de macro is gezet.  Zelfs wanneer ik het goede document onder een andere naam bewaar werkt daarin de macro ook niet.  

Kan je eens testen of ontdekken wat er misgaat?  Alvast bedankt.

Kassasysteem 2017 macro - zat maagd.xlsm

Kassasysteem 2017 macro - zon werkdoc.xlsm

Basis voor macro huidige pag.xlsm

Geplaatst:

Er gaat dus iets mis tijdens 'For Each pb In ActiveSheet.HPageBreaks'

Ja, dat is wel duidelijk, want dat is de enige opdracht in de macro die wat moet doen; daar had je 'On error...' niet voor weg hoeven te halen.

Ik heb er het topic van vorig jaar op nageslagen en daarin schreef ik duidelijk: Ervan uitgaande dat er alleen horizontale pagina-einden zijn.....

In jouw blad zijn er nu niet alleen horizontale- maar ook vertikale pagina-einden, dus logisch dat de code dan niet werkt! Bovendien heb je de pagina's slecht ingedeeld, er zijn tabellen die overlopen van de ene naar de andere pagina. Stel in dat de pagina-einden moeten worden weergegeven, dan zie je dat meteen.

Ik heb nu geen tijd om er verder naar te kijken, maar bestudeer de code en probeer zelf ook eens wat!!

×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.