Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème de valeur ou de déclaration ...

4 réponses
Avatar
Sylian
J'ai fait un useform qui demande 2 valeurs (vUp et vDown) et qui demande
ausi de sélectionner une plage de valeur.
Ensuite je lance ma macro sur cette plage en effectuant des tests. Jusque là
tout va bien. Surtout que lorsque je remplace vUp et VDown par des chiffres
tels -2 ou +2,5 alors tout fonctionne à merveille.

Mais dès que je place vUp ou vDown (valeurs utilisateurs) à la place des
chiffres ...les tests répondent n'importe quoi. (J'ai pourtant tester les
valeurs dans une cellule, elles correspondent bien à à des chiffres tels +2
etc...)



Dim Cell As Range

' petit test pour vérifier que les valeurs entrées sont bien juste
Range("$P$1") = vDOWN
Range("$P$2") = vUP

For Each Cell In Range(RefEdit1)
Cell.FormatConditions.Delete
'Si je remplace vDOWN en tapant -2 alors ça fonctionne !
'Si je laisse vDown comme si-dessous en vérifiant dans la cellule test $P$1
que vDOWN est bien égale à -2
'alors le test échoue (sans message d'erreur mais en executant un test
bidon)
If Cell.Value < vDOWN Then
Cell.Font.ColorIndex = 4
Cell.Value = "DOWN"
Else
If Cell.Value > vUP Then
Cell.Font.ColorIndex = 3
Cell.Value = "UP"
Else
Cell.Value = " "
End If
End If
Next


Je n'arrive pas à comprendre la différence entre un -2 tapé à la main et
vDOWN dont la valeur est -2 aussi ... pourquoi l'un fonctionne et l'autre
pas ? HELP !

4 réponses

Avatar
cousinhub
Bonsoir, peut-être avec la syntaxe suivante :

If FormatNumber(ActiveCell, 0) < FormatNumber([a1], 0) Then

En adaptant, bien sûr

Bon courage

J'ai fait un useform qui demande 2 valeurs (vUp et vDown) et qui demande
ausi de sélectionner une plage de valeur.
Ensuite je lance ma macro sur cette plage en effectuant des tests. Jusque là
tout va bien. Surtout que lorsque je remplace vUp et VDown par des chiffres
tels -2 ou +2,5 alors tout fonctionne à merveille.

Mais dès que je place vUp ou vDown (valeurs utilisateurs) à la place des
chiffres ...les tests répondent n'importe quoi. (J'ai pourtant tester les
valeurs dans une cellule, elles correspondent bien à à des chiffres tels +2
etc...)



Dim Cell As Range

' petit test pour vérifier que les valeurs entrées sont bien juste
Range("$P$1") = vDOWN
Range("$P$2") = vUP

For Each Cell In Range(RefEdit1)
Cell.FormatConditions.Delete
'Si je remplace vDOWN en tapant -2 alors ça fonctionne !
'Si je laisse vDown comme si-dessous en vérifiant dans la cellule test $P$1
que vDOWN est bien égale à -2
'alors le test échoue (sans message d'erreur mais en executant un test
bidon)
If Cell.Value < vDOWN Then
Cell.Font.ColorIndex = 4
Cell.Value = "DOWN"
Else
If Cell.Value > vUP Then
Cell.Font.ColorIndex = 3
Cell.Value = "UP"
Else
Cell.Value = " "
End If
End If
Next


Je n'arrive pas à comprendre la différence entre un -2 tapé à la main et
vDOWN dont la valeur est -2 aussi ... pourquoi l'un fonctionne et l'autre
pas ? HELP !




Avatar
Sylian
Ca ne fonctionne pas :( J'ai un joli message d'erreur quand je change les
critères et les tests sont faux.
Par contre, tu m'as mis sur piste. Je viens d'essayer un :

If Cell.Value < Val( vDOWN ) Then

Et le Val() à l'air de faire son effet. C'est la solution ou du bol ?
je continue les essaies !

PS : Merci de ta réponse aussi rapide à une heure aussi tardive !

"cousinhub" a écrit dans le message de news:

Bonsoir, peut-être avec la syntaxe suivante :

If FormatNumber(ActiveCell, 0) < FormatNumber([a1], 0) Then

En adaptant, bien sûr

Bon courage

J'ai fait un useform qui demande 2 valeurs (vUp et vDown) et qui demande
ausi de sélectionner une plage de valeur.
Ensuite je lance ma macro sur cette plage en effectuant des tests. Jusque
là tout va bien. Surtout que lorsque je remplace vUp et VDown par des
chiffres tels -2 ou +2,5 alors tout fonctionne à merveille.

Mais dès que je place vUp ou vDown (valeurs utilisateurs) à la place des
chiffres ...les tests répondent n'importe quoi. (J'ai pourtant tester les
valeurs dans une cellule, elles correspondent bien à à des chiffres tels
+2 etc...)



Dim Cell As Range

' petit test pour vérifier que les valeurs entrées sont bien juste
Range("$P$1") = vDOWN
Range("$P$2") = vUP

For Each Cell In Range(RefEdit1)
Cell.FormatConditions.Delete
'Si je remplace vDOWN en tapant -2 alors ça fonctionne !
'Si je laisse vDown comme si-dessous en vérifiant dans la cellule test
$P$1 que vDOWN est bien égale à -2
'alors le test échoue (sans message d'erreur mais en executant un test
bidon)
If Cell.Value < vDOWN Then
Cell.Font.ColorIndex = 4
Cell.Value = "DOWN"
Else
If Cell.Value > vUP Then
Cell.Font.ColorIndex = 3
Cell.Value = "UP"
Else
Cell.Value = " "
End If
End If
Next


Je n'arrive pas à comprendre la différence entre un -2 tapé à la main et
vDOWN dont la valeur est -2 aussi ... pourquoi l'un fonctionne et l'autre
pas ? HELP !




Avatar
cousinhub
Re-, (même tardivement.....):-)
Un petit fichier exemple, exempt de toutes informations confidentielles,
avec cjoint?
http://www.cjoint.com/
Amicalement


Ca ne fonctionne pas :( J'ai un joli message d'erreur quand je change les
critères et les tests sont faux.
Par contre, tu m'as mis sur piste. Je viens d'essayer un :

If Cell.Value < Val( vDOWN ) Then

Et le Val() à l'air de faire son effet. C'est la solution ou du bol ?
je continue les essaies !

PS : Merci de ta réponse aussi rapide à une heure aussi tardive !

"cousinhub" a écrit dans le message de news:

Bonsoir, peut-être avec la syntaxe suivante :

If FormatNumber(ActiveCell, 0) < FormatNumber([a1], 0) Then

En adaptant, bien sûr

Bon courage

J'ai fait un useform qui demande 2 valeurs (vUp et vDown) et qui demande
ausi de sélectionner une plage de valeur.
Ensuite je lance ma macro sur cette plage en effectuant des tests. Jusque
là tout va bien. Surtout que lorsque je remplace vUp et VDown par des
chiffres tels -2 ou +2,5 alors tout fonctionne à merveille.

Mais dès que je place vUp ou vDown (valeurs utilisateurs) à la place des
chiffres ...les tests répondent n'importe quoi. (J'ai pourtant tester les
valeurs dans une cellule, elles correspondent bien à à des chiffres tels
+2 etc...)



Dim Cell As Range

' petit test pour vérifier que les valeurs entrées sont bien juste
Range("$P$1") = vDOWN
Range("$P$2") = vUP

For Each Cell In Range(RefEdit1)
Cell.FormatConditions.Delete
'Si je remplace vDOWN en tapant -2 alors ça fonctionne !
'Si je laisse vDown comme si-dessous en vérifiant dans la cellule test
$P$1 que vDOWN est bien égale à -2
'alors le test échoue (sans message d'erreur mais en executant un test
bidon)
If Cell.Value < vDOWN Then
Cell.Font.ColorIndex = 4
Cell.Value = "DOWN"
Else
If Cell.Value > vUP Then
Cell.Font.ColorIndex = 3
Cell.Value = "UP"
Else
Cell.Value = " "
End If
End If
Next


Je n'arrive pas à comprendre la différence entre un -2 tapé à la main et
vDOWN dont la valeur est -2 aussi ... pourquoi l'un fonctionne et l'autre
pas ? HELP !








Avatar
papou
Bonjour
La solution serait peut-être de modifier comme ceci :
dim vDown as Long
dim vUp as Long

Range("$P$1").Value = vDOWN
Range("$P$2").Value = vUP

Cordialement
Pascal

"Sylian" a écrit dans le message de news:
46157baf$0$19926$
Ca ne fonctionne pas :( J'ai un joli message d'erreur quand je change les
critères et les tests sont faux.
Par contre, tu m'as mis sur piste. Je viens d'essayer un :

If Cell.Value < Val( vDOWN ) Then

Et le Val() à l'air de faire son effet. C'est la solution ou du bol ?
je continue les essaies !

PS : Merci de ta réponse aussi rapide à une heure aussi tardive !

"cousinhub" a écrit dans le message de news:

Bonsoir, peut-être avec la syntaxe suivante :

If FormatNumber(ActiveCell, 0) < FormatNumber([a1], 0) Then

En adaptant, bien sûr

Bon courage

J'ai fait un useform qui demande 2 valeurs (vUp et vDown) et qui demande
ausi de sélectionner une plage de valeur.
Ensuite je lance ma macro sur cette plage en effectuant des tests.
Jusque là tout va bien. Surtout que lorsque je remplace vUp et VDown par
des chiffres tels -2 ou +2,5 alors tout fonctionne à merveille.

Mais dès que je place vUp ou vDown (valeurs utilisateurs) à la place des
chiffres ...les tests répondent n'importe quoi. (J'ai pourtant tester
les valeurs dans une cellule, elles correspondent bien à à des chiffres
tels +2 etc...)



Dim Cell As Range

' petit test pour vérifier que les valeurs entrées sont bien juste
Range("$P$1") = vDOWN
Range("$P$2") = vUP

For Each Cell In Range(RefEdit1)
Cell.FormatConditions.Delete
'Si je remplace vDOWN en tapant -2 alors ça fonctionne !
'Si je laisse vDown comme si-dessous en vérifiant dans la cellule test
$P$1 que vDOWN est bien égale à -2
'alors le test échoue (sans message d'erreur mais en executant un test
bidon)
If Cell.Value < vDOWN Then
Cell.Font.ColorIndex = 4
Cell.Value = "DOWN"
Else
If Cell.Value > vUP Then
Cell.Font.ColorIndex = 3
Cell.Value = "UP"
Else
Cell.Value = " "
End If
End If
Next


Je n'arrive pas à comprendre la différence entre un -2 tapé à la main et
vDOWN dont la valeur est -2 aussi ... pourquoi l'un fonctionne et
l'autre pas ? HELP !