Condition Vba

Fermé
ouistiti - 22 févr. 2011 à 11:59
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 23 févr. 2011 à 12:13
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

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 22/02/2011 à 12:58
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
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 22/02/2011 à 15:16
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 22/02/2011 à 18:51
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
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 23/02/2011 à 12:13
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