Comment empêcher l'affichage de "impression de... [Résolu]

cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 mai 2014 à 12:03 - Dernière réponse : cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention
- 18 mai 2014 à 14:25
Bonjour,

Toujours en rapport à mon module de convertion en PDF que voici :

Sub ToPdf()
Dim pdfjob As Object
Dim DefaultPrinter
chemsave = ThisWorkbook.Sheets("MATRICE").Range("A111").Value 'tu peux changer la feuille et la cellule
'If chemsave = "" Then Exit Sub
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
'NomExcel = ThisWorkbook.Name
'NomPdf = Left(NomExcel, Len(NomExcel) - 4) & ".pdf"
With pdfjob
If .cstart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = chemsave 'chemin destination
.cOption("AutosaveFilename") = feuil & ".pdf" 'nom de la feuille
.cOption("AutosaveFormat") = 0
.cClearCache
End With
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=32766, Copies:=1, ActivePrinter:="PDFCreator" 'on imprime la feuille active
'ThisWorkbook.PrintOut Copies:=1, ActivePrinter:="PDFCreator"
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
Do Until pdfjob.cCountOfPrintjobs = 0 'ligne modifier remettre 0 si probleme
DoEvents
Loop
With pdfjob
.cDefaultprinter = DefaultPrinter
.cClearCache
.cClose
End With
Set pdfjob = Nothing
'Dim Ret As Variant
'Ret = ShellExecute(hwnd, "open", chemsave & To_PDF.ComboBox1.Value & ".pdf", "", vbNullString, 1) 'ouverture du pdf
'MsgBox "Votre PDF se trouve à cet emplacement: " & chemsave, vbInformation, "Convertir en PDF"
End Sub

J'aurais voulu savoir s'il était possible d'empêcher l'affichage du message "impression de", il apparait a chaque conversion, il n'y a pas besoin de validation, mais j'aimerais ne plus l'avoir, je voudrais que se soit uniquement ma barre de progression qui donne l'avancement, la voici (grace à Jordane45)

Private Sub Cmd_PDF_Click()
Dim i As Byte
Dim nbToGo As Integer

nbToGo = ListBox1.ListCount - 1
ProgressBar.ProgressBar1.Max = 100
ProgressBar.Show

'boucle sur les éléments de la ListBox
For i = 0 To nbToGo
If ListBox1.Selected(i) = True Then
feuil = ListBox1.List(i) 'nom de la feuille
Sheets(feuil).Select
' Maj ProgressBar
ValP = Int((i / nbToGo) * 100)
ProgressBar.ProgressBar1.Value = ValP
ToPdf
End If
Next

End Sub

Merci à tous pour votre aide,

Bonne journée à tous et bon WE

Christian
--
Afficher la suite 

Votre réponse

14 réponses

pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 16 mai 2014 à 13:19
0
Merci
Bonjour,

As tu essayé de mettre le DisplayAlerts sur False ?
Cf : http://msdn.microsoft.com/fr-fr/library/office/ff839782%28v=office.15%29.aspx
Si non, dans la procédure Topdf :
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=32766, Copies:=1, ActivePrinter:="PDFCreator" 'on imprime la feuille active
'ThisWorkbook.PrintOut Copies:=1, ActivePrinter:="PDFCreator"

Commenter la réponse de pijaku
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 mai 2014 à 14:31
0
Merci
Bonjour pijaku,

J'ai essayer avec le displayAlert, mais rien, le message qui s'affiche n'as pas besoin de validation, il dis juste ce qu'il fait... du genre :

impression de bla bla, ensuite il passe a la feuille 2 impression de bla bla... tu vois ce que je veux dire ?

Merci de me consacrer du temps

Christian

--
pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 16 mai 2014 à 15:19
Désolé, mais pour cette fenêtre je ne sais pas...
J'ai fait quelques recherches sur Internet mais ne trouve rien à ce propos.
Je vais faire encore quelques essais, mais si quelqu'un passe par ici, un coup de main n'est pas de refus...
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 mai 2014 à 15:22
Je continu egalement de mon coté... on se tient au jus... je vais essayer de recontacter la personne qui m'as fournit le code... elle est sur ce forum...

Merci
Commenter la réponse de cco86260
pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 16 mai 2014 à 16:11
0
Merci
Bonjour,

Essaie ceci :

Dans un Module :
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As Long, ByVal bErase As Long) As Long
Private Declare Function UpdateWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long


Public Function fncScreenUpdating(State As Boolean, Optional Window_hWnd As Long = 0)
Const WM_SETREDRAW = &HB
Const WM_PAINT = &HF
If Window_hWnd = 0 Then
    Window_hWnd = GetDesktopWindow()
Else
    If IsWindow(hwnd:=Window_hWnd) = False Then
        Exit Function
    End If
End If

If State = True Then
    Call SendMessage(hwnd:=Window_hWnd, wMsg:=WM_SETREDRAW, wParam:=1, lParam:=0)
    Call InvalidateRect(hwnd:=Window_hWnd, lpRect:=0, bErase:=True)
    Call UpdateWindow(hwnd:=Window_hWnd)
Else
    Call SendMessage(hwnd:=Window_hWnd, wMsg:=WM_SETREDRAW, wParam:=0, lParam:=0)
End If
End Function 


L'appel, dans ton code :
fncScreenUpdating State:=False
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=32766, Copies:=1, ActivePrinter:="PDFCreator"
fncScreenUpdating State:=True

Commenter la réponse de pijaku
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 mai 2014 à 16:42
0
Merci
Re,

Alors là je suis bluffé...

on s'approche du but, ça fonctionne... on la voit toujours mais plus rapidement... pas trop genant...

Je pense que quelques modif et c'est bon... mais là c'est encore moins de mon ressort...

Merci de consacrer du temps pour moi, c'est sympas...

--
pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 16 mai 2014 à 16:45
Malheureusement, c'est tout ce que j'ai pu trouver...
et je ne serais pas disponible avant un bout de temps.......
Vraiment désolé.
A+
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 mai 2014 à 16:50
Non mais c'est génial... le but est là... je vais classé comme résolu...
tu m'as bien aidé là...

Voyage de prévu? c'est bon ça...

Moi pas.... boulot...grrrr
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 mai 2014 à 16:51
merci à toi et bonne continuation

amicalement

Christian
pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 17 mai 2014 à 08:49
Salut,
Non, pas voyage... Ou plutôt si, mais petit déplacement... à la maternité avec Madame.
Prévu demain (normalement)...
Bon week end à toi

Amicalement,
Franck
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 18 mai 2014 à 14:19
Waow !!

Félicitation, et bon courage

Christian
Commenter la réponse de cco86260
cs_Le Pivert 5241 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 18 août 2018 Dernière intervention - 16 mai 2014 à 17:28
0
Merci
Bonjour Christian,

Le problème vient de PDFCreator à mon avis. Essaie d'ouvrir PDFCreator tu vas dans Imprimante -Options-Paramètres Generaux2 et tu décoches Afficher une animation durant le traitement. Par contre cela tu ne peux pas le faire par code. Il faut que tu le fasses manuellement sur toutes les machines, je pense!

cdtl
Commenter la réponse de cs_Le Pivert
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 18 mai 2014 à 14:18
0
Merci
Bonjour cs_LePivert,

Merci pour ta réponse, je vais essayer ça de suite, et reviens donner le résultat...

A toute,

Christian

--
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 18 mai 2014 à 14:25
Bon, je viens de tester, mais c'est pas ça non plus... mais je vais donc continuer à chercher, pour l'instant ça n'empêche pas le programme de tourner, c'est juste pas esthétique...

La je vais passer en verif tous les codes pour les rendre plus propre eux aussi du coups, car à force de venir sur le forum, j'ai appris des choses et en ai tester aussi... c'est dingue comme on peux se compliquer la vie quand on apprend le VBA...lol


Bonne journée à toi,

Christian
Commenter la réponse de cco86260

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.