Dim oldstatusbar As Boolean

Bonjour,

J'ai un problème, lorsque je lance cette macro qui, jusqu'à il y a peu, fonctionnait parfaitement, Microsoft excel m'écrit:

"microsoft excel a cessé de fonctionner"

Le code plante à l'éxécution de la ligne 13:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub Import_()
 
'=========================
'importer les MID à comparer
'=========================
 
Application.ScreenUpdating = False
 
Sheets("1").Visible = True
Sheets("2").Visible = True
 
'activer barre d'attente
oldstatusbar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
 
 
'...
'code
'...
 
 
Sheets("1").Visible = xlSheetHidden
Sheets("2").Visible = xlSheetHidden
 
Application.ScreenUpdating = True
 
'fin barre d'attente
Application.StatusBar = False
Application.DisplayStatusBar = oldstatusbar
 
End Sub
Quelqu'un aurait-il une idée du pourquoi du comment?
Y a-t-il une limitation à l'utilisation des "Application.StatusBar" ?

Sachant que la même architecture est présente dans d'autres modules du tableur, mais ces dernières fonctionnent parfaitement.

Au passage, ces derniers, dans des boucles for assez grosses, ralentissent ils beaucoup le code ou est-ce négligeable?

Autre question annexe, au pire j'ouvre une nouvelle conversation:
Le code ci-dessous est très lent, est-ce plus rapide de faire un .delete shift:=xlup sur un range si le nombre de colonne est connu?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Rows(suppr_1 & ":" & suppr_2).Delete shift:=xlUp