Optimiser insertion ligne VBA

doomaster66

XLDnaute Nouveau
Bonjour,
j'utilise actuellement quelques lignes de codes VBA qui me permettent d’insérer une ligne dans un tableau, en recopiant les formules de la ligne précédente:
Code_insertion.jpg
Ceci fonctionne très bien, sauf que l'insertion de la ligne nécessite 7s, ce qui commence à être longuet quand je dois insérer plusieurs lignes en suivant!
Quelqu'un a t'il une solution pour raccourcir ce délai?
Merc

PS: je dois signaler que le délai est quasi instantané dans un petit fichier, mais mon fichier est lourd avec ses 24 onglets , nombreuses formules et formats.
 

Theze

XLDnaute Occasionnel
Re : Optimiser insertion ligne VBA

Bonjour,

Dans ce cas, empêche le calcul automatique avant d'insérer tes lignes que tu rétablis ensuite, de cette façon, le calcul de tes feuilles ne sera fait qu'une seule fois en fin de procédure :
Code:
Application.Calculation = xlCalculationManual
'ton code pour insertion...
'...
'...
Application.Calculation = xlCalculationAutomatic
 

néné06

XLDnaute Accro
Re : Optimiser insertion ligne VBA

Bonjour,


A essayer sans recalcul ?

Application.ScreenUpdating = false
Application.Calculation = xlCalculationManual' Enleve le recalcul
...........'Ici le code
.
Application.Calculation = xlCalculationAutomatic 'Rétablir le recalcul
Application.ScreenUpdating = true

A+

René
Edit: Bonjour Theze, même proposition de ma part mais en retard;)
 
Dernière édition:

Chris401

XLDnaute Accro
Re : Optimiser insertion ligne VBA

Bonjour

En ce qui me concerne, à la place de copier chaque formule dans chaque cellule, je prépare les formules dans la ligne 2 (par exemple) que je masque. Ensuite, je copie cette ligne 2 sur la ligne active.

Le code devient :
Code:
Sub InsereLigne()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

ActiveCell.EntireRow.Insert
Rows(2).Copy Range("A" & ActiveCell.Row)
Cancel = True

Application.Calculation = xlCalculationAutomatic
End Sub
A tester si ça fait gagner du temps ou pas.

Cordialement
Chris
 

Discussions similaires