Code tres lent

apdf1

XLDnaute Impliqué
Bonjour

J'ai un code pour imprimer qui est long je pense qu'il y a un problème si quelqu'un pourrez me dire ou est le beug ?

Code:
Private Sub CommandButton1_Click()
' Bouton Sélection Imprimante
Application.Dialogs(xlDialogPrinterSetup).Show
' Apercu avant imprime
Worksheets("Feuil2").PrintPreview

With Sheets("Feuil2")
    With .PageSetup
        .Orientation = xlLandscape  'paysage
        .CenterHorizontally = True  'centré horizontalement
        .CenterVertically = True    'centré verticalement
        .LeftMargin = Application.InchesToPoints(0)   'marge gauche
        .RightMargin = Application.InchesToPoints(0)  'marge droite
        .TopMargin = Application.InchesToPoints(0)    'marge haut
        .BottomMargin = Application.InchesToPoints(0) 'marge bas
        .Zoom = False 'pas de zom
        
        .FitToPagesTall = 1 '1 page en hauteur
        .FitToPagesWide = 1 '1 page en largeur
    End With
'imprime
 ActiveSheet.PrintOut
End With
End Sub

Un très grand merci pour celui ou celle qui pourra m'aider……..
Cordialement
Max
 

laurent950

XLDnaute Accro
Re : Code tres lent

Bonsoir,

peux-être tous simplement essaié de mettre cette instruction e début de Procédure.
Application.ScreenUpdating = False

et celle-ci en fin de procédures
Application.ScreenUpdating = True

Pour l'obtimisation du temps de traitement pour le reste je ne sais pas, cela peux être aussi du au réseau ?

Laurent
 

Misange

XLDnaute Barbatruc
Re : Code tres lent

Bonjour à tous
+1 avec Kiki29. Avant 2010, les macros XL4 étaient THE solution pour imprimer par macro, les codes VBA étant une calamité. Depuis la version 2010 ceci a été modifié et il n'est plus besoin d'utiliser les macros X pour ça.

exemples d'utilisations de ces macros XL4 pour les versions <2010
Ce lien n'existe plus
Ce lien n'existe plus
Ce lien n'existe plus

après 2010 voir la page citée )ar Kiki29
 

MJ13

XLDnaute Barbatruc
Re : Code tres lent

Re à tous

Misange et kiki: +2:eek:. Il faut dire que je le sais depuis longtemps car j'utilise dans mon planning une macro XL4 avec 2 mises en page en portrait et en paysage. De plus, je n'ai jamais dit le contraire :confused:.

Mais je pense qu'on peut uiliser les codes fournis par Henry :). Car en appliquant quelques règles de bon sens, on peut réduire de 22 secondes à 0,6 secondes contre 0,2 secondes pour la mise en page XL4 qui est de ce fait la plus rapide.

Le problème avec les mise en pages XL4, c'est que ce n'est plus gérer par l'enregistreur de macros depuis la version XL95 (il me semble). Donc, c'est la galère pour trouver le bon code :(.
 

STephane

XLDnaute Occasionnel
Re : Code tres lent

je ne pense pas qu'il soit lent, tu fais cependant des actions qui nécessitent une validation manuelle pour que la macro continue, à savoir l'affichage d'une boîte de dialogue pour le choix de l'imprimante et l'aperçu avant impression.

pour exemple, la macro ci-dessous fixe l'imprimante à une imprimante donnée liée à mon poste.

la mise en page est effectuée avant l'aperçu avant impression.

Sub dddddd()
Dim wks

'Choix libre de l'imprimante
'Application.Dialogs(xlDialogPrinterSetup).Show

'Choix fixe de l'imprimante
ActivePrinter = "PDFCreator sur Ne00:"

Set wks = ActiveSheet
With wks
'Mise en page de la feuille
With .PageSetup
.Orientation = xlLandscape 'paysage
.CenterHorizontally = True 'centré horizontalement
.CenterVertically = True 'centré verticalement
.LeftMargin = Application.InchesToPoints(0) 'marge gauche
.RightMargin = Application.InchesToPoints(0) 'marge droite
.TopMargin = Application.InchesToPoints(0) 'marge haut
.BottomMargin = Application.InchesToPoints(0) 'marge bas
.Zoom = False 'pas de zom
.FitToPagesTall = 1 '1 page en hauteur
.FitToPagesWide = 1 '1 page en largeur
End With

'Aperçu de la feuille
.Activate
.PrintPreview

'Impression de la feuille
.PrintOut
End With

End Sub
 

Misange

XLDnaute Barbatruc
Re : Code tres lent

Bonjour STéphane,
On peut bien sur écrire le code en VBA mais passer par des macros xl4 est cependant beaucoup plus rapide, c'est une des limitations connues d'excel, en tous cas pour les versions antérieures à 2010, normalement corrigé depuis. Bien sur le fait d'afficher les boites ralentit mais même sans cela il est bien plus rapide de passer par XL4.

Cette façon d'écrire ton nom me rappelle quelqu'un qui connaissait le MPFE en 99 je me trompe ?
 

MichD

XLDnaute Impliqué
Re : Code tres lent

Bonjour,

Une ressource d'Excel peu utilisée : Affichage ou vue personnalisée : On débute par créer une vue personnalisée pour le classeur tel que créé et par la suite on peut ajouter différente vue personnalisée de la même feuille et y inclure les paramètres d'impression que nous avons définis pour chaque vue personnalisée. En un clic se souris, on choisit la vue personnalisée qu'on désire et on lance l'impression.


Affichage ou Vue personnalisée selon l'aide d'Excel :

Vous pouvez utiliser un affichage personnalisé pour enregistrer des paramètres d’affichage
spécifiques (tels que des paramètres pour définir la largeur des colonnes, la hauteur des
lignes, les lignes et les colonnes masquées, les sélections de cellule, les paramètres de
filtre et les paramètres des fenêtres) et des paramètres d’impression (tels que des paramètres
pour définir la mise en page, les marges, les en-têtes et les pieds de page, les paramètres
de feuille) pour une feuille de calcul. Il est ainsi plus rapide d’appliquer ces paramètres
à cette feuille de calcul au moment voulu. Vous pouvez également inclure une zone d’impression
dans un affichage personnalisé.

Vous pouvez créer plusieurs affichages personnalisés par feuille de calcul, mais vous pouvez
appliquer un affichage personnalisé uniquement à la feuille de calcul qui était active au moment
de la création de cet affichage. Si l’affichage personnalisé ne vous est plus utile, vous pouvez le supprimer.
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 570
dernier inscrit
patrickb83p