Comparaison valeurs tableau VBA

Bonjour à tous,

J’ai créé une macro qui va prendre la valeur des cellules sur la colonne A Feuille Div All et qui va la comparer aux colonnes B,C,D (toute la colonne) et qui me doit écrire la variable en fin de colonne si pas trouver les équivalent dans les autres colonnes.

J'ai une erreur lors de la compilation de "tableau attendu" et je ne vois pas ou est cette fichu erreur.

Est ce que quelqu'un pourrait m'aiguiller ?

Je joins le fichier.

27export-divall.xlsm (232.00 Ko)

Bonjour Cheepow, bonjour le forum,

Pas sûr d'avoir bien compris... Essaie comme ça :

Sub Macro1()
Dim O As Worksheet
Dim TV As Variant
Dim TEST As Boolean

Set O = Worksheets("DivALL")
TV = O.Range("A1").CurrentRegion
For I = 2 To UBound(TV, 1)
    TEST = False
    For J = 2 To UBound(TV, 1)
        For K = 2 To 4
            If TV(I, 1) = TV(J, K) Then TEST = True: GoTo suite
        Next K
    Next J
    If TEST = False Then O.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0).Value = TV(I, 1)
suite:
Next I
MsgBox "Données traitées !"
End Sub

Salut ThauThème,

Merci pour ta réponse. Oui c'est bien cela que je veux mais j'aimerais qu'il compare a chaque fois que les 6 derniers caractères. J'ai ajouté un right à ton code mais ça ne fonctionne pas

Set x = O.Range("A1").CurrentRegion
TV = Right(x, 6)

J'étais pas réveillé ce matin, c'est bon j'ai modifié le code cela fonctionne. Le voici :

Sub Div_1()
Dim O As Worksheet
Dim TV As Variant, x As Variant
Dim TEST As Boolean

Set O = Worksheets("DivALL")
TV = O.Range("A1").CurrentRegion
For I = 2 To UBound(TV, 1)
    TEST = False
    For J = 2 To UBound(TV, 1)
        For K = 2 To 4
            If Right(TV(I, 1), 6) = Right(TV(J, K), 6) Then TEST = True: GoTo suite
        Next K
    Next J
    If TEST = False Then O.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0).Value = TV(I, 1)
suite:
Next I
MsgBox "Données traitées !"
End Sub

Autre question au cas ou, je vais chercher la réponse entre temps mais si quelqu'un peut me l'apporter c'est bien aussi . lol

Au lieu que je compare les 6 derniers caractères, est ce qu'il y a moyens de comparer les valeurs après les 5 premiers caractères plutôt ?

Exemple : uKCL1003AVA, j'aimerais qu'il compare uniquement 003AVA. Pourquoi je ne veux pas faire les 6 derniers caractères car je peux avoir aussi uKCL1003OR à comparer et dans ce cas il va me prendre 1003OR et je veux pas qu'il prenne le 1.

Re,

Mid(TV(I, 1), 6) 

va renvoyer tous les caractères à partir du sixième...

Merci un génie

Rechercher des sujets similaires à "comparaison valeurs tableau vba"