Lenteur d'in code en VBA
Mistral_13200
Messages postés
649
Statut
Membre
-
Mistral_13200 Messages postés 649 Statut Membre -
Mistral_13200 Messages postés 649 Statut Membre -
Bonjour à tous,
A partir d'un classeur j'utilise le code ci-dessous pour créer un nouveau classeur, faire sa mise en forme et le sauvegarder.
Cela fonctionne parfaitement mais je trouve que cette macro est très longueà s'exécuter, environ 10 secondes, es-ce normal ?
Comment faire pour que se soit plus rapide ?
Merci d'avance pour votre aide.
Cordialement
Mistral
A partir d'un classeur j'utilise le code ci-dessous pour créer un nouveau classeur, faire sa mise en forme et le sauvegarder.
' Création du Nvx classeur.
Workbooks.Add ' Création Nvx Classeur
Sheets("Feuil1").Select ' Sélection feuille1
Sheets("Feuil1").Name = "Essai1" ' Nom feuille 1
' Mise en page.
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.PrintTitleRows = "$26:$27" ' Fixe les N° de lignes à imprimer en haut des pages.
.PrintTitleColumns = "" ' Fixe les N° de colonnes à imprimer à gauche des pages.
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = "" ' Partie gauche de l'entête = Vide.
.CenterHeader = "" ' Partie centrale de l'entête = Vide.
.RightHeader = "" ' Partie droite de l'entête = Vide.
.LeftFooter = "Save_Bdx" ' Partie gauche du pied de page = Save_Bdx.
.CenterFooter = "&P" ' Partie centrale du pied de page = N° de page.
.RightFooter = "&J" ' parie droite du pied de page = Date du jour.
.LeftMargin = Application.InchesToPoints(0.393700787401575) ' Règle la marge de gauche.
.RightMargin = Application.InchesToPoints(0.393700787401575) ' Règle la marge de droite.
.TopMargin = Application.InchesToPoints(0.393700787401575) ' Règle la marge du bas.
.BottomMargin = Application.InchesToPoints(0.393700787401575) ' Règle la marge du haut.
.HeaderMargin = Application.InchesToPoints(0) ' Règle l'entête de page.
.FooterMargin = Application.InchesToPoints(0) ' Règle le pied de page.
.Zoom = False ' Pour régler le zoom d'impression.
.FitToPagesWide = 1 ' Adapte la largeur d'impression à la taille du papier.
.FitToPagesTall = False ' Adapte la hauteur d'impression à la taille du papier.
.PrintErrors = xlPrintErrorsDisplayed
End With
' Sauvegarde.
Application.DisplayAlerts = False ' Bloque le message d'alerte.
ActiveWorkbook.SaveAs (Nom_Chemin & "\" & Nom_Fichier & " " & Format(Annee_Conncours) & ".xls"), FileFormat:=xlNormal ' Sauvegarde du fichier créé.
Application.DisplayAlerts = True ' Remet le message d'alerte.
Cela fonctionne parfaitement mais je trouve que cette macro est très longueà s'exécuter, environ 10 secondes, es-ce normal ?
Comment faire pour que se soit plus rapide ?
Merci d'avance pour votre aide.
Cordialement
Mistral
A voir également:
- Lenteur d'in code en VBA
- Lenteur pc - Guide
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
2 réponses
bonjour
en début de code essaies
nota: il est inutile de remettre à False en fin de macro
mais peut-^tre que :
comme tes nouveaux classeurs ont la m^me mise en page, tu en fais à ce format et tu l'enregistre en tant que modèle; ta macro appele ce modèle et l'enregistre au nom voulu
Michel
en début de code essaies
Application.screenupdating=False
nota: il est inutile de remettre à False en fin de macro
mais peut-^tre que :
comme tes nouveaux classeurs ont la m^me mise en page, tu en fais à ce format et tu l'enregistre en tant que modèle; ta macro appele ce modèle et l'enregistre au nom voulu
Michel
Bonjour Michel,
Je mets cette instruction généralement en tout début de macro, et reviens en arriere à la fin mais ça ne change rien c'est toujours pareil.
Je ne peux pas créer un format de classeur car ce classeur Excele est utilisé par bon nombre de personne et sur des machines différentes. Je suis donc obligé de faire la mise en forme après avoir créé le nvx classeur.
Je mets cette instruction généralement en tout début de macro, et reviens en arriere à la fin mais ça ne change rien c'est toujours pareil.
Je ne peux pas créer un format de classeur car ce classeur Excele est utilisé par bon nombre de personne et sur des machines différentes. Je suis donc obligé de faire la mise en forme après avoir créé le nvx classeur.