Bonjour à toutes et à tous,
J'ai un probleme que je n'arrive pas à expliquer.
J'ai un fichier excel 2007 avec 1000 lignes sur 3000 colonnes et j'utilise une macro qui filtre sur les colonnes (en horizontale...) et tout fonctionne à merveille de maniere tres rapide. Moins d' 1 seconde pour faire tourner la macro.
Mais dès que j'imprime ma zone d'impression (je l'ai definie sur une matrice de 1000*3000) et retente de lancer la macro et bien cela met au moins 1 minute pour quelle tourne !. Pareille quand j'annule la zone d'impression.
Parcontre dès que je ferme le fichier et relance la macro, je retrouve une vitesse d'exécution normale (1 seconde).
Je pense qu'il doit y avoir une sorte de memoire tampon que je dois vider apres l'impression mais je ne sais pas si c'est ca et comment fait-on ?
Est-ce quelqu'un peut m'aider ?
Merci
Malka
Le fichier fait 12Mo et si cela peut aider voici ma macro en question :
Private Sub Btn_Ok_Click()
Dim x As Variant
Application.ScreenUpdating = False
Columns("E:XFD").EntireColumn.Hidden = False
For x = 5 To Range("XFD" & MaLigne).End(xlToLeft).Column
If Cells(MaLigne, x) <> Me.Lbx_Titre.Value Then
Columns(x).EntireColumn.Hidden = True
End If
Next
Calculate
Application.ScreenUpdating = True
End Sub
J'ai un probleme que je n'arrive pas à expliquer.
J'ai un fichier excel 2007 avec 1000 lignes sur 3000 colonnes et j'utilise une macro qui filtre sur les colonnes (en horizontale...) et tout fonctionne à merveille de maniere tres rapide. Moins d' 1 seconde pour faire tourner la macro.
Mais dès que j'imprime ma zone d'impression (je l'ai definie sur une matrice de 1000*3000) et retente de lancer la macro et bien cela met au moins 1 minute pour quelle tourne !. Pareille quand j'annule la zone d'impression.
Parcontre dès que je ferme le fichier et relance la macro, je retrouve une vitesse d'exécution normale (1 seconde).
Je pense qu'il doit y avoir une sorte de memoire tampon que je dois vider apres l'impression mais je ne sais pas si c'est ca et comment fait-on ?
Est-ce quelqu'un peut m'aider ?
Merci
Malka
Le fichier fait 12Mo et si cela peut aider voici ma macro en question :
Private Sub Btn_Ok_Click()
Dim x As Variant
Application.ScreenUpdating = False
Columns("E:XFD").EntireColumn.Hidden = False
For x = 5 To Range("XFD" & MaLigne).End(xlToLeft).Column
If Cells(MaLigne, x) <> Me.Lbx_Titre.Value Then
Columns(x).EntireColumn.Hidden = True
End If
Next
Calculate
Application.ScreenUpdating = True
End Sub