Comparaison de valeurs dans 2 colonnes différentes

Bonjour

Ci joint un un fichier accompagné de ces explications, parfois un schéma est plus parlant qu'un long discours.

Pouvez-vous m'aider à régler ce problème, svp ?

Cdlt

40code.xlsx (16.42 Ko)

Bonjour,

sur base de quel critère faut-il associer le code2 à RATAN02 ?

tu parles d'un code 0162, mais je suppose que tu as voulu dire 0161 ?

Bonjour

Il est très difficile d'expliquer un problème.

complément :

J'ai deux fichiers, l'un est composé d'une réf et d'un code et le deuxième d'une réf et d'un nouveau code que j'ai appelé code 2 pour les différencier. Le code 016 (pris pour ex) du 1er fichier pourrait être une grosse usine puis distribution du courrier par le secrétariat mais voilà, le courrier ne mentionne pas le bureau à qui il faut donner ce courrier. Le code 2 représente ces bureaux. il me faut donc trouver une formule qui me permettra de remplacer le code pour l'exemple 016 par les codes 2 en fonction de leur réf. Mais il ,arrive que des ref sont envoyées en double ou plus et pas pour le même bureau. cas du RATAN102 qui va dans 4 bureaux différents. je n'ai mis qu'une seule réf mais ils en existent d'autres dans le même cas.

Il faut remplacer 016 dans la colonne code par la valeur ayant le code 2 associé à une référence identique. Ce qui se traduit par pour le RAT AN 102

B30 remplacer 016 par 0167

B31 remplacer 016 par 0165

B32 remplacer 016 par 0174

B33 remplacer 016 par 0178

Cdlt

h2so4 a écrit :

Bonjour,

sur base de quel critère faut-il associer le code2 à RATAN02 ?

tu parles d'un code 0162, mais je suppose que tu as voulu dire 0161 ?

Bonjour

Est ce que la réponse vous convient

Cdlt

Bonjour,

Il faut remplacer 016 dans la colonne code par la valeur ayant le code 2 associé à une référence identique. Ce qui se traduit par pour le RAT AN 102

B30 remplacer 016 par 0167

B31 remplacer 016 par 0165

B32 remplacer 016 par 0174

B33 remplacer 016 par 0178

Justement, aucun critère ne peut justifier un tel remplacement, hormis la position sur la même ligne.

Mais si c'est le critère à prendre en compte, la substitution de code2 à code règle tout problème.

Cordialement

Ferrand

Bonjour

Le fichier que j'ai joint porte à confusion. Jje viens de comprendre les erreurs que j'ai commises. Il est vrai que si tout était dans le même format, sur les mêmes lignes et les mêmes données communes, il suffirait de coller la colonne code 2 pour remplacer la colonne B code. Mais impossible car le fichier 1 comporte 9000 identifiants dans lequel sont mélangés les 8553 réf de mon fichier 2 (les 32 sont un échantillon). Je n'ai en plus que quelques codes à reprendre. Pour info Le code est formé de 3 chiffres ou de 6 lettres, mais les transfo concernent uniquement les chiffres pour 4 ou cinq codes différents.

Le critère principal est de récupérer le code 2 et de remplacer le code associé à un identifiant. Le critère d'association est l'identifiant

Un identifiant qui comporte plusieurs codes (cas du RATAN102), il faudra remplacer par les code 2 de ce même identifiant dans l'autre fichier.

Est ce que j'ai répondu à votre demande ?

Cdlt

si l'on trouve la référence RATAN102 en colonne A, peut-on en déduire que les 3 lignes suivantes seront également RATAN102 ?

bonjour h2so4

Oui

Cdlt

Bonjour,

solution via une macro d'après ce que j'ai compris

Sub remplircode()
    i = 2
    dlc = Cells(Rows.Count, 4).End(xlUp).Row
    Set plc = Range(Cells(2, 4), Cells(dlc, 4))
    While Cells(i, 1) <> ""
        Set re = plc.Find(Cells(i, 1), lookat:=xlWhole)
        If Not re Is Nothing Then
            j = 0
            While Cells(i, 1) = Cells(i + j, 1)
                Cells(i + j, 2) = re.Offset(j, 1)
                j = j + 1
            Wend
            i = i + j
        Else
            Cells(i, 2) = "non trouvé"
            i = i + 1
        End If
    Wend
End Sub

Bonjour

Suite au test effectué, je me rends compte que j'ai fait une erreur. J'ai omis de dire qu'une réf peut avoir plusieurs code associé

Ex : 080T105 --------- 016

080T105 --------- 510

Ce qui fait qu'à chaque fois que j'applique la macro il me change systématiquement le code par le code 2.

Donc, si l'indenfiant + code , rechercher le même identiant assoscié de son code2 qui vient remplacer le code.

Ex : si (fichier 1)

080T105 --------- 016

080T105 --------- 510

Fichier 2:

080T105 --------- 0162

Je ne remplace que 080T105 --------- 016 devient 0162

mais 080T105 --------- 510 reste puisque égalité en identifiant mais pas en code 510.

23code-alavia.xlsx (19.96 Ko)

Bonjour,

correction sur base de ce que j'ai compris

Sub remplircode()
    i = 2
    dlc = Cells(Rows.Count, 4).End(xlUp).Row
    Set plc = Range(Cells(2, 4), Cells(dlc, 4))
    While Cells(i, 1) <> ""
        Set re = plc.Find(Cells(i, 1), lookat:=xlWhole)
        If Not re Is Nothing Then
            j = 0
            oldcode = Cells(i, 2)
            While Cells(i, 1) = Cells(i + j, 1)
                If oldcode = Cells(i + j, 2) Then
                Cells(i + j, 2) = re.Offset(j, 1)
                End If
                j = j + 1
            Wend
            i = i + j
        Else
            'Cells(i, 2) = "non trouvé"
            i = i + 1
        End If
    Wend
End Sub

Bonsoir

Merci pour la macro, j'ai fait des test sur un échantillonnage, demain je vais récupérer les modifications et je ferais de nouveau test.

Mille merci

A+

Cdlt

Bonsoir

J'ai fini de tester la macro c'est parfait

Mille merci

Cdlt

Rechercher des sujets similaires à "comparaison valeurs colonnes differentes"