• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Dynamisch printen.

Status
Niet open voor verdere reacties.

Sytse1

Gebruiker
Lid geworden
9 aug 2007
Berichten
584
Office versie
miDer
Ik heb een excel toepassing met acht tabbladen.
Ik zou graag in elk tabblad een printknop willen hebben die dynamisch het afdruk bereik berekend en daarna de gebruiker de keuze geeft voor een print preview en afdruk.
Wellicht is het ook mogelijk om dit in 1 functie te krijgen. In de functie dan de constatering welk tabblad actief is.
 
Heb je het bestand?
 
Code:
sub hsv()
with activesheet
   .pagesetup.printarea = .usedrange.address
 if msgbox("printpreview?",vbyesno) =vbyes then
     .printpreview
  else
   .printout
 end if
end with
end sub
 
HSV. bedankt voor je code.

Bij de keuze nee kan ik het tabblad als pdf opslaan.
Bij Ja de preview met de mogelijkheid om te printen.
Verder de vraag of het mogelijk is of de afdruk op A4 passend en liggend in vba af te dwingen.
 
Laatst bewerkt:
Bij de keuze 'ja' voor preview kan je in de preview links bovenin op "Afdrukken" klikken (er is geen printerkeuze).
Bij 'nee' print het direct af.

Werk je op een Mac dat jij het als Pdf kan opslaan?
 
Nee ik werk met Windows 10
Ik zie alleen het voorbeeld en geen printermenu ook geen printer links boven.
Opslaan zou ook in Word mogen.
 
Laatst bewerkt:
Welk versie van Excel?
 
office 365
Wellicht zou er mee te maken kunnen hebben dat het lint, menu bij de start verborgen worden?
Code:
Private Sub Workbook_Open()

'de rij en kolomkoppen worden verborgen
Dim wsSheet As Worksheet
    Application.ScreenUpdating = False
    For Each wsSheet In ThisWorkbook.Worksheets
        If Not wsSheet.Name = "Blank" Then
            wsSheet.Activate
            With ActiveWindow
                .DisplayHeadings = False
                .DisplayWorkbookTabs = True
                .DisplayHorizontalScrollBar = False
            End With
        End If
    Next wsSheet
    Application.ScreenUpdating = True
    
'menu ed verbergen
 ActiveWindow.DisplayHeadings = False
 ActiveWindow.DisplayGridlines = False
 Application.CommandBars("Standard").Visible = False
 Application.CommandBars("Formatting").Visible = False
 Application.CommandBars("Worksheet menu Bar").Enabled = False
 Application.DisplayFormulaBar = False
 Application.DisplayStatusBar = False
 Application.DisplayFormulaBar = False
' ActiveWindow.DisplayWorkbookTabs = False
 ActiveWindow.DisplayHeadings = False
 Application.AskToUpdateLinks = False
 Application.ShowSelectionFloaties = False
 Application.EnableLivePreview = False
 Application.ExecuteExcel4Macro "Show.Toolbar(""Ribbon"",False)"
    
'rechtermuisknop in tabblad uitschakelen plaats in workbook
 Application.CommandBars("Ply").Enabled = False
    
'Alle werkbladen worden beveiligd
Application.DisplayStatusBar = False
For Each ws In ThisWorkbook.Worksheets
ws.Protect Password:="BSW"
Next ws
 
Laatst bewerkt:
Daar ga je al, elke verandering is dus geen verbetering.
Daar zijn ook nog zoveel verschillende versies van dat iemand anders dat maar moet testen.
 
Het print menu wordt getoond met
Code:
   Application.ExecuteExcel4Macro "Show.Toolbar(""Ribbon"",True)"
      .PrintPreview
 
Zo ook.

Code:
If Application.Dialogs(xlDialogPrinterSetup).Show Then ActiveSheet.PrintPreview

Maar ik ben blij dat je je bestand niet geplaatst hebt want ik weet niet of je in de before_close event alles wel terug zet op normaal.
 
Harry, natuurlijk wordt bij het afsluiten alles teruggezet.
Bedankt voor je code. Werkt nu uitstekend.
Sytse
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan