Bonjour à tous

Si je peux me permettre j'ai plusieurs remarque à faire tout d'abord tu dis :
Citation Envoyé par Felours Voir le message
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
...
' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
    nombre_ligne = nombre_ligne + 1
    Selection.Offset(1, 0).Select
Loop)
...
moi j'ai fini de faire ce genre de boucles depuis que je connais ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Der_Lign = Cells(Rows.Count, 1).End(xlUp).Row
le "1"corespond à la colonne A

Tu fais également beaucoup de Select
Citation Envoyé par Felours Voir le message
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
...
    Columns("E:E").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Columns("D:D").Select
    Selection.Copy
    Columns("G:G").Select
    ActiveSheet.Paste
...
tu peux simplifié en 1 ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Columns("E:E").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Columns("D:D").Copy
et enfin moi j'utiliserais des variables tableaux en mémoire pour gérer ton changement de classeur et tes copies ce qui sera beaucoup plus simple et prendra moins de place mémoire, et je gérerai un classeur à la fois.

tu dis ce que tu en penses

A+