Problème pour comparer 2 range différents VBA [Résolu/Fermé]

Signaler
Messages postés
104
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 juillet 2017
-
Messages postés
104
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 juillet 2017
-
Bonjour,

Il y a un truc que je n'arrive pas à faire, c'est faire en sorte qu' un range soit inférieur à un autre range.

J'ai écrit ça mais ça ne fonctionne pas :


For i = 1 To range("C1" )

If range("B" & 2 + i) = "A" And range("F" & 2 + i) < range("H" & 2 + i) Then range("I" & 2 + i) = "Oui"

Next


J'ai fais plusieurs test moi-même et j'en ai déduit que c'est le morceau range("F" & 2 + i) < range("H" & 2 + i) qui ne va pas.

Je voudrais que la macro écrive "Oui" dans le range I à condition qu'il y ai écrit "A" dans le range B et que les valeurs du range F soit inférieures aux valeurs du range H.

Comment faire ??


Merci pour votre aide

3 réponses

Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 525
Salut,
Que se passe t'il exactement?
Je te demande cela car :
1- ton code est bon
2- il fonctionne chez moi...
Messages postés
104
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 juillet 2017
20
Quand j'écrit :

For i = 1 To range("C1" )

If range("B" & 2 + i) = "A" And range("F" & 2 + i) < range("H" & 2 + i) Then range("I" & 2 + i) = "Oui"

Next

Je n'ai pas de "Oui" qui s'affiche dans la colonne I malgré que les 2 conditions soit validées.
Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 525
peux tu nous placer ici un lien vers ton fichier. Utilise cjoint ou ci-joint pour créer ton lien.
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 142
Et si tu indiques la feuille du Range ?

For i = 1 To Worksheets(1).Range("C1" )

If Worksheets(1).Range("B" & 2 + i) = "A" And Worksheets(1).Range("F" & 2 + i) < Worksheets(1).Range("H" & 2 + i) Then Worksheets(1).Range("I" & 2 + i) = "Oui"

Next i


Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 525
ici ou la
Messages postés
104
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 juillet 2017
20
ah merci. Voila le lien : http://cjoint.com/data/ebnXNv7eWH.htm
Par contre il faut renommer en "Classeur1" pour que ça fonctionne
Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 525
OK.
Le problème ne vient pas de ton test à la fin, mais de la manière dont tu remplis la colonne F. Ton copier/collage spécial entre les valeurs en F en format standard :

Selection.Copy
Windows("Classeur1.xls").Activate
Sheets("feuil1").Select
range("F" & i + 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Tu as donc deux choix :
1- tu "transforme" le format de ces valeurs juste après les avoir collées :
Selection.Copy
Windows("Classeur1.xls").Activate
Sheets("feuil1").Select
range("F" & i + 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
range("F" & i + 2) = CDbl(range("F" & i + 2))

2- Tu fais le test en "transformant" le format des cellules de la colonne F :
For i = 1 To range("C1" ) 
If range("B" & 2 + i) = "A" And CDbl(range("F" & 2 + i)) < CDbl(range("H" & 2 + i)) Then range("I" & 2 + i) = "Oui" 
Next
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 142
Tout juste et de plus F n'est jamais inférieur à H dans l'exemple ...

je propose plutôt de mettre 2 variables :

For i = 1 To range("C1" ) 

Valeur1 = CDbl(Range("F" & 2 + i))
Valeur2 = CDbl(range("H" & 2 + i))

If range("B" & 2 + i) = "A" And Valeur1 < Valeur2 Then range("I" & 2 + i) = "Oui" 

Next i


Ça simplifie la manip et permet de contrôler les variables s'il doit y avoir une maintenance.

;o)
Messages postés
104
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 juillet 2017
20
Super !!!!!! ça marche !!! Merci à vous 2 pour votre aide. C'est génial !
J'avais vu cette différence de format et je l'avais modifié directement sur Excel, mais ça ne fonctionnait pas et donc je pensais que le problème venait d'ailleurs.
Un grand merci, sincèrement !