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

Workbook_BeforePrint

Status
Niet open voor verdere reacties.

toffepeer69

Gebruiker
Lid geworden
1 apr 2009
Berichten
25
Goedenavond,

Als ik in een excel file gebruik wil maken van Workbook_BeforePrint dan werkt dit goed, maar alleen in de excel file waarin de code is geplaatst onder ThisWorkbook.

Zodra ik dezelfde code plaats in Personal.xlsb onder ThisWorkbook dan wordt er de code niet uitgevoerd.

Doe ik iets fout of klopt dit.

Ronald
 
Workbook_BeforePrint is wat de naam al aangeeft, een Workbook event. Dit treedt dus alleen op in het actieve document wanneer je gaat afdrukken.
 
Oké maar waarom werkt een Workbook_Open dan wel vanuit Personal.xlsb in alle andere excel bestanden?

Ronald
 
Ik heb geen idee of dat zo is. Ik heb Personal.xlsb nog nooit gebruikt. Misschien omdat de Personal.xlsb bij het openen van een document ook wordt geopend.
 
Goedenavond,

Wat ik heb begrepen is dat je Personal.xlsb kunt gebruiken om code in te plaatsen, welke je in alle andere excel files kunt gebruiken die geopend zijn.

Dus bij het starten van excel zou de code die in Personal.xlsb staat dan ook beschikbaar moeten zijn voor alle geopende excel bestanden.

Als ik dit test met andere code werkt het goed, maar dus niet met Workbook_Beforeprint.

Is er iemand die wel weet waarom niet en is er ergens een overzicht van wat wel in Personal.xlsb gebruikt kan worden?

Ronald
 
Zoals ik al zei, de Workbook_BeforePrint (en andere Workbook events) wordt alleen geactiveerd voor het actieve werkboek. Je moet dus niet het Workbook event detecteren maar het Application event. Zet dit eens in de ThisWorkbook module van je Personal.xlsb:
Code:
Private WithEvents AppEvents As Application
 
Private Sub Workbook_Open()
    Set AppEvents = Application
End Sub
 
Private Sub AppEvents_WorkbookBeforePrint(ByVal Wb As Workbook, Cancel As Boolean)
    If Not Wb Is Me Then
        Call JouwMacro(Wb)
    End If
End Sub

Private Sub JouwMacro(Wb As Workbook)
    MsgBox "Afdrukken: " & Wb.Name
End Sub

Sla deze op en sluit hem.
Open nu een willekeurig ander document en druk deze af.
Je zal dan een messagebox zien die zegt: Afdrukken: Naam van je document.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan