Optimiser insertion ligne VBA

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 !

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.
 
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
 
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:
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
 
- 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
Retour