[VBA-W] Message genant : Prog occupé => Basculer vers
Bonjour,
Désespérée de ce message Microsoft, je refais appel à vous !!
Merci d'avance.
Losque j'exécute mes macro WORD (sauvegarde++creation d'un pdf puis envoi par
mail), je voudrais éviter ce genre de message du style serveur occupé,
l'appli ne peut répondre choisissez ...
Citation:
Impossible de terminer cette action car le programme "Microsoft Word" ne
répond pas. Choisissez Basculer vers et corrigez le problème
J'ai trouvé 1 lien intéressant mais la propiété "OLERequestPendingTimeout"
n'est pas référencé dans mon compilateur VBA Word :
http://support.microsoft.com/default.aspx?scid=kb;fr;240809
Auriez-vous une solution ?
ou alors un code déclenchant une autre macro à la fermeture d'une fenetre .pdf
Merci
Lor
toujours aussi désepérée ....
Bonjour,
sympa vos réponses :
pour la temporisation
le code est impeccable mais ne m'élude pas ce message !
Certes j'utilise des applis mais y en a que deux ou 3 !!
Je résume :
Je lance de mon progiciel (Graphtalk : Prolog),
une macro Word
qui génère un fichier .doc que j'enregistre sous un nom_1.doc,
puis transforme en PDF et enregistre sous Nom_1.pdf, toutefois ce PDF est en visualisation donc il persiste à l'écran via une fenetre adobe
puis écrit sur le .doc Duplicata, sauvegarde et ferme le document actif sous Word
et là elle fait apparaitre un message afin de déterminer si on envoie ou pas par Email
ici j'ai un message qui revient toutes les 5 secondes pour me dire que j'ai un message en attente de réponse (Prog occupé ou ne réponds pas basculer vers ...)
Justement je souhaiterais disposer de plus de 5 secondes histoire de consulter la visualisation de mon Pdf tranquilou sans stress messagique
Puis si oui envoi par mail via une macro de word appelant outlook !!
voili voilou !
Merci de vos réponses ...
Lor :cry:
encore et toujours désespérée
Bon faites pas attention aux lourdeurs de code !!
je débute !!
voici la macro que je lance à partir de mon progiciel via un OLE Word !!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
Option Explicit
Public pOptions As AdobePDFMakerForOffice.ISettings
Sub Envoi_auto()
Dim File_nm
Dim Email
Dim MyRange
Dim Response
Dim oWord
'Application.OLERequestPendingTimeout = 0
Application.DisplayAlerts = wdAlertsNone
File_nm = ActiveDocument.Name
File_nm = Left(File_nm, Len(File_nm) - 4)
File_nm = "I:\Contrats_pdf_test\" & File_nm & ".pdf"
'recup Email
Set MyRange = ActiveDocument.Range(0, 0)
Set MyRange = MyRange.GoTo(What:=wdGoToPage, Name:="2")
Set MyRange = MyRange.GoTo(What:=wdGoToBookmark, Name:="\page")
Email = MyRange.Sentences(6).Text
Email = Left(Email, Len(Email) - 4)
Email = Right(Email, Len(Email) - 11)
Call Pdf(File_nm, Email)
'lancertempo
Call Duplicata
ActiveDocument.Save
ActiveDocument.Close
'ActivePrinter = DefPrinter
Response = MsgBox("Souhaitez-vous continuez et envoyer par Courriel ce document ?", _
vbYesNo + vbCritical + vbDefaultButton2, "Vérification de l'envoi")
Application.DisplayAlerts = False
If _
Response = vbYes _
Then ' L'utilisateur a choisi Oui.
Call Mail(File_nm, Email)
End If
End Sub
Sub Pdf(File_nm, Email)
'Dim DefPrinter
'DefPrinter = Application.ActivePrinter
'ActivePrinter = "Adobe PDF"
Application.DisplayAlerts = False
'Application.
'.OLERequestPendingTimeout = 0
Set pOptions = Application.COMAddIns(2).Object.GetCurrentConversionSettings()
pOptions.AddTags = False
pOptions.AddLinks = True
pOptions.OutputPDFFileName = File_nm
pOptions.ViewPDFFile = True
Application.COMAddIns(2).Object.CreatePDFEx pOptions
End Sub
Sub Mail(File_nm, Email)
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
'Application.DisplayAlerts = wdAlertsNone
Application.DisplayAlerts = False
On Error Resume Next
'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
'Outlook wasn't running, start it from code
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If
'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)
With oItem
'Set the recipient for the new email
.To = Email
'Set the recipient for a copy
.CC = "MOI@afifi.com"
'Set the subject
.Subject = "Envoi certificat "
'The content of the document is used as the body for the email
.Body = "Bonjour" & vbCrLf & vbCrLf & _
"Veuillez trouver ci-joint le contrat demandé." & vbCrLf & vbCrLf & _
"Merci" & vbCrLf & vbCrLf & _
"" & vbCrLf & _
"" & vbCrLf & vbCrLf & _
"Ce message et toutes les pièces jointes (ci-après le ''message'') sont établis à l'intention exclusive de ses destinataires et sont confidentiels." & vbCrLf & _
"Si vous recevez ce message par erreur, merci de le détruire et d'en avertir immédiatement l'expéditeur." & vbCrLf & _
"Toute utilisation de ce message non conforme à sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse." & vbCrLf & _
"L'internet ne permettant & vbCrLf
.Attachments.Add Source:=File_nm
.Send
End With
If bStarted Then
'If we started Outlook from code, then close it
oOutlookApp.Quit
End If
'Clean up
Set oItem = Nothing
Set oOutlookApp = Nothing
End Sub |
Merci !!
Lor :cry:
VBA passer en pdf sans intervenir J'ai ça :
regarde ça
si ça peux te convenir !!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
Sub Pdf()
'ChangeFileOpenDirectory "G:\Outils\"
DefPrinter = Application.ActivePrinter
ActivePrinter = "Adobe PDF"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
Collate:=True, Background:=False, PrintToFile:=False, PrintZoomColumn:=0, _
PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
ActivePrinter = DefPrinter
End Sub |
ou
voir forum :
http://www.developpez.net/forums/vie...&highlight=pdf
le dernier message à la page 2 si tu as adobe acrobat,
attention il faut cocher de nouvelles library !!
sinon toujours pas solutionner mon probleme de message !!!
a+
Lor
Re: VBA passer en pdf sans intervenir J'ai ça :
Citation:
Envoyé par lorbond
sinon toujours pas solutionner mon probleme de message !!!
J'ai le sentiment que tu ne comprends pas ce que je t'ai suggéré.
Je te propose donc de le voir au pas à pas:
1/ Comment créés-tu ou lances-tu la création de ton PDF (Tu ne m'a pas répondu) ?
2/ Quel que soit la méthode, tu appliques ce que je t'ai envoyé et tu testes sur le document Actif...
3/ On s'occupera de l'envoi par mail après...
Argy
AIE AIE Qu'il fait chaud !!!!!
Salut ,
Je génère mon PDF via une macro :
regarde dans mes premiers messages, j'y ai mis tout le code que je faisais tourner et notamment celui de création de PDF.
La msgbox me sert à confirmer si l'édition PDF est validée par l'utilisateur et que ce dernier veut l'envoyer par mail ou le contraire !
Merci
Lor
:evil:
tout espoir est vainc ...
Merci pour ton code
En effet, il marche impec !!
mais j'ai toujours ce foutu message !
Cela doit venir de mon appel de départ depuis mon progiciel ...
car quand je fais tourner en direct les macros Word sur un document ouvert pas de message :wink:
A suivre donc ...
Merci encore
Lor