Je me suis créé une macro (affectée à un bouton d'une de mes barres d'outil)
me permettant, par automation VBA, d'imprimer virtuellement au format .pdf
mon document en cours grâce à PDFCreator, puis d'ouvrir un nouveau message
Outlook et d'insérer le fichier .pdf en pièce jointe.
Le seul problème, c'est qu'il faut que je m'y prenne à 2 fois pour obtenir
le bon résultat, car la première fois que j'exécute ma macro, le fichier .pdf
ne se crée pas (ou en tous cas, mon système ne s'actualise pas). J'obtiens
donc un message me disant que le fichier que je veux joindre à mon mail
n'existe pas. Ce n'est que quand j'appuye une 2ème fois sur mon bouton
contenat la macro, que apparement le système s'est actualisé et que là tous
se passe sans problème.
Qq connaitrai-t-il une astuce pour, en vba, réactualiser mon dossier dans
lequel mon pdf est censé se trouver, et ainsi pouvoir réaliser le tout d'un
seul click.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anacoluthe
Bonjour !
'Stach' nous a écrit ...
Je me suis créé une macro (affectée à un bouton d'une de mes barres d'outil) me permettant, par automation VBA, d'imprimer virtuellement au format .pdf mon document en cours grâce à PDFCreator, puis d'ouvrir un nouveau message Outlook et d'insérer le fichier .pdf en pièce jointe. Le seul problème, c'est qu'il faut que je m'y prenne à 2 fois pour obtenir le bon résultat, car la première fois que j'exécute ma macro, le fichier .pdf ne se crée pas (ou en tous cas, mon système ne s'actualise pas). J'obtiens donc un message me disant que le fichier que je veux joindre à mon mail n'existe pas. Ce n'est que quand j'appuye une 2ème fois sur mon bouton contenat la macro, que apparement le système s'est actualisé et que là tous se passe sans problème. Qq connaitrai-t-il une astuce pour, en vba, réactualiser mon dossier dans lequel mon pdf est censé se trouver, et ainsi pouvoir réaliser le tout d'un seul click.
Je ne connais pas PDFCreator mais je suppose qu'il s'agit d'un driver d'impression en PDF. Votre problème est probablement lié alors à l'impression en arrière-plan : votre macro continue son cours alors que le système n'a pas fini d'immprimer. C'est un problème classique lors d'impressions vraies. Copié-collé d'une précédente réponse :
Il y a plusieurs méthodes pour attendre une fin d'impression: - supprimer l'impression en tâche de fond ActiveDocument.Printout Background:úlse ou Options.PrintBackground = False - si on veut garder le spooling pour pouvoir faire autre chose on peut aussi avec Options.PrintBackground = True faire intervenir un autre processus d'attente comme par exemple une UserForm "Impression en cours..." qui ne fait rien qu'attendre que la file d'attente soit vide Set WordApp = GetObject(, "Word.Application") Do While WordApp.BackgroundPrintingStatus > 0 DoEvents Loop - on peut passer par des API d'attente de processus - on peut placer une temporisation plus ou moins fixe etc etc
Anacoluthe « Attendre est encore une occupation. C'est ne rien attendre qui est terrible. » - Cesare PAVESE
Bonjour !
'Stach' nous a écrit ...
Je me suis créé une macro (affectée à un bouton d'une de mes barres d'outil)
me permettant, par automation VBA, d'imprimer virtuellement au format .pdf
mon document en cours grâce à PDFCreator, puis d'ouvrir un nouveau message
Outlook et d'insérer le fichier .pdf en pièce jointe.
Le seul problème, c'est qu'il faut que je m'y prenne à 2 fois pour obtenir
le bon résultat, car la première fois que j'exécute ma macro, le fichier .pdf
ne se crée pas (ou en tous cas, mon système ne s'actualise pas). J'obtiens
donc un message me disant que le fichier que je veux joindre à mon mail
n'existe pas. Ce n'est que quand j'appuye une 2ème fois sur mon bouton
contenat la macro, que apparement le système s'est actualisé et que là tous
se passe sans problème.
Qq connaitrai-t-il une astuce pour, en vba, réactualiser mon dossier dans
lequel mon pdf est censé se trouver, et ainsi pouvoir réaliser le tout d'un
seul click.
Je ne connais pas PDFCreator mais je suppose qu'il s'agit d'un driver
d'impression en PDF. Votre problème est probablement lié alors à
l'impression en arrière-plan : votre macro continue son cours alors
que le système n'a pas fini d'immprimer. C'est un problème classique
lors d'impressions vraies. Copié-collé d'une précédente réponse :
Il y a plusieurs méthodes pour attendre une fin d'impression:
- supprimer l'impression en tâche de fond
ActiveDocument.Printout Background:úlse
ou
Options.PrintBackground = False
- si on veut garder le spooling pour pouvoir faire autre chose
on peut aussi avec Options.PrintBackground = True
faire intervenir un autre processus d'attente
comme par exemple une UserForm "Impression en cours..."
qui ne fait rien qu'attendre que la file d'attente soit vide
Set WordApp = GetObject(, "Word.Application")
Do While WordApp.BackgroundPrintingStatus > 0
DoEvents
Loop
- on peut passer par des API d'attente de processus
- on peut placer une temporisation plus ou moins fixe
etc etc
Anacoluthe
« Attendre est encore une occupation.
C'est ne rien attendre qui est terrible. »
- Cesare PAVESE
Je me suis créé une macro (affectée à un bouton d'une de mes barres d'outil) me permettant, par automation VBA, d'imprimer virtuellement au format .pdf mon document en cours grâce à PDFCreator, puis d'ouvrir un nouveau message Outlook et d'insérer le fichier .pdf en pièce jointe. Le seul problème, c'est qu'il faut que je m'y prenne à 2 fois pour obtenir le bon résultat, car la première fois que j'exécute ma macro, le fichier .pdf ne se crée pas (ou en tous cas, mon système ne s'actualise pas). J'obtiens donc un message me disant que le fichier que je veux joindre à mon mail n'existe pas. Ce n'est que quand j'appuye une 2ème fois sur mon bouton contenat la macro, que apparement le système s'est actualisé et que là tous se passe sans problème. Qq connaitrai-t-il une astuce pour, en vba, réactualiser mon dossier dans lequel mon pdf est censé se trouver, et ainsi pouvoir réaliser le tout d'un seul click.
Je ne connais pas PDFCreator mais je suppose qu'il s'agit d'un driver d'impression en PDF. Votre problème est probablement lié alors à l'impression en arrière-plan : votre macro continue son cours alors que le système n'a pas fini d'immprimer. C'est un problème classique lors d'impressions vraies. Copié-collé d'une précédente réponse :
Il y a plusieurs méthodes pour attendre une fin d'impression: - supprimer l'impression en tâche de fond ActiveDocument.Printout Background:úlse ou Options.PrintBackground = False - si on veut garder le spooling pour pouvoir faire autre chose on peut aussi avec Options.PrintBackground = True faire intervenir un autre processus d'attente comme par exemple une UserForm "Impression en cours..." qui ne fait rien qu'attendre que la file d'attente soit vide Set WordApp = GetObject(, "Word.Application") Do While WordApp.BackgroundPrintingStatus > 0 DoEvents Loop - on peut passer par des API d'attente de processus - on peut placer une temporisation plus ou moins fixe etc etc
Anacoluthe « Attendre est encore une occupation. C'est ne rien attendre qui est terrible. » - Cesare PAVESE
Stach
Bonsoir Anacoluthe,
j'ai bien essayé comme tu me mle conseil:
ActiveDocument.Printout Background:úlse ou Options.PrintBackground = False
Mais ça na marche pas (Propriété ou méthode non gérée par cet objet)
Tu as une idée d'où ça vient? Merci
-- Stach ;-)
Bonjour !
'Stach' nous a écrit ...
Je me suis créé une macro (affectée à un bouton d'une de mes barres d'outil) me permettant, par automation VBA, d'imprimer virtuellement au format .pdf mon document en cours grâce à PDFCreator, puis d'ouvrir un nouveau message Outlook et d'insérer le fichier .pdf en pièce jointe. Le seul problème, c'est qu'il faut que je m'y prenne à 2 fois pour obtenir le bon résultat, car la première fois que j'exécute ma macro, le fichier .pdf ne se crée pas (ou en tous cas, mon système ne s'actualise pas). J'obtiens donc un message me disant que le fichier que je veux joindre à mon mail n'existe pas. Ce n'est que quand j'appuye une 2ème fois sur mon bouton contenat la macro, que apparement le système s'est actualisé et que là tous se passe sans problème. Qq connaitrai-t-il une astuce pour, en vba, réactualiser mon dossier dans lequel mon pdf est censé se trouver, et ainsi pouvoir réaliser le tout d'un seul click.
Je ne connais pas PDFCreator mais je suppose qu'il s'agit d'un driver d'impression en PDF. Votre problème est probablement lié alors à l'impression en arrière-plan : votre macro continue son cours alors que le système n'a pas fini d'immprimer. C'est un problème classique lors d'impressions vraies. Copié-collé d'une précédente réponse :
Il y a plusieurs méthodes pour attendre une fin d'impression: - supprimer l'impression en tâche de fond ActiveDocument.Printout Background:úlse ou Options.PrintBackground = False - si on veut garder le spooling pour pouvoir faire autre chose on peut aussi avec Options.PrintBackground = True faire intervenir un autre processus d'attente comme par exemple une UserForm "Impression en cours..." qui ne fait rien qu'attendre que la file d'attente soit vide Set WordApp = GetObject(, "Word.Application") Do While WordApp.BackgroundPrintingStatus > 0 DoEvents Loop - on peut passer par des API d'attente de processus - on peut placer une temporisation plus ou moins fixe etc etc
Anacoluthe « Attendre est encore une occupation. C'est ne rien attendre qui est terrible. » - Cesare PAVESE
Bonsoir Anacoluthe,
j'ai bien essayé comme tu me mle conseil:
ActiveDocument.Printout Background:úlse ou Options.PrintBackground = False
Mais ça na marche pas (Propriété ou méthode non gérée par cet objet)
Tu as une idée d'où ça vient?
Merci
--
Stach ;-)
Bonjour !
'Stach' nous a écrit ...
Je me suis créé une macro (affectée à un bouton d'une de mes barres d'outil)
me permettant, par automation VBA, d'imprimer virtuellement au format .pdf
mon document en cours grâce à PDFCreator, puis d'ouvrir un nouveau message
Outlook et d'insérer le fichier .pdf en pièce jointe.
Le seul problème, c'est qu'il faut que je m'y prenne à 2 fois pour obtenir
le bon résultat, car la première fois que j'exécute ma macro, le fichier .pdf
ne se crée pas (ou en tous cas, mon système ne s'actualise pas). J'obtiens
donc un message me disant que le fichier que je veux joindre à mon mail
n'existe pas. Ce n'est que quand j'appuye une 2ème fois sur mon bouton
contenat la macro, que apparement le système s'est actualisé et que là tous
se passe sans problème.
Qq connaitrai-t-il une astuce pour, en vba, réactualiser mon dossier dans
lequel mon pdf est censé se trouver, et ainsi pouvoir réaliser le tout d'un
seul click.
Je ne connais pas PDFCreator mais je suppose qu'il s'agit d'un driver
d'impression en PDF. Votre problème est probablement lié alors à
l'impression en arrière-plan : votre macro continue son cours alors
que le système n'a pas fini d'immprimer. C'est un problème classique
lors d'impressions vraies. Copié-collé d'une précédente réponse :
Il y a plusieurs méthodes pour attendre une fin d'impression:
- supprimer l'impression en tâche de fond
ActiveDocument.Printout Background:úlse
ou
Options.PrintBackground = False
- si on veut garder le spooling pour pouvoir faire autre chose
on peut aussi avec Options.PrintBackground = True
faire intervenir un autre processus d'attente
comme par exemple une UserForm "Impression en cours..."
qui ne fait rien qu'attendre que la file d'attente soit vide
Set WordApp = GetObject(, "Word.Application")
Do While WordApp.BackgroundPrintingStatus > 0
DoEvents
Loop
- on peut passer par des API d'attente de processus
- on peut placer une temporisation plus ou moins fixe
etc etc
Anacoluthe
« Attendre est encore une occupation.
C'est ne rien attendre qui est terrible. »
- Cesare PAVESE
ActiveDocument.Printout Background:úlse ou Options.PrintBackground = False
Mais ça na marche pas (Propriété ou méthode non gérée par cet objet)
Tu as une idée d'où ça vient? Merci
-- Stach ;-)
Bonjour !
'Stach' nous a écrit ...
Je me suis créé une macro (affectée à un bouton d'une de mes barres d'outil) me permettant, par automation VBA, d'imprimer virtuellement au format .pdf mon document en cours grâce à PDFCreator, puis d'ouvrir un nouveau message Outlook et d'insérer le fichier .pdf en pièce jointe. Le seul problème, c'est qu'il faut que je m'y prenne à 2 fois pour obtenir le bon résultat, car la première fois que j'exécute ma macro, le fichier .pdf ne se crée pas (ou en tous cas, mon système ne s'actualise pas). J'obtiens donc un message me disant que le fichier que je veux joindre à mon mail n'existe pas. Ce n'est que quand j'appuye une 2ème fois sur mon bouton contenat la macro, que apparement le système s'est actualisé et que là tous se passe sans problème. Qq connaitrai-t-il une astuce pour, en vba, réactualiser mon dossier dans lequel mon pdf est censé se trouver, et ainsi pouvoir réaliser le tout d'un seul click.
Je ne connais pas PDFCreator mais je suppose qu'il s'agit d'un driver d'impression en PDF. Votre problème est probablement lié alors à l'impression en arrière-plan : votre macro continue son cours alors que le système n'a pas fini d'immprimer. C'est un problème classique lors d'impressions vraies. Copié-collé d'une précédente réponse :
Il y a plusieurs méthodes pour attendre une fin d'impression: - supprimer l'impression en tâche de fond ActiveDocument.Printout Background:úlse ou Options.PrintBackground = False - si on veut garder le spooling pour pouvoir faire autre chose on peut aussi avec Options.PrintBackground = True faire intervenir un autre processus d'attente comme par exemple une UserForm "Impression en cours..." qui ne fait rien qu'attendre que la file d'attente soit vide Set WordApp = GetObject(, "Word.Application") Do While WordApp.BackgroundPrintingStatus > 0 DoEvents Loop - on peut passer par des API d'attente de processus - on peut placer une temporisation plus ou moins fixe etc etc
Anacoluthe « Attendre est encore une occupation. C'est ne rien attendre qui est terrible. » - Cesare PAVESE
Geo
Bonsoir Anacoluthe,
j'ai bien essayé comme tu me mle conseil:
ActiveDocument.Printout Background:úlse ou Options.PrintBackground = False
Mais ça na marche pas (Propriété ou méthode non gérée par cet objet)
C'est quelle version de word ? Chez moi (version 2000): ActiveDocument.PrintOut Background:úlse Options.PrintBackground = False ActiveDocument.PrintOut
marchent bien
-- A+
Bonsoir Anacoluthe,
j'ai bien essayé comme tu me mle conseil:
ActiveDocument.Printout Background:úlse ou Options.PrintBackground = False
Mais ça na marche pas (Propriété ou méthode non gérée par cet objet)
C'est quelle version de word ?
Chez moi (version 2000):
ActiveDocument.PrintOut Background:úlse
Options.PrintBackground = False
ActiveDocument.PrintOut
ActiveDocument.Printout Background:úlse ou Options.PrintBackground = False
Mais ça na marche pas (Propriété ou méthode non gérée par cet objet)
C'est quelle version de word ? Chez moi (version 2000): ActiveDocument.PrintOut Background:úlse Options.PrintBackground = False ActiveDocument.PrintOut