Condition Vba

Bonjour,

J'ai un problème avec une condition sous Excel : il trouve que la condition est fausse, alors qu'elle devrait être vraie.*

Voici un extrait de mon tableau de 600 lignes. Pour un lieu donné, et un code donné, je dispose d'une valeur. J'ai également une deuxième liste, avec le lieu, le code, et je voudrais compléter la valeur.
Je veux seulement : si lieu 1 = lieu 2, et si code 1 = code 2, alors valeur à compléter = valeur 1

Lieu 1 Code 1 Valeur 1 Lieu 2 Code 2 Valeur à compléter
ABC Z126 2,2 ABC Z08
DEF Z126 2,2 ABC Z10ZU
GHI Z126 2,2 GHI Z11
ABC Z127Z 2,2 GHI Z126
DEF Z127Z 2,2 DEF Z126
DEF Z131 2,2 DEF Z127Z
ABC Z131ZZ 2,3 DEF Z131
DEF Z131ZZ 2,3 GHI Z1313
GHI Z131ZZ 2,5 GHI Z1313ZU
DEF Z229Z 2,3 GHI Z131ZZ
GHI Z229Z 2,3 GHI Z14Z
ABC Z230 2,3 GHI Z1613
DEF Z230 2,3 ABC Z19Z

Mon code est le suivant :
Sheets("Feuil1").Select
For i = 2 To 600
For j = 2 To 600
If Range("A" & i).Value = Range("D" & j).Value Then
If Range("B" & i).Value = Range("E" & j).Value Then
Range("F" & j).Value = Range("C" & i).Value
End If
End If
Next j
Next i
End
Le problème est que la condition code1=code2 n'est jamais vraie.

Merci beaucoup pour votre aide.
Cordialement
L.

7 réponses

  1. Contributeur
    Tu pourrais déposer ton classeur sur CiJoint.fr ? (sans données confidentielles)
    Et mettre le lien sur un poste suivant.
    Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
    0
    1. Bonjour,

      Désolée, mais ça ne fonctionne pas sur mon fichier.
      De quoi est-ce que ça peut venir?
      Format de cellule?
      J'ai essayé de tout copier coller sur un autre fichier mais ça ne marche pas mieux...

      Merci de ton aide.

      L.
      0
      1. Contributeur
        Voila le résultat que j'ai avec tes données..
        Paris Z123 2,1 Paris Z123 2,1  
        Lyon         Z122 2,3 Paris Z10ZU   
        Paris   Z121 2,4 Caen Z131 2,5  
        Lyon       Z124Z 2,5 Caen Z126   
        Caen Z127Z 2,4 Lyon  Z126   
        Caen Z131 2,5 Lyon   Z131ZZ 2,3  
        Lyon     Z131ZZ 2,3 Lyon        Z131   
        Caen Z131 2,3 Caen Z131 2,5  
        Paris  Z131ZZ 2,5 Lyon     Z1313ZU   
        Caen Z229Z 2,3 Caen Z131ZZ   
        Paris       Z229Z 2,2 Caen Z229Z 2,3  
        Lyon         Z230 2,1 Lyon Z1613   
        Caen Z230 2,3 Paris Z19Z

        Les tabulations rende pas bien.
        Mais dans le tableau source tu à 2 fois Caen Z131, donc c'est la prémière valeur (2,5) qui est reprise.
        Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
        Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
        NOTE : Je ne répond pas aux MP pour les questions techniques.
        Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
        0
        1. Merci beaucoup pour ta réponse!

          Mais ça ne marche toujours pas... :(

          La condition Colonne E = Colonne B n'est jamais vraie...

          J'ai vérifié les formats de mes cellules sont les même.

          Par contre, j'ai fait un essai sur une ligne et ça marche si :
          - je copie "Paris" (colonne A) à la place de "Paris" (Colonne D)
          - et je copie "Z123" (colonne B) à la place de "Z123" (Colonne E)
          et que je lance le code. Mais seule cette ligne a fonctionné....

          Est-ce que tu as une idée de pourquoi ça ne marche pas?

          Merci.
          L.
          0
          1. Contributeur
            Oui, effectivement, c'est plus clair.
            Sub Ajouter() 
            Dim i As Long, j As Long, f As Long 
            Dim DerLig As Long 
                 Sheets("Feuil1").Select 
                DerLig = Range("A65536").End(xlUp).Row 
                For i = 2 To DerLig 
                    For j = 2 To DerLig 
                        If Range("D" & i) = Range("A" & j) And Range("E" & i) = Range("B" & j) Then 
                            Range("F" & i) = Range("C" & j) 
                            Exit For 
                        End If 
                    Next j 
                Next i 
            End Sub
            Mais il n'y a pas de concordance pour toutes les lignes.
            A+
            Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
            Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
            NOTE : Je ne répond pas aux MP pour les questions techniques.
            Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
            0
            1. Désolée si je n'ai pas été assez claire.

              Pour une ville, et un code donné, j'ai une valeur :
              ex : Paris avec le code Z123 donne la valeur 2.1
              Sauf que j'ai une deuxième liste de lieux (colonne D) et de codes (colonnes E), mais il n'y a pas les valeurs.
              Je voudrais écrire un code qui m'écrive en colonne F la valeur adéquate.
              ex : Paris, code Z123 donne la valeur 2.1 en colonne F

              Colonne A - Colonne B - Colonne C
              Paris - Z123 - 2,1
              Lyon - Z122 - 2,3
              Paris - Z121 - 2,4
              Lyon - Z124Z - 2,5
              Caen - Z127Z - 2,4
              Caen - Z131 - 2,5
              Lyon - Z131ZZ - 2,3
              Caen - Z131 - 2,3
              Paris - Z131ZZ - 2,5
              Caen - Z229Z - 2,3
              Paris - Z229Z - 2,2
              Lyon - Z230 - 2,1
              Caen - Z230 - 2,3

              Colonne D - Colonne E - Colonne F
              Paris - Z123
              Paris - Z10ZU
              Caen - Z131
              Caen - Z126
              Lyon - Z126
              Lyon - Z131ZZ
              Lyon - Z131
              Caen - Z131
              Lyon - Z1313ZU
              Caen - Z131ZZ
              Caen - Z229Z
              Lyon - Z1613
              Paris - Z19Z

              Merci d'avance.
              L.
              0
              1. Contributeur
                Bonjour,
                Normal, avec le code que tu a il n'y a aucune correspondance dans la liste que tu met.
                A+
                ÉDIT : Met un exemple du RÉSULTAT que tu voudrais
                Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
                Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
                NOTE : Je ne répond pas aux MP pour les questions techniques.
                Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
                0