cs_choupinoob
Messages postés27Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention27 juin 2011
-
20 juin 2011 à 09:30
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
21 juin 2011 à 16:58
Bonjour à tous.
Mon problème est le suivant, étant toujours débutante, j'essaye tant bien que mal de me renseigner et d'adapter des codes.
Ici je suis rendue à l'acquisition d'une chaîne de caractère transmise via le port série par un balance.
Je réceptionne dans ma textbox une valeur sous la forme suivante : XX.XXXKG, j'aimerait que cette valeur soit exploitable ensuite suivant des intervalles que j'ai prédéfini.
Je me doute que l'erreur vient du fait que l'affichage possède les lettres "KG", j'ai donc tenter de les supprimer de la manière suivante.
Soit :
If tampon = "KG" Then
tampon =" "
End if
Ou
tampon = replace (tampon, "KG", " ")
Mais ma textBox affiche toujours de la même manière.
En vous remerciant d'avance pour votre aide, j’espère avoir été claire :D
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 20 juin 2011 à 16:42
ou tout simplement :
Exemple :
toto = "1245.75KJ"
msgbox val(toto)
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 21 juin 2011 à 08:41
Tu développes bien sous VCBA ?
Si oui, je t'ai déjà répondu : utilisation de la fonction Val !
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 juin 2011 à 09:40
Salut
Pas bien compris le sens de ta question.
"que cette valeur soit exploitable ensuite"
Exploitable ?
"suivant des intervalles que j'ai prédéfini"
Rien à voir avec le problème exposé
Si ton tampon ressemble à XX.XXXKG et que tu appliques la méthode Replace, tu vas obtenir "XX.XXX "
Mais que veux-tu obtenir ?
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_choupinoob
Messages postés27Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention27 juin 2011 20 juin 2011 à 10:42
Toutes mes excuses, étant nouvelle en Vba c'est un peu confus dans ma tête .
Je souhaite donc récupérer les valeurs envoyées par ma balance sous la forme
"XX.XXXKG" en supprimant le "KG", afin que celle ci soit considérer comme un nombre et de pouvoir les rentrer dans un tableau excel et leurs faire subir une série de calculs. (Comparaison, additions, moyennes, etc).
Par exemple si le poids reçu qui est ici une valeur envoyé est supérieur à 50, un label rouge s'allume. etc..
Et la méthode Replace ne marche pas ici pour supprimer "kg".
Merci beaucoup!
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 juin 2011 à 15:49
Ok
Si si, Replace marche très bien.
Tu peux même écrire :
tampon = Replace(tampon, "KG", "")
(avec une chaine vide à la fin)
Maintenant, tout dépend de ce que que renferme ta variable "tampon".
Y a t-il un risque pour que cette variable contienne "XX.XXXKGXX.XXXKG", c'est à dire plusieurs mesures à la suite ? ou encore des données incomplètes ?
Là, c'est à toi de faire les tests sur ta chaine et de découper si besoin, voire mémoriser un contenu incomplet pour y ajouter les prochaines données.
Il faudra peut-être aussi remplacer le point par une virgule, pour être compatible avec les chiffres régionaux de Excel.
Ne sachant pas quel est ton problème, difficile de t'en dire plus : "ne marche pas" ne suffisant pas à décrire un problème.
cs_choupinoob
Messages postés27Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention27 juin 2011 21 juin 2011 à 08:27
Bonjour à tous.
"ne marche pas" ne suffisant pas à décrire un problème.
J'avoue qu'en me relisant je ne suit pas des plus claire parfois.
Ce que j'obtient donc est une variable de poids sous la forme soit :
1) Dizaine unité. dixième centième millième KG
2) unité. dixième centième millième KG.
Je voudrais que les lettre KG soient supprimées à chaque fois car je récupère les données reçue dans une TextBox et je renvoie cette valeur reçue tout au long du programme (remplissage de cellule, moyenne, addition etc.)
Je vous joint un screen de mon écran afin de mieux comprendre si je me suis mal exprimée.
Donc, pour reprendre, la textobox est image de l'afficheur de ma balance, celle-ci renvoyant les données dans les cases du tableaux afin de leurs faire subir une suite d'opération, ici bloquée à cause de "KG
Je reste à votre disposition en cas d'autres questions.
cs_choupinoob
Messages postés27Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention27 juin 2011 21 juin 2011 à 08:44
Oui j'ai testé les réponses données, et j'utilise déjà la fonction Val depuis le départ, je doit probablement la placer au mauvais endroit car j'ai toujours le même résultat.
Voulez vous que je post mon code pour essayer de m'aider? Il est indenté cette fois ucfoutu ;)
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 21 juin 2011 à 08:46
montre ton code
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
cs_choupinoob
Messages postés27Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention27 juin 2011 21 juin 2011 à 08:56
Au temps pour moi, je suis sincèrement désolée, effectivement la fonction val marche très bien, j'utilisait juste la mauvaise variable pour le traitement (quelle boulette je fait!)
Je te remercie encore une fois ucfoutu! (Pour ta rapidité et ton efficacité!)
cs_choupinoob
Messages postés27Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention27 juin 2011 21 juin 2011 à 14:21
Mais du coup, cette fonction "Val" ne risque pas de m'enlever le "." non plus?
J'essaye de trouver l'erreur car mon afficheur affiche le bon poids, mais lorsqu'il est entré tel quel dans la cellule Excel, il est 1 000 fois plus grand (Ou, le point est supprimé^^)
Genre pour "3.412" à l'afficheur, ma cellule indique "3 412", ce qui n'avance pas non plus tellement l'affaire finalement^^
Merci de votre réponse même si le post est considéré comme résolu :D
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 21 juin 2011 à 14:35
Non.
Le point n'est pas un séparateur de milliers en numérique.
On peut toujours formater la cellule en texte et jouer avec replace, mais on va tout droit alors vers une usine à gaz si l'on doit ensuite utiliser la valeur de la cellule !
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Ma cellule renvoie une valeur de (par exemple) 3 345 au lieu de 3,345 comme indiqué dans ma TextBox.
Cela va sans dire que Excel considère cela comme 3345 et "foire" tout mes calculs.
A ce moment la c'est pas possible de créer quelque chose me divisant chaques cellules d'une plage par 1000 afin de leurs rendre leurs valeurs d'origine? :D
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 21 juin 2011 à 16:58
Je ne sais que te dire, sinon que ça marche chez moi !
Cela doit probablement tenir au formatage de tes cellules.
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est