Recherche de donnée dans MSFlexGrid [Résolu]

Messages postés
78
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
11 août 2019
-
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
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
1
Merci
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.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 218 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
0
Merci
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"
Commenter la réponse de ucfoutu
Messages postés
78
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
11 août 2019
1
0
Merci
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. 
Qu'appelle tu valeur et valeur critère ?

merci
Commenter la réponse de Malokoxis
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
78
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
11 août 2019
1
0
Merci
1) Tu n'as pas répondu à ma première question.
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és
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214 -
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
Commenter la réponse de Malokoxis
Messages postés
78
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
11 août 2019
1
0
Merci
super, je vais essayer ça

merci beaucoup
Commenter la réponse de Malokoxis
Messages postés
78
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
11 août 2019
1
0
Merci
Cint marche très bien, merci beaucoup UCFOUTU.
Que serai le forum sans toi ?!
Commenter la réponse de Malokoxis