Comparer et soustraire cellule

Résolu
cs_ivan34 Messages postés 7 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 3 avril 2009 - 27 mars 2009 à 08:04
cs_ivan34 Messages postés 7 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 3 avril 2009 - 3 avril 2009 à 08:26
Bonjour,
Je cherche la façon dont je pourrais résoudre à l'aide d'une macro le pb suivant: J'ai 4 colonnes
CelA CelB CelD CelE
Je veux comparer mes col CelA et CelD et tester si elles sont identiques
Si c'est le cas je soustrais la valeur de la CelB a CelE que j'affiche dans CelG (en clair si CelA = CelB alors J'affiche résultat de CelB - CelE dans CelG)

Merci pour vos réponses

11 réponses

cs_ivan34 Messages postés 7 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 3 avril 2009
3 avril 2009 à 08:26
Bonjour,

En fait je n'ai pas voulu entrer trop dans le détail pour simplifier.

Ma ColD est déjà le résultat de la comparaison de la feuil1 et de la feuil2 (feuil2 ou est présent ma ColA) ce qui veut dire qu'au départ j'avais effectivement 600 lignes sur les deux feuil.
Ma ColD est donc le résultat: cad c'est toutes les Cel de chaque feuil qui ont une différence.
Maintenant je voudrais avoir l'écart entre le résultat des Cel différentes (Cel de la ColD) et Cel de ma ColA

change

Cells.SpecialCells(xlCellTypeLastCell).Row

dans mon code par la valeur qui te plaira... c'est l'indice de la dernière ligne utilisée dans la feuille.

Peux tu m'expliquer par changer.

Et merci encore pour toute ton aide
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 mars 2009 à 08:37
tu peux te contenter d'une formule Excel

SI(A1D1;B1-E1;"")
0
cs_ivan34 Messages postés 7 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 3 avril 2009
27 mars 2009 à 09:56
En fait j'ai besoin d'une macro, car je traite environ 1500 lignes et qd je fais ma comparaison ma ligne1 de ma ColA ne correspond pas forcément a ma ligne1 de ma ColB, il me faut tester l'égaliter afin de pouvoir faire la soustraction
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 mars 2009 à 10:03
ce genre de choses, en somme

If Range("A1").Value = Range("D1").Value Then
Range("G1").Value = Range("B1").Value - Range("E1").Value
endif
0

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

Posez votre question
cs_ivan34 Messages postés 7 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 3 avril 2009
27 mars 2009 à 12:28
Merci
Mais j'ai besoin de tester chaque Cellule genre for each..., car j'ai besoin de vérifier que l'égalité sur toutes les cellules de la ColA et ColD.
0
cs_ivan34 Messages postés 7 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 3 avril 2009
2 avril 2009 à 09:34
Bonjour,
Je me suis mal exprimé en fait j'ai besoin de tester chaque Cel de la ColA avec chaque Cel de la ColD pour ensuite afficher en ColG chaque valeur trouver de ColB - ColE

Merci.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 avril 2009 à 09:41
Dim nRow As Long
For nRow = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
If Cells(nRow, 1).Value = Cells(nRow, 4).Value Then
Cells(nRow, 7).Value = Cells(nRow, 2).Value - Cells(nRow, 5).Value
End If
Next nRow
0
cs_ivan34 Messages postés 7 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 3 avril 2009
2 avril 2009 à 15:44
Merci, pour ta réponse.
Mais comment faire pour que celle-ci soit pour chaque cellule. Je m'explique
Pour chaque Cel de ColA = Cel de ColD alors afficher en ColG chaque valeur trouver de ColB - ColE

Merci par avance
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 avril 2009 à 15:56
n'est-ce pas ce que fait le code que je t'ai soumis ?
0
cs_ivan34 Messages postés 7 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 3 avril 2009
2 avril 2009 à 22:14
En fait ton code s'exécute bien, mais il ne balaye pas toute la ColA pour vérifier la ColD. Je m'explique en fait ce que j'aimerai c'est:
Ma ColA représente environ 600 lignes alors que ma ColD elle ne fait que 100 lignes. Donc pour chaque Cel de la ColA j'ai une Cel de la ColD qui lui correspond alors je prend la valeur de la Cel de la ColE qui est à côté de la valeur de Cel de ColD et que je soustrais a la Cel de la ColB qui est à côté de la Cel de la ColA.
J'espère que je suis clair. En fait je me demande s'il ne faut pas employé For each... mais je m'y connais pas assez.
En tout cas merci beaucoup pour ton aide
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
3 avril 2009 à 05:58
"Ma ColA représente environ 600 lignes alors que ma ColD elle ne fait que 100 lignes. Donc pour chaque Cel de la ColA j'ai une Cel de la ColD"

c'est pas logique... que font tes 500 autres lignes de la colonne A ?

change

Cells.SpecialCells(xlCellTypeLastCell).Row

dans mon code par la valeur qui te plaira... c'est l'indice de la dernière ligne utilisée dans la feuille.

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous