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

Le
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 !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
cousinhub
Le #4268491
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 !




Sylian
Le #4268481
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"
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 !




cousinhub
Le #4268451
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"
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 !








papou
Le #4268291
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" 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"
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 !








Publicité
Poster une réponse
Anonyme