A voir également:
- Application.printcommunication
- Spouleur d'impression - Guide
- Impression livret a5 - Guide
- Historique impression - Forum Windows 10
- Logiciel impression photo - Télécharger - Albums photo
- Problème impression pdf texte manquant - Forum PDF
4 réponses
BARET-Ch
Messages postés
1
Date d'inscription
mercredi 24 juillet 2013
Statut
Membre
Dernière intervention
24 juillet 2013
1
24 juil. 2013 à 16:26
24 juil. 2013 à 16:26
Je pense que ton problème provient des paramètres locaux de la machine. J'ai rencontré le problème avec un micro réglé à la française et une multi-zone d'impression
Pour l'envoyer sous VBA, il faut utiliser un format standard (avec virgule comme séparateur de liste
ActiveSheet.PageSetup.PrintArea = "$A$3:$H$34,$J$3:$Q$34"
Mais quand on le relit, il revient avec un format local (avec un point virgule comme séparateur
A$=ActiveSheet.PageSetup.PrintArea : "$A$3:$H$34;$J$3:$Q$34"
Il me semble que lors de la réactivation de la communication avec le driver d'imprimante, il y a un échange avec renvoi de la zone d'impression pour calcul du coeficient de reduction. Si le format n'est pas correct cela plante
Ma solution
J'ai vidé la zone d'impression
ActiveSheet.PageSetup.PrintArea = ""
J'ai envoyé le Pagesetup. Cela ne semble pas le gêner de ne pas avoir de zone d'impression
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.75)
.TopMargin = Application.InchesToPoints(1.5)
.BottomMargin = Application.InchesToPoints(1)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.Orientation = xlLandscape
End With
Application.PrintCommunication = True
Puis j'ai rétabli la zone d'impression
ActiveSheet.PageSetup.PrintArea = "$A$3:$H$34,$J$3:$Q$34"
Chez moi cela fonctionne
Pour l'envoyer sous VBA, il faut utiliser un format standard (avec virgule comme séparateur de liste
ActiveSheet.PageSetup.PrintArea = "$A$3:$H$34,$J$3:$Q$34"
Mais quand on le relit, il revient avec un format local (avec un point virgule comme séparateur
A$=ActiveSheet.PageSetup.PrintArea : "$A$3:$H$34;$J$3:$Q$34"
Il me semble que lors de la réactivation de la communication avec le driver d'imprimante, il y a un échange avec renvoi de la zone d'impression pour calcul du coeficient de reduction. Si le format n'est pas correct cela plante
Ma solution
J'ai vidé la zone d'impression
ActiveSheet.PageSetup.PrintArea = ""
J'ai envoyé le Pagesetup. Cela ne semble pas le gêner de ne pas avoir de zone d'impression
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.75)
.TopMargin = Application.InchesToPoints(1.5)
.BottomMargin = Application.InchesToPoints(1)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.Orientation = xlLandscape
End With
Application.PrintCommunication = True
Puis j'ai rétabli la zone d'impression
ActiveSheet.PageSetup.PrintArea = "$A$3:$H$34,$J$3:$Q$34"
Chez moi cela fonctionne
Bonjour,
J'ai eu le même problème avec un script écrit sur Excel 2010 lorsque je l'ai exécuté sur Excel 2013.
Ma solution :
Pour résoudre mon problème j'ai simplement retirer la ligne ".PrintQuality = 600"
Il semblerait que l'erreur "la méthode printcommunication a échoué" survient lorsqu'une des lignes du "PageSetup" est en erreur....en l'occurence ".PrintQuality" que j'ai retiré et tout est rentré dans l'ordre
J'ai eu le même problème avec un script écrit sur Excel 2010 lorsque je l'ai exécuté sur Excel 2013.
Ma solution :
Pour résoudre mon problème j'ai simplement retirer la ligne ".PrintQuality = 600"
Il semblerait que l'erreur "la méthode printcommunication a échoué" survient lorsqu'une des lignes du "PageSetup" est en erreur....en l'occurence ".PrintQuality" que j'ai retiré et tout est rentré dans l'ordre
f894009
Messages postés
17233
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 janvier 2025
1 712
13 août 2012 à 16:37
13 août 2012 à 16:37
Bonjour,
Suivez ce lien
https://docs.microsoft.com/en-us/samples/browse/?redirectedfrom=MSDN-samples
Bonne suite
Suivez ce lien
https://docs.microsoft.com/en-us/samples/browse/?redirectedfrom=MSDN-samples
Bonne suite
Merci pour votre soutien.
J'ai testé le code en exemple. Quand je rajoute .orientation = xlLandscape à cet exemple, le même problème revient à savoir un message d'erreur indiquant "La méthode 'Printcommunication' de l'objet '_Application' a échoué" .
Auriez-vous un élément de réponse concernant cette erreur?
J'ai testé le code en exemple. Quand je rajoute .orientation = xlLandscape à cet exemple, le même problème revient à savoir un message d'erreur indiquant "La méthode 'Printcommunication' de l'objet '_Application' a échoué" .
Auriez-vous un élément de réponse concernant cette erreur?
Bonjour,
Voici le code qui j'ai trouvé et qui me semble logique. Cette proprieté marche que avec Excel 2010. J'ai le testé en Excel 2010 et ca marche. Est-ce que c'est possible que vous utilisez une version inferieure d'Excel ? Sinon vous pouvez passer directement en PageSetup, ca prendra un peu plus de temps pour le traitement. Dans tous les cas voici le code:
J'espere que j'ai pu vous aider.
Cord,
Alena
Voici le code qui j'ai trouvé et qui me semble logique. Cette proprieté marche que avec Excel 2010. J'ai le testé en Excel 2010 et ca marche. Est-ce que c'est possible que vous utilisez une version inferieure d'Excel ? Sinon vous pouvez passer directement en PageSetup, ca prendra un peu plus de temps pour le traitement. Dans tous les cas voici le code:
Sub TryToPrint2() Application.PrintCommunication = False With ActiveSheet.PageSetup .LeftMargin = Application.InchesToPoints(0.5) .RightMargin = Application.InchesToPoints(0.75) .TopMargin = Application.InchesToPoints(1.5) .BottomMargin = Application.InchesToPoints(1) .HeaderMargin = Application.InchesToPoints(0.5) .FooterMargin = Application.InchesToPoints(0.5) .Orientation = xlLandscape End With Application.PrintCommunication = True ActiveSheet.PrintOut End Sub
J'espere que j'ai pu vous aider.
Cord,
Alena
Bonjour Alena,
Merci pour votre réponse.
J'utilise effectivement Excel 2010 (mon fichier est en .xlsm). De plus le logiciel accepte Application.PrintCommunication = False mais n'accepte pas Application.PrintCommunication = True.
Le code que vous proposez est quasiment identique au mien. Je l'ai tout de même testé et le même message d'erreur apparait.
Si j'utilise le même code en retirant Application.PrintCommunication = False et Application.PrintCommunication = True, je constate que le fichier est ralenti le temps d'effectuer cette partie du code mais il ne tient pas compte des modifications : le document est toujours en mode portrait.
J'ai beau me dire que le logiciel a toujours raison (et donc que la faute m'incombe) il y a par moment des choses suspectes avec Excel.
Merci pour votre réponse.
J'utilise effectivement Excel 2010 (mon fichier est en .xlsm). De plus le logiciel accepte Application.PrintCommunication = False mais n'accepte pas Application.PrintCommunication = True.
Le code que vous proposez est quasiment identique au mien. Je l'ai tout de même testé et le même message d'erreur apparait.
Si j'utilise le même code en retirant Application.PrintCommunication = False et Application.PrintCommunication = True, je constate que le fichier est ralenti le temps d'effectuer cette partie du code mais il ne tient pas compte des modifications : le document est toujours en mode portrait.
J'ai beau me dire que le logiciel a toujours raison (et donc que la faute m'incombe) il y a par moment des choses suspectes avec Excel.
Votre code fonctionne correctement sur mon pc.
Le code que j'utilise pour imprimer est imbriqué dans 6000 lignes de code.
Je l'ai donc copié/collé dans un autre fichier pour simplifier et là il marche... Avec et sans "Application.PrintCommunication".
En revanche dans le code original il ne marche toujours pas alors que c'est réellement du copié/collé...
Peut être verrez-vous là où j'aurais pu faire une erreur.
http://cjoint.com/?BHoplEbBV0e
Merci!
Le code que j'utilise pour imprimer est imbriqué dans 6000 lignes de code.
Je l'ai donc copié/collé dans un autre fichier pour simplifier et là il marche... Avec et sans "Application.PrintCommunication".
En revanche dans le code original il ne marche toujours pas alors que c'est réellement du copié/collé...
Peut être verrez-vous là où j'aurais pu faire une erreur.
http://cjoint.com/?BHoplEbBV0e
Merci!