cs_Gokuan
Messages postés51Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention17 novembre 2008
-
24 oct. 2006 à 14:08
cs_Gokuan
Messages postés51Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention17 novembre 2008
-
24 oct. 2006 à 22:07
Hello les amis, c'est à nouveau moi pour une nouvelle question lol
Je vous explique, j'ai réussi à afficher les valeurs dans une liste box tout est ok, mais maintent que je veux prendre une de ces données, ben gros souci...
Exemple de mon code :
Dim Nbr As Double 'Vi Double car c'est des chiffres à virgules'
Dim NbrTot As Double
Nbr = ListBox1.List (i, 9) '---------> le souci ici c'est que ListBox1.List retourne un String, enfin une chaine de caractère
NbrTot = NbrTot + Nbr
i = i + 1
bon y a une boucle en haut encore, mais ej vais pas l'écrire là... et j'ai une erreur "13", et si je mets as Variant ça marche mais ça me fait plus les calcules et mets les un après les autre...
Est-ce que qqun aurait une réponse simple à me donner, merci d'avance
cs_Gokuan
Messages postés51Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention17 novembre 2008 24 oct. 2006 à 14:39
hello ami programmeur, Ben j'ai essayé avec le CDbl... mais ça ne marche pas, ils me renvoie tout de même Erreur "13" Problème d'imcompatibilités.......................
Le pire c'est que parfois il accepte quand je mets rien, mais parfois il plante... ça aussi je trouve completment pas logique...
Les 2 valeur serve car c'est ListBox1.List(ligne, colonne) Il sélectionne la ligne i et la colonne 9...
Mais ça ne marche toujours pas... toujours cette erreur, dans le débuger c'est marque que ma variable nbr0 et le ListBox1.List(i, 9) "0,4" mais ça ne passe pas même avec le CDbl devant...
Je suis trop bloqué la dessus...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 24 oct. 2006 à 14:57
Essaye dans ce cas juste pour voir de déclarer nbr en type Variant et affiche dans une message box le contenu de nbr.
Tu as toujours ta virgule ? Pas un point ou autre chose ?
Et essaye ensuite de convertir ta variable avec Cdbl...
Mais puisque tu parles de virgule, moi j'ai une préférence pour le type de variable Currency.
Dim nbr as Currency
Et pour convertir un type String, on utilise CCur
cs_Gokuan
Messages postés51Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention17 novembre 2008 24 oct. 2006 à 15:13
hello, yep c'est ce que j'ai cru à la base, mais non, on peut avoir des colonnes grâce à la fonction List, mais le souci, c'est que justement tout fonctionne, mais y une erreur au niveau des variables, si je les mets tous en variant, ben ça marche nickel sauf que au lieu de marquer "1" qui serait le résultat de 0.4+0.6 il me marque 0.40.6......
Voilà mon souci... et juste avant si jamais je vais chercher les informations sur une feuille excel, comme ceci
cs_Gokuan
Messages postés51Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention17 novembre 2008 24 oct. 2006 à 16:12
REEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!!!!!!!!!¨¨
Vi alors désolé, j'ai fait un test avec un MsgBox (Nbr) et effectivement c'est 0,4!!!!
donc pas de point... c'est logiquement pour ça que ça ne fonctionne pas, mais pourquoi??? dans excel, c'est bien un point ou je récupère la valeur... comment je peux faire ???
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 24 oct. 2006 à 16:47
Ce n'est pas une solution propre dans ton cas, il faudrait mieux trouver pourquoi tu remontes une virgule et non un point, mais tu peux toujours contourner en remplaçant le virgule par un point dans ton expression. Avant le calcul, tu rajoutes :
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 24 oct. 2006 à 16:49
Autre solution peut-être : tu récupères la valeur dans EXCEL, tu dois donc avoir quelque chose qui ressemble à Variable = range("A1").value
Remplace donc par Variable = range("A1").text
cs_Gokuan
Messages postés51Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention17 novembre 2008 24 oct. 2006 à 20:59
Hello Molenn, je vois pas très comment tu dis de faire... mais tu vois... là grosse surprise, j'ai simplement créer une variable exemple de type Variant en haut de mon code, ensuite là ----->
ListBox1.List(i, 7) = Cells(Row(une variable pour la ligne, référence a ma grosse boucle), 18).Value
J'ai juste rajouté ça avant de mettre la suite sous cette ligne
exemple = ListBox1.List(i, 7)
Nbr = ListBox1.List(i, 7) ben mtn ça marche, il mets directement en point...??? soit y a pas de logique... ou je alors c'est que je comprends vraiment plus rien... serait-ce un bug???