Recherche de valeurs dans une liste de variables

Dut

XLDnaute Nouveau
Bonjour,
sous VBA j'ai déclaré une liste de variables définies comme suit :
Code:
Dim variante(50) As String

Un peu plus loin dans ma macro, je parcoure la colonne E d'une feuille et je souhaiterais effectuer une recherche sur la liste précédente pour renvoyer le numéro de la variable correspondante. J'utilise donc le code suivant :
Code:
    For i = 2 To Range("E2").End(xlDown).Row
        For k = 0 To 50
            If Range("E" & i).Value = variante(k) Then Range("C" & i).Value = k
        Next k
    Next i

Le problème c'est qu'il existe environ 40 variantes et que j'ai plus de 40000 lignes à tester donc je voudrais essayer d'optimiser un peu le délai de traitement.

Existe-t-il une fonction qui me permettrait d'accélérer ma recherche ?
 

Dut

XLDnaute Nouveau
Re : Recherche de valeurs dans une liste de variables

Exact ! bonne idée...
Code:
    For i = 2 To Range("E2").End(xlDown).Row
        For k = 0 To 50
            If Range("E" & i).Value = variante(k) Then
                Range("C" & i).Value = k
                Exit For
            End If
        Next k
    Next i
D'autres suggestions ? :)
 
Dernière édition:

cbea

XLDnaute Impliqué
Re : Recherche de valeurs dans une liste de variables

Bonjour dut, tototiti2008,

Voici une autre possibilité :
Code:
    Dim Plage As Range, Cell As Range

    Set Plage = Range("E2:E" & Range("E2").End(xlDown).Row)
    
    For k = 0 To UBound(variante)
        Set Cell = Plage.Find(variante(k), , LookIn:=xlValues, LookAt:=xlWhole)
        If Not Cell Is Nothing Then
            Range("C" & Cell.Row).Value = k
        End If
    Next k
 

Discussions similaires

Statistiques des forums

Discussions
312 322
Messages
2 087 275
Membres
103 507
dernier inscrit
tapis23