Comparer et soustraire cellule

[Résolu]
Signaler
Messages postés
7
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
3 avril 2009
-
Messages postés
7
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
3 avril 2009
-
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

Messages postés
7
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
3 avril 2009

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
tu peux te contenter d'une formule Excel

SI(A1D1;B1-E1;"")
Messages postés
7
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
3 avril 2009

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
ce genre de choses, en somme

If Range("A1").Value = Range("D1").Value Then
Range("G1").Value = Range("B1").Value - Range("E1").Value
endif
Messages postés
7
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
3 avril 2009

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.
Messages postés
7
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
3 avril 2009

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.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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
Messages postés
7
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
3 avril 2009

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
n'est-ce pas ce que fait le code que je t'ai soumis ?
Messages postés
7
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
3 avril 2009

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
"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