ComparaisonValeurTextbox

M

Moa

Guest
Salut à tous !

J'ai un petit hic avec des valeurs dans des Textboxs.

J'ai deux Textboxs, un contenant une valeur mini et l'autre une valeur maxi.

Puis ma macro me cherche dans un tableau, toutes les valeurs comprises entre ces deux valeurs de références.

Tout fonctionne bien, sauf quand le nombre de caractères de mes deux Textboxs sont différents.

Exemple :

Ma fourchette est de 8 à 12, si j'entre 8 dans le textbox1, j'ai une erreur je dois impérativement écrire de 08 à 12.

Idem si je fais de 80 à 120, je dois écrire de 080 à 120.

J'ai cherché dans les propriétés des objets, mais....pas trouvé.

J'ai changer mes déclarations de variables, j'ai essayé As Integer, As Single...enfin Bof !

Si quelqu'un connaît le problème merci de m'en faire part.

Bonne soirée

@ +

Moa
 
J

Jacques

Guest
bonsoir,

je crois que que tes nombres sont considérés comme des chaînes de caractères et que le classement se fait à partir des caractères de même position à partir de la gauche. c'est pourquoi on obtient dans ce cas là le classement suivant :

1, 11,12,121,122,13, ....,18,19,2,21,...,3 ect

il faut donc les convertir en nombre pour pouvoir faire les comparaisons avec par exemple
val(textbox1.value) et val(textbox2.value)

peut-être cela peut fonctionner
bon courage
 
@

@+Thierry

Guest
Bonsoir Moa, Jacques, le Forum

Et oui Jacques a tout à fait raison, les valeurs de tes TextBox sont retournées comme "String"... La fonction "Val" que propose Jacques est très interressante car elle permet l'extraction d'une valeur numérique à l'intérieur d'une chaine de caractère à condition que cette valeur soit en début de string.

Exemple :
Sub TestVal()
Dim TheStringA As String
Dim TheStringB As String
Dim ValA As Byte
Dim ValB As Byte

TheStringA = "10 ans est l'âge de Toto"
TheStringB = " 8 est celui de Zaza en 2004"

ValA = CByte(Val(TheStringA))
ValB = CByte(Val(TheStringB))
MsgBox "L'age Cummulé de Toto et Zaza = " & ValA + ValB
End Sub


Une autre solution dans la foulée :

Private Sub CommandButton1_Click()
Dim ValMin As Long, ValMax As Long
If Not IsNumeric(TextBox1) Or Not IsNumeric(TextBox2) Then Exit Sub

ValMin = TextBox1
ValMax = TextBox2

'...Ta macro basée donc sur les ValMin / ValMax...

End Sub

Bon Courage
@+Thierry
 
M

Moa

Guest
Salut les gars !

Suite à une angine vraiment carabinée (j'en suis à 4 piqures par jour 2 cortisone + 2 antibio) costaud(e) la garce, je ne suis pas venu depuis samedi sur le forum.

Je viens seulement de voir vos deux réponses, mais je ne vais pas les tester ce soir je suis déjà complètement nase.

Mes deux valeurs de textbox sont déclarées en fait dans des variables.

J'ai fait les tests en les déclarant, Single, Integer, Long, String enfin tout ce qui était dans l'aide Excel.

En ce qui concerne le If isnuméric, c'est déjà déclaré dans mon code.

Mais de toute façon cette appli est terminée, sauf ce petit problème et elle est déjà en Xla, prête à l'emploi.

Et en fait pour tout vous dire, j'avais l'intention de l'envoyer à Ti et @+Thierry afin justement qu'ils vérifient tous mes codes et les erreurs éventuelles.

En fait c'est la version 1.0 sur les trois que j'ai prévu.

Elle devrait servir à beaucoup de gens rébarbatifs au Vba, ou n'ayant pas toujours le temps d'apprendre.

Elle porte sur la sélection rapide de cellules non adjacentes avec des critères particuliers.

D'un simple clic droit souris, on y a accès, après l'avoir bien entendu, chargée dans les macros complémentaires.

Je ne reviendrai sur le forum que d'ici trois ou quatre jours.

Si @+Thierry ou Ti, n'ont pas le temps ou ne veulent pas s'occuper de la finir, que celui que ça interesse leur demande le fichier.

Sur ce, je vous souhaite à tous une bonne semaine et je repars me coucher.

@ +

Moa
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 316
Membres
103 176
dernier inscrit
jean.yvesjean.yves