Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion jojoludo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jojoludo

Guest
Bonjour le Forum,

Je viens de créer un fichier Excel avec des macros. Ces macros marchent bien à un détail près. L'utilité de ce fichier c'est que l'utilisateur entre des données dans les cases B1 à B21 et appuie sur un boutons qui alimente un tableau d'aide à la saisie, tableau destiné à être imprimé. Jusque là ça marche bien. Le souci vient que lorsque l'on a lancé l'impression, Exceltourne au ralentit. POur pouvoir retrouver un fichier qui tourne, il faut fermer et rouvrir Excel, une simple sauvegarde ne marche pas. A quoi ce ralentissement peut il être du?? Est ce possiblie que l'instruction application.screenupdating, mal utilisée peut être, ralentisse Excel??

Merci de votre aide. Je vous ai joint le fichier.
 

Pièces jointes

Re : Ralentissement

Bonjour,
AMHA....
Tu avais certainement utilisé l'enregistreur de macro et il t'avait rajouter plein de code inutile .
Essaye avec ceci:
Sub MiseenForme()
'
' Macro2 Macro
' Macro enregistrée le 10/06/2009 par PMHU105
'

'

Application.ScreenUpdating = False

If Range("E33") > 0.001 Then
MsgBox "Les totaux sont différents", vbCritical, "Erreur de saisie"
Exit Sub
End If

Application.Run "'Calcul mémo.xls'!Couleur"


Range("I6:O6").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With

Selection.Borders(xlInsideVertical).LineStyle = xlNone

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

Range("I6").CurrentRegion.Select
Selection.Delete Shift:=xlUp
Range("I6") = "Ligne"
Range("J6") = "Montant"
Range("K6") = "Compte"
Range("L6") = "CAE"
Range("M6") = "Période Début"
Range("N6") = "Période Fin"
Range("O6") = "Ligne"

Range("B1:B21") = 0
Range("B1").Select

Application.ScreenUpdating = True


End Sub

A+
Claudy
 
Re : Ralentissement

Bonjour Jojoludo, Claudy, le fil,

Voici le même code que Claudy légèrement compressé :

Code:
Sub MiseEnForme()

Application.ScreenUpdating = False

If [E33] > 0.001 Then
    MsgBox "Les totaux sont différents", vbCritical, "Erreur de saisie"
    Exit Sub
End If

Application.Run "'Calcul mémo.xls'!Couleur"

With [I6:O6]
   .Borders(xlDiagonalDown).LineStyle = xlNone
   .Borders(xlDiagonalUp).LineStyle = xlNone
End With

With Selection.Borders(xlEdgeLeft)
   .LineStyle = xlContinuous
   .Weight = xlMedium
   .ColorIndex = xlAutomatic
End With

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

[I6].CurrentRegion.Delete Shift:=xlUp
[I6] = "Ligne"
[J6] = "Montant"
[K6] = "Compte"
[L6] = "CAE"
[M6] = "Période Début"
[N6] = "Période Fin"
[O6] = "Ligne"

[B1:B21] = 0
[B1].Select

Application.ScreenUpdating = True

End Sub

Bon samedi
 
Re : Ralentissement

Bonjour Claudy, Bonjour Excel Lent, Bonjour le Forum,

Merci à Claudy & Excel Lent pour leurs solutions.

J'ai testé à nouveau aujourd'hui les solutions, mais le résultat est pareil, quelque soit le pc. Dès que j'utilise la macro qui imprime, mon excel est ralentit. J'ai essayé en supprimant les application.screenupdating mais ça fait la même chose, ou en déplaçant l'instruction qui masque la boite de dialogue. Pas plus de succès. Le problème viendrait donc soit de la partiez de macro qui fait la mise en forme ou de l'impression.

Quelqu'un aurait il une idée??
 
Re : Ralentissement

Bonjour tout le monde,

Le problème n'est toujours pas résolu, mais j'arrive à enpréciser un peu la source : le ralentissement intervient dès que je fais un apercu avant impression ou une impression. Quelqu'un a t'il une idée de la source de ce problème??
 
Re : Ralentissement

Bonjour jojoludo, Claudy et Excel-lent, bonjour à toutes et à tous 🙂


J'ai déjà eu ce souci de lenteur lors d'une impression effectuée par macro. Si ma mémoire ne me fait pas défaut, je me souviens que j'avais réussi à accélérer le processus en utilisant une macro XL4. Mais sous VBA, l'impression est très très lente.

@+
 
Re : Ralentissement

Bonjour Jojoludo,

N'ayant pas d'imprimante, je ne peux tester la partie de ton code traitant de l'impression!

Régulièrement, j'imprime via un code VBA, et à ce jours, je n'ai jamais constaté de problème de ralentissement!

Je ne vois pas d'où peut provenir ton soucis. A tout hasard, essaye de remplacer :
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True


Par : ActiveSheets.PrintOut Copies:=1, Collate:=True

Mais je doute que cela change quelque chose!

sinon essaye ainsi :
ActiveSheets.PrintOut Copies:=1

pour voir si ton problème de lenteur est dû au code Collate

Bonne après midi

Edition : bonjour Nolich
 
Dernière édition:
Re : Ralentissement

Bonjour à tous,

J'ai eu la même idée que toi Excel Lent,
"sinon essaye ainsi :
ActiveSheets.PrintOut Copies:=1",
j'ai meme été plus expéditif car je me suis limité à Activesheets.printout, mais ça na rien changé.

Par contre Nolich, peux tu me précisez ce que tu entends par "en utilisant une macro XL4".

Merci de votre aide.
 
Re : Ralentissement

Bonjour à tous,

Code:
   With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
[COLOR="Red"]    With Selection.Borders(xlInsideHorizontal)
       .LineStyle = xlContinuous
       .Weight = xlThin
       .ColorIndex = xlAutomatic
    End With[/COLOR]
    
    Range("I6:O6").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
en supprimant les lignes en rouge ( elles posaient problèmes lors du test de la procédure), je ne vois plus de ralentissements après impression ou simple visualisation avant impression ....................... mais je n'ai pas compris pourquoi

bonne fin de journée à tous
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

C
Réponses
4
Affichages
2 K
chukatrock54
C
B
Réponses
10
Affichages
3 K
brunounours
B
B
Réponses
5
Affichages
2 K
BowserKar
B
H
Réponses
17
Affichages
3 K
F
Réponses
4
Affichages
2 K
flolacou
F
A
Réponses
11
Affichages
2 K
A
F
Réponses
3
Affichages
5 K
Cdeps
C
K
Réponses
19
Affichages
5 K
K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…