Optimiser la comparaison de colonne

Bonjour,

J'ai 2 colonnes et je doit comparer des chaines de caractère (savoir si les chaines de caractère de la colonne A sont bien présent dans la colonne B).

Mais la colonne B possède un grand nombre de ligne, existe-t-il des moyens pour optimiser la recherche en VBA ?

Quels sont les techniques que vous connaissez ?

Salutation et merci d'avance,

Gloutoni

Bonjour et bonne année,

Pour le principe, voir ce fichier.

Tu copies tes données en colonnes 1 et 2, et tu exécutes la procédure.

Cdlt.

Cela à l'air très rapide éffectivement,

Pourrais-tu me décrire le fonctionnement stp ?

J'ai isolé le code qui correspond à ce que je souhaiterais faire mais je ne le comprend pas de plus il me renvoi une erreur :

incompatibilité de type à la ligne : [D6].Resize(monDico2.Count, 1) = Application.Transpose(monDico2.keys)

Option Explicit
Option Private Module
Public a As Variant
Public b As Variant
Public c As Variant
Public monDico As Object
Public monDico1 As Object
Public monDico2 As Object
Public Sub Traitement_des_données()
Dim CalcMode As Integer

    With Application
        CalcMode = .Calculation
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    Liste_commune

    With Application
        .Calculation = CalcMode
        .EnableEvents = True
    End With

End Sub
Private Sub Liste_commune()
    a = Range("A6:A" & [A1048576].End(xlUp).Row)
    Set monDico1 = CreateObject("Scripting.Dictionary")
    For Each c In a
        monDico1(c) = ""
    Next c
    b = Range("B6:B" & [B1048576].End(xlUp).Row)
    Set monDico2 = CreateObject("Scripting.Dictionary")
    For Each c In b
        If monDico1.exists(c) Then If Not monDico2.exists(c) Then monDico2(c) = ""
    Next c
    [D6].Resize(monDico2.Count, 1) = Application.Transpose(monDico2.keys)
    Set monDico1 = Nothing: Set monDico2 = Nothing

End Sub

Existe-t-il de bon tuto sur l'initialisation et l'utilisation des dictionnaires en VBA ?

Bonjour/Bonsoir,

petit up

Bonjour,

Pour des tutos sur l'utilisation des dictionnaires (et pour Excel VBA) :

http://boisgontierjacques.free.fr/pages_site/Dictionnaire.htm

La procédure provient d'ailleurs de ce site (j'ai omis de citer J. Boisgontier ).

Pour ton problème, il est possible que tu n'es pas de communs!...

Vérifie que ton dictionnaire comporte des données.

Cdlt.

merci

Rechercher des sujets similaires à "optimiser comparaison colonne"