Malokoxis
Messages postés83Date d'inscriptionlundi 3 janvier 2011StatutMembreDernière intervention22 février 2021
-
Modifié par Malokoxis le 4/02/2014 à 20:48
Malokoxis
Messages postés83Date d'inscriptionlundi 3 janvier 2011StatutMembreDernière intervention22 février 2021
-
5 févr. 2014 à 21:17
Bonsoir à tous,
Je viens de pondre un code pour rechercher des données dans un MSFlexGrid.
Dans ce tableau il y à 6 colonnes qui sont remplies depuis un fichier Excel.
Je souhaite cherche une valeur du type "deux ou trois chiffres avant la virgule, entre 0 et 5 chiffres après" au maximum :
donc entre ##,# et ###,##### (le # remplace un chiffre).
Le début de ma colonne est remplie par des valeurs du type 82.5 classée de la plus petite à la plus grande et lorsque je fait une rechercher une valeur et que cette valeur comprend deux chiffres avant la virgule, pas de soucis, le résultat est trouvé, par contre dès qu'il y à trois chiffres avant la virgule, rien n'est trouvé, alors que le tableau en contient.
Auriez vous une idée ?
Voici mon code :
La valeur que je recherche est dans valeur1.text
Je la recherche dans MSFlexgrid1, d'abord dans la colonne 1 puis dans la colonne 2. Et j'enregistre à quelle ligne elle est dans la colonne 1 dans la variable Ligne1 et à quelle ligne elle est dans la variable Ligne2.
With FichierExcel 'nom de la feuille
.MSFlexGrid1.Row = 1
.MSFlexGrid1.Col = 1
For i = 1 To .MSFlexGrid1.Rows - 1
If Valeur1.Text < .MSFlexGrid1.Text Then
Ligne1 = .MSFlexGrid1.Row - 1
Exit For
End If
.MSFlexGrid1.Row = i
Next i
.MSFlexGrid1.Col = 2
For i = 1 To .MSFlexGrid1.Rows - 1
If Valeur1.Text < .MSFlexGrid1.Text Then
Ligne2 = .MSFlexGrid1.Row - 1
Exit For
End If
.MSFlexGrid1.Row = i
Next i
End With
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 4 févr. 2014 à 23:41
Bon ...
De toutes manières et de manière générale :
les chaînes de caractères ne sont pas des numériques, même si leur contenu est le texte d'un nombre.
Ainsi : "321" est plus petit que que "4" alors que 321 est plus grand que 4.
Pour faire des opérations de comparaisons ou autres sur des nombres exprimés en chaînes de caractères, il est impératif de transposer ces dernières en type numérique.
Existent pour cela les fonctions Cint, Csng, Cdbl ... de VB. Elles sont à étudier dans ton aide VB6 puis à utiliser.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 4 févr. 2014 à 20:54
Bonjour,
difficile de te répondre avec précision sans savoir ce qu'est la variable valeur1.
Tu dis vouloir chercher les nombres dont les entiers pourraient être des dizaines ou des centaines, mais montres un code qui compare des valeurs par rapport à une valeur critère.
Essaye d'expliquer plus techniquement ce que tu cherches à faire, mais également de quoi tu "pars"
Malokoxis
Messages postés83Date d'inscriptionlundi 3 janvier 2011StatutMembreDernière intervention22 février 20212 4 févr. 2014 à 21:07
Bonsoir UCFOUTU,
merci de ta réponse,
Je pars d'un tableau contenant deux colonnes qui m'intéresse. Ces colonne contiennent des plages de valeurs. Donc ligne 1 plage entre 34,9 et 36,25, ligne 2 : entre 36,25 et 39,4, ...
La première valeur de la plage est contenu dans la colonne 1, la dernière dans la colonne 2.
Je souhaite savoir dans quel plage de valeurs se situe le chiffre taper par l'utilisateur. Ce chiffre peu être un chiffre compris entre 0 et 999, avec de 0 à 5 chiffres après la virgule.
mais montres un code qui compare des valeurs par rapport à une valeur critère.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 Modifié par ucfoutu le 4/02/2014 à 21:21
1) Tu n'as pas répondu à ma première question.
2) "Qu'appelle tu valeur et valeur critère ? "
dans :
If Valeur1.Text < .MSFlexGrid1.Text
valeur.text est un critère, que tu compares à une valeur de ta grille !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Vous n’avez pas trouvé la réponse que vous recherchez ?
difficile de te répondre avec précision sans savoir ce qu'est la variable valeur1.
réponse :
le chiffre taper par l'utilisateur. Ce chiffre peu être un chiffre compris entre 0 et 999, avec de 0 à 5 chiffres après la virgule.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 4 févr. 2014 à 22:53
Valeur1.text est en effet sans aucun doute une valeur de type string. Ce n'est pas ce que je t'ai demandé, mais ===>>>
"ce qu'est la variable valeur1"
qui est probablement un objet et non une chaîne de caractères