Ga naar inhoud

Macro aanmaken om te printen


Aanbevolen berichten

Geplaatst: (aangepast)

Er is een iets oudere dame die zowat alle administratie van een vereniging aantrekt.
Ze is nog niet echt op de hoogte van computer gedoe. Daarom wil ik ze wel een handje helpen, zodat ze toch min of meer zelfstandig kan werken.
Zij moet dus regelmatig eens rapport uitbrengen aan een administratieve koepel, alsook regelmatig een mailtje of telefoontje plegen naar iemand.
Daarom heb ik een vereenvoudigd lijstje in Excel samengesteld waarin de leden van de ouderen vereniging opgenomen zijn.
Er zijn 2 macro's in opgenomen ééntje om de leden alfabetisch te klasseren en één om ze te rangschikken volgens geboortemaand.
Twee knoppen zijn erin voorzien om dit te doen.
Nu zou ik nog graag één macro willen voorzien om deze lijst uit te printen.
Nu wil ik nog eentje aanmaken, deze zou iedereen moeten uitprinten volgens "geboortemaand", enkel dus de kolom met "Naam" en "Maand Nr.".
Ik heb dit al uitgeprobeerd d.m.v. kolommen te verbergen, maar als het dan uitgeprint was dan bleef héél het beeld staan met enkel die 2 kolommen. De verborgen kolommen bleven dus verborgen.
Nu zou ik willen dat alles automatisch terug hersteld is nadat er geprint is.
Desnoods een extra "Herstelknop"?

 

Test_bestand.xlsm

aangepast door K5
  • Reacties 22
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Beste reacties in dit topic

Geplaatste afbeeldingen

Geplaatst:

Wanneer je op de printknop drukt verschijnt een invulbox waarin je het maandnummer moet invullen. (zonder de voorloopnul)

De code geeft je dan een printvoorbeeld. Je kan later de code wijzigen om rechtstreeks af te drukken.

 

K5.xlsm

Geplaatst:

Verbeterde code.

Sub SelectiefPrinten()
    With Blad2
        .Range("H2") = Application.InputBox("Geef het maandnummer op", , , , , , , 1)
        .Cells(1).CurrentRegion.Offset(1).ClearContents
        Blad1.Cells(1).CurrentRegion.AdvancedFilter 2, .Range("G1:H2"), .Range("A1:B1")
        With .Cells(1).CurrentRegion
            .Columns.AutoFit
            .PrintPreview
        End With
    End With
End Sub

 

Geplaatst: (aangepast)
23 minuten geleden, emielDS zei:

Of zoiets?

 

Staat nu op afdruk voorbeeld. om te veranderen naar printen plaats je een apostrof voor volgende regel 

ActiveWindow.SelectedSheets.PrintPreview

 

en doe op de volgende regel de apostrof weg

 

maand sorteren.xlsm

Dit werkt voortreffelijk!

Ik heb het al uitgeprint. Nu heb ik echter nog één vraagje.

De lijst voor die dame bevat een +/- 80 leden. Als ik dit uitprint komt dit als een horizontale afdruk uit, is het mogelijk om de afdruk op "Staand" te brengen?

Dat bespaart voor haar toch enkele bladzijden.

Alleszins hartelijk dank voor je inzet!

Noot: Wat bedoel je eigenlijk i.v.m. die apostrof?

aangepast door K5
Geplaatst: (aangepast)

Vermijd het gebruik van overbodige variabelen.

Sub afdrukken2()
    Application.ScreenUpdating = False
    With Sheets(1)
        .PageSetup.Orientation = xlPortrait
        .Cells(1).CurrentRegion.Sort Key1:=.Range("I1"), Order1:=xlAscending, Header:=xlYes
        .Columns("B:H").EntireColumn.Hidden = True
        .PrintPreview 'PrintOut
        .Columns("B:H").EntireColumn.Hidden = False
        .Cells(1).CurrentRegion.Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:=xlYes
    End With
    Application.ScreenUpdating = True
End Sub

 

aangepast door bakerman
Geplaatst: (aangepast)

Dag Bakerman,

Ik heb de macro aangepast met jouw code.

Het werkt perfect!

Bedankt! Nu zal de dame, waarvan sprake, echt tevreden zijn.

Ik ook natuurlijk!

aangepast door K5
Geplaatst:

Dag Bakerman,

Ik heb nog een bijkomend probleempje!

Het bestandje dat ik bij mijn vraagstelling heb bijgevoegd was namelijk een test-bestandje.

In mijn werkelijk bestand, hetgeen ik uit privacy redenen niet heb geüpload, bestaat uit meerdere kolommen.

Namelijk van kolom A --> K.

Ik heb jouw Macro-bestandje vanuit het test-bestand geëxporteerd en in het doel-bestand geïmporteerd.

Als ik de print-macro hierin activeer krijg ik natuurlijk een héél ander resultaat.

Hier zit ik met een moeilijkheid voor mezelf, namelijk in kolom A staan enkel de registreernummers van de leden in.

Deze zou dus ook moeten verborgen zijn bij het printvoorbeeld.

Ondertussen heb ik al wat zitten klungelen met de macro code, doch zonder gunstig resultaat.

Kun je eventueel deze code nog aanpassen?

Als printresultaat mogen dus enkel kolom B en K zichtbaar zijn.

Is het voor jou mogelijk om dit nog aan te passen?

Geplaatst:
Sub afdrukken()
    Application.ScreenUpdating = False
    With Sheets(1)
        .PageSetup.Orientation = xlPortrait
        .Cells(1).CurrentRegion.Sort .Range("K1"), xlAscending, , , , , , xlYes
        .Range("A:A,C:J").EntireColumn.Hidden = True
        .PrintPreview 'PrintOut
        .Range("A:A,C:J").EntireColumn.Hidden = False
        .Cells(1).CurrentRegion.Sort .Range("B1"), xlAscending, , , , , , xlYes
    End With
    Application.ScreenUpdating = True
End Sub

 

Geplaatst:
17 minuten geleden, bakerman zei:

Sub afdrukken()
    Application.ScreenUpdating = False
    With Sheets(1)
        .PageSetup.Orientation = xlPortrait
        .Cells(1).CurrentRegion.Sort .Range("K1"), xlAscending, , , , , , xlYes
        .Range("A:A,C:J").EntireColumn.Hidden = True
        .PrintPreview 'PrintOut
        .Range("A:A,C:J").EntireColumn.Hidden = False
        .Cells(1).CurrentRegion.Sort .Range("B1"), xlAscending, , , , , , xlYes
    End With
    Application.ScreenUpdating = True
End Sub

 

Ik heb de aangegeven code aangepast.

Maar nu wordt enkel kolom B geprint.

Gast
Dit topic is nu gesloten voor nieuwe reacties.

×
×
  • 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.