Valeur cellule > ou

Bonjour,

Je voulais affecter ce code à ma feuille, mais ce dernier ne fonctionne pas..

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("D25").Value > Range("H25").Value Then

End Sub

Très simple, si la valeur de cellule D25 est supérieure à celle de la cellule H25.

Si quelqu'un pouvait m'orienter,

Merci.

Salut

JeremyW a écrit :

si la valeur de cellule D25 est supérieure à celle de la cellule H25 ........

.... alors quoi ?????

Tu ne précises pas ce qui doit être réalisé si la condition est remplie.

Voici un exemple de code complété

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("D25").Value > Range("H25").Value Then
    MsgBox "La valeur de la cellule D25 est plus grande que la valeur de la cellule H25"
End If
End Sub

Bonsoir Yvouille,

Je n'ai pas précisé la suite du code parce que le début ne fonctionnait pas.

Ma question était donc là, et il faillait juste rajouter "End If"

Merci pour ton aide et bonne soirée

Re-boujour,

IF est une des rares instructions que je connaisse qui ne demande pas nécessairement de END à la fin. Si tu n’as qu’une seule instruction à réaliser au cas où la condition est remplie, tu peux l’écrire à la suite, sur la même ligne et sans END IF.

Ainsi le code ci-dessous réalise exactement la même action que le premier code que je t’ai fourni

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("D25").Value > Range("H25").Value Then MsgBox "La valeur de la cellule D25 est plus grande que la valeur de la cellule H25"
End Sub

Par contre, dès que tu as deux actions ou plus à accomplir, tu dois obligatoirement passer par End if

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("D25").Value > Range("H25").Value Then
    MsgBox "La valeur de la cellule D25 est plus grande que la valeur de la cellule H25"
    MsgBox "Exemple d’une deuxième instruction"
End If
End Sub

Amicalement.

Bonjour Yvouille,

Merci pour ces précisions, je saurais m'en souvenir.

J'ai constitué mon code de la façon suivante et je voulais le répéter sur les 10 prochaines lignes.

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D25").Value > Range("H25").Value Then
Range("K25").Value = "NS"
ElseIf Range("D25").Value < Range("H25").Value Or Range("D25").Value = Range("H25").Value Then
Range("K25").Value = "S"
End If
End Sub

S étant satisfaisant et NS non satisfaisant

Moi qui pensais que ce serait vraiment là le plus simple à faire, je me heurte à un problème, excel me dit "espace pile insuffisant"

Je pense que si je l'applique différemment, par exemple à un bouton, je devrais contourner le problème.

Te souhaitant de bonnes fêtes.

Salut,

Dans le code de ta Feuil1, j’ai modifié ton code de manière à te montrer comment tu pouvais le simplifier et j’y ai indiqué une information complémentaire sous forme de commentaire.

Je ne suis pas arrivé à comprendre pourquoi ça bloque avec ton code à toi. Peut-être que ça vient de ces instructions ‘.value’ qu’il ne faut utiliser que lorsque c’est nécessaire.

Dans le code de ta Feuil2, je te montre un code qui effectue la même action, mais sur les 10 prochaines lignes également.

A te relire

9jeremy.zip (10.10 Ko)

Merci Yvouille pour ton aide.

Ta solution 2 me va parfaitement, j'ai réussi à y intégrer de la couleur en fonction de la réponse.

DE bonnes fêtes encore à toi.

Bonjour Yvouille,

Il y a une chose que je ne comprend pas dans ton code, c'est:

f Target.Count > 1 Then Exit Sub

Pourrais-tu stp m'expliquer ?

Merci

Salut,

Cette instruction fait que le code s’arrête là si tu as effectué une sélection multiple. Si tu supprimes cette ligne de code et que tu sélectionnes par exemple les lignes 25 à 35 avant d’appuyer sur ‘Delete’, le solde du code est déclenché et tu auras un S qui va apparaître en K25.

D’autres actions non désirées peuvent être déclenchées de la sorte.

Cordialement.

Bonsoir Yvouille,

Merci pour ces explications.

Rechercher des sujets similaires à "valeur"