Comment empêcher l'affichage de "impression de...

Résolu
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 - Modifié par cco86260 le 16/05/2014 à 12:04
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 - 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
--

6 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
16 mai 2014 à 13:19
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"

0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
16 mai 2014 à 14:31
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

--
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
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...
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
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
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
16 mai 2014 à 16:11
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

0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
16 mai 2014 à 16:42
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...

--
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
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+
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
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
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
16 mai 2014 à 16:51
merci à toi et bonne continuation

amicalement

Christian
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
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
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
18 mai 2014 à 14:19
Waow !!

Félicitation, et bon courage

Christian
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
16 mai 2014 à 17:28
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
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
18 mai 2014 à 14:18
Bonjour cs_LePivert,

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

A toute,

Christian

--
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
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
0
Rejoignez-nous