Lenteur de l'exécution de la macro
Résolu
imsa
-
imsa -
imsa -
Bonjour,
J'ai fait une macro et l'exéctuer prend 1 minutes et 30 secondes environ....
Ce qui est trop long pour le fichier que je veux créer.
J'ai trouvé sur le forum l'ajout de :
Application.ScreenUpdating = False
Application.ScreenUpdating = True
Mais cela l'exécution est toujours trop longue pour moi.
Ci-dessous la macro en entier.
Je pense que je l'ai placer au mauvaise endroit?
Merci d'avance de votre aide.
-------
Sub Bouton_Valider_Formulaire()
' Bouton_Valider_Formulaire Macro
'
Application.ScreenUpdating = False
Sheets("Listes").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Rows("3:3").Select
Selection.Copy
Rows("2:2").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
Range("K3:N3").Select
Selection.Copy
Range("K2").Select
ActiveSheet.Paste
ActiveWindow.LargeScroll ToRight:=-1
Sheets("Formulaire").Select
Range("C7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("A2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("E7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("B2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("C10").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("C2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("E10").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("H2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("C13").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("I2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("E13").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("J2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("C16").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("D2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("C19").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("E2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("C22").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("F2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("C25").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("G2").Select
ActiveSheet.Paste
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Listes").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Listes").Sort.SortFields.Add2 Key:=Range("A2:A86") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Listes").Sort
.SetRange Range("A1:N86")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("Formulaire").Select
Range("C7,C10,C13,E7,E10,E13,C16,C19,C22,C25").Select
Range("C25").Activate
Selection.ClearContents
Range("C7").Select
Application.ScreenUpdating = True
End Sub
J'ai fait une macro et l'exéctuer prend 1 minutes et 30 secondes environ....
Ce qui est trop long pour le fichier que je veux créer.
J'ai trouvé sur le forum l'ajout de :
Application.ScreenUpdating = False
Application.ScreenUpdating = True
Mais cela l'exécution est toujours trop longue pour moi.
Ci-dessous la macro en entier.
Je pense que je l'ai placer au mauvaise endroit?
Merci d'avance de votre aide.
-------
Sub Bouton_Valider_Formulaire()
' Bouton_Valider_Formulaire Macro
'
Application.ScreenUpdating = False
Sheets("Listes").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Rows("3:3").Select
Selection.Copy
Rows("2:2").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
Range("K3:N3").Select
Selection.Copy
Range("K2").Select
ActiveSheet.Paste
ActiveWindow.LargeScroll ToRight:=-1
Sheets("Formulaire").Select
Range("C7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("A2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("E7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("B2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("C10").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("C2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("E10").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("H2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("C13").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("I2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("E13").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("J2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("C16").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("D2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("C19").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("E2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("C22").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("F2").Select
ActiveSheet.Paste
Sheets("Formulaire").Select
Range("C25").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Listes").Select
Range("G2").Select
ActiveSheet.Paste
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Listes").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Listes").Sort.SortFields.Add2 Key:=Range("A2:A86") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Listes").Sort
.SetRange Range("A1:N86")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("Formulaire").Select
Range("C7,C10,C13,E7,E10,E13,C16,C19,C22,C25").Select
Range("C25").Activate
Selection.ClearContents
Range("C7").Select
Application.ScreenUpdating = True
End Sub
Configuration: Windows / Chrome 86.0.4240.111
A voir également:
- Lenteur de l'exécution de la macro
- Lenteur pc - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
3 réponses
Bonjour,
Il est sur que la vue de la macro "Enregistrée" c'est laborieux
Place ton classeur Excel sans données confidentielles
Allez dans https://www.cjoint.com/
Cliquez sur "PARCOURIR" pour sélectionner le classeur
Clic le bouton "CREER LE LIEN"
Clic droit quand le lien est créé "COPIER LE LIEN"
Sur le post Clic droit "Coller".
ou dans https://mon-partage.fr/
Il est sur que la vue de la macro "Enregistrée" c'est laborieux
Place ton classeur Excel sans données confidentielles
Allez dans https://www.cjoint.com/
Cliquez sur "PARCOURIR" pour sélectionner le classeur
Clic le bouton "CREER LE LIEN"
Clic droit quand le lien est créé "COPIER LE LIEN"
Sur le post Clic droit "Coller".
ou dans https://mon-partage.fr/
Voici le fichier.
Merci d'avance de ton aide