Optimisation d'un code VBA

Bonjour à tous,

Je souhaite réaliser une macro affichant des lignes déjà masquées selon la valeur d'une colonne : A

Le code doit suivre l’itération suivante:

Pour i allant de 15 à 746

Si cellule (A,i)= cellule (C,837)

Alors on affiche la ligne i

J'ai réalisé le code suivant en m'aidant d'infos sur les diverses discutions mais il est très lourd en terme de temps de traitement, comment puis je optimiser mon code?

Sub Semaine ()
Dim LigneDebut As Integer
Dim LigneFin As Integer
    LigneDebut = 15
    LigneFin = 746    
        For i = LigneDebut To LigneFin
        If Cells(i, 1) = Cells(837, 3) Then
        Rows(i).Hidden = False
        End If
        Next i        
End Sub

Voila, si quelqu'un a une idée...merci.

Bonjour,

déjà avant for i:

application.screenupdating=false

for i=....

tu dis... (on peut aller encore + vite mais...)

Bonjour,

Le traitement devrait être quasi instantané,

Tu as peut-être des Private Sub événementiels ? auquel cas:

ajoute au début de ta macro

Application.EnableEvents = False

et à la fin

Application.EnableEvents = True

tu peux ajouter aussi au début

Application.ScreenUpdating = False

sinon envoie le fichier

Amicalement

Claude

édit: salut Michel

Bonjour Michel et Claude,

Merci à vous de vous être penché sur mon problème.

Ca n'est pas quasi instantanné car les lignes sont très longues (256 colonnes utilisées) et le fichier très lourd, il faut compter 3 secondes pour traiter la demande.

En ajoutant :

Application.ScreenUpdating = False

je ne gagne presque pas de temps

Je sais que Claude m'avait réalisé un filtre élaboré sur un ancien fichier : est ce une meilleure solution?

Je joins un bout du fichier pour l'exemple.

Merci

14exemple.zip (38.15 Ko)

re,

Ton fichier en retour,

évite de faire des listes dans une base de données, ici j'ai ajouté une feuille "Listes"

et remplacé ta liste déroulante en liste/Validation

avec un filtre

Amicalement

Claude

2020 05 01 1350

Je te remercie Claude,

C'est exactement ce que je recherchais.

A bientôt.

re,

à noter que tu n'as même pas besoin de liste,

il te suffit d'entrer le N° de semaine en C3

Claude

Rechercher des sujets similaires à "optimisation code vba"