Bonjour à tous

Après de nombreuses recherches, je ne parviens pas à résoudre mon problème. Alors je vous expose le truc:

A partir d'un bouton je lance le code suivant pour détecter si l'imprimante virtuelle PFDCreator est installée sur le poste et ainsi ouvre le userform pour la création du PDF. Le code fonctionne super bien mais si après ce code (sans créer le PDF, je sors du userform qui vient de s'ouvir) je désire lancer une autre procédure, VBA est très très lent, et du coup je suis obligé de sortir du fichier et de le relancer pour exécuter mes macros.

J'ai tester en enlevant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Application.ActivePrinter = xxx
et je n'ai plus ce problème de lenteur.

Ma question est donc pourquoi VBA est si lent lorsque j'utilise Activeprinter, avez-vous une autre idée pour vérifier la présence de pdfcreator??

Merci pour votre aide

Cordialement

Motmot

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub COBMailPDF_Click()
Dim PrinterTest As String
Dim PrintDef As String
 
On Error GoTo ErPrint
'Vérifie si l'imprimante PDFCreator est installé sur le poste
PrintDef = Application.ActivePrinter
PrinterTest = "PDFCreator sur Ne00:"
 
Application.ActivePrinter = PrinterTest
Application.ActivePrinter = PrintDef
 
Load UFPDFMailexe
UFPDFMailexe.Show
Exit Sub
 
ErPrint:
MsgBox "Impossible d'envoyer les rapports en PDF sur ce poste" & Chr(10) & "PDFCreator n'est pas installé", vbCritical, "Commande indisponible"
Application.ActivePrinter = PrintDef
 
End Sub