[Excel][vba] Printscherm openen

Pagina: 1
Acties:
  • 138 views sinds 30-01-2008
  • Reageer

  • MyTi
  • Registratie: Oktober 2003
  • Laatst online: 08-07 01:22
Hoe kan ik automatisch via een macro (vb) het printscherm openen wat je ook te zien krijgt bij het kiezen van Bestand - Afdrukken?

Ik ken de functies ThisWorkbook.Worksheets("bla").PrintPreview en ThisWorkbook.Worksheets("bla").PrintOut, maar verder kan ik geen print functie vinden. Is het mogelijk om betreffende printschem te openen vanuit een macro (vb)?

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 00:19

Reptile209

- gers -

Volgens deze pagina kan het met onderstaand statement:
code:
1
Application.Dialogs(xlDialogPrint).Show


Uitgebreidere info vind je in deze tutorial voor allerlei common dialogs.

[ Voor 20% gewijzigd door Reptile209 op 02-01-2006 20:01 ]

Zo scherp als een voetbal!


  • MyTi
  • Registratie: Oktober 2003
  • Laatst online: 08-07 01:22
Bedankt dat was precies wat ik bedoelde..

Ik weet niet of ik deze vraag ook binnen dit topic kan stellen, maar is het mogelijk om te detecteren of het printscherm afgesloten is/wordt. Ik wil namelijk dat het werkboek helemaal gesloten wordt nadat het printscherm afgesloten wordt.

  • MichielPH
  • Registratie: Februari 2005
  • Laatst online: 02-04 21:03
code:
1
2
3
4
5
6
7
8
9
' Enables error handling to catch cancel error
On Error Resume Next
' display the dialog box
CommonDialog1.ShowSave
If Err Then
    ' This code runs if the dialog was cancelled
    Msgbox "Dialog Cancelled"
    Exit Sub
End If

  • MyTi
  • Registratie: Oktober 2003
  • Laatst online: 08-07 01:22
Bedankt dat werkt!

Nu mijn laatste vraag.. 8)7 Daarna ben ik echt klaar..
Is heb een werkboek wat ik als alleen-lezen bestand gebruik, er wordt dus niks in opgeslagen. (Dit forceer is zowiezo met Application.Saved=True) Nu wil ik via een knop het betreffende werkboek afsluiten en weer openen zodat het in orignele staat terug is. Er worden namelijk bij gebruik wel bepaalde gegevens gewijzigd/ingevoerd etc. Ik wil dit omdat ik dan niet via een uitgebreide vba functie hoef te zorgen dat alle werkbladen in originele staat terug zijn. Door het werkboek gewoon af te sluiten en weer te openen heb ik namelijk hetzelfde resultaat. Eigenlijk is het dus een soort van reset die ik wil uitvoeren. Is dit mogelijk?

Het is de bedoeling dat het werkboek echt compleet afgesloten en weer opgestart wordt.

[ Voor 6% gewijzigd door MyTi op 03-01-2006 16:20 ]


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 23:54
Gewoon het bestand openen toch?
In VBA:
code:
1
Workbooks.Open("Je bestandsnaam")

Excel zal dan wel gaan mekkeren ("Ding is al open, wijzigingen gaan verloren, etc."), maar dat kan je ondervangen door
code:
1
2
3
Application.DisplayAlerts = False
Workbooks.Open(("Je bestandsnaam")
Application.DisplayAlerts = True

(Ik weet eerlijk gezegd niet helemaal zeker of die laatste regel wordt uitgevoerd, het "uitvoerend" bestand wordt natuurlijk wel gesloten.)

[ Voor 6% gewijzigd door onkl op 03-01-2006 16:24 ]


  • MyTi
  • Registratie: Oktober 2003
  • Laatst online: 08-07 01:22
Dat had ik zelf eigenlijk ook al bedacht maar het probleem is dan dat de Workbook.Open sub niet (opnieuw) uitgevoerd wordt die een Userform moet laten zien. En aangezien alles erna niet uitgevoerd wordt kan ik daar ook niks mee..

Private Sub Workbook_Open()
UserForm.Show
End Sub

[ Voor 16% gewijzigd door MyTi op 04-01-2006 15:01 ]

Pagina: 1