Bonjour à tous!

J'ai le code suivant

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
                Select Main Sheet
 
                For Each Row In Sheets("Main").Rows
 
                    'MsgBox Row.Cells(6)
 
                    If Row.Cells(6) = Account Then
                        Row.Cells(23).Value = DateDebutArriere
                        'MsgBox (Now - DateDebutArriere)
                        Row.Cells(24).Value = CInt(Now - DateDebutArriere)
                        'MsgBox "Found"
                    'Else
                    '    Exit For
                    End If
                Next
Bon il est en marche sauf que ça prends beaucoup de temps d’exécution

on m'a demandé de l'optimiser donc j'ai écris ce code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
              Sheets(main).Select
              Dim Found As Range, indice As Integer
              Set Found = main.Range("F2:F4000").Find(Account)
              indice = Found.Row
              MsgBox indice
              Cells(W, 1).Value2 = DateDebutArriere
j'ai eu l'erreur #9: l'indice n'appartient pas à la sélection

Qu'en pensez-vous?