Problème fonction replace [Résolu]

- - Dernière réponse :  Adram - 11 sept. 2019 à 09:04
Bonjours à tous,

j'ai un souci que je n'arrive pas résoudre lorsque j'utilise la fonction replace pour remplacer un la " , " par un " . " cela fonctionne mais lorsque je lance mon appli lorsque je rentre ma saisi (dans une textbox)et j'utilise le point mais saisi ce met automatique ment a gauche

exemple je veux écrire 15.1
si je tape cette valeur sans m’arrêter cela donnera 115.

donc après le point mon "1" s'écrit devant

en espérant être assez précis.

et en vous remerciant d'avance ! ^^
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
14548
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 septembre 2019
135
1
Merci
Pourquoi ne pas utiliser l'événement KeyPress (il me semble) pour intercepter et modifier le caractère tapé ?

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

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

Commenter la réponse de NHenry
0
Merci
merci de ta réponse Nhenry,

j'ai essayé mais je n'arrive pas comprendre l'erreur

je vois ce bout de code un peu partout

Private Sub VC_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 46 Then KeyAscii = 44
End Sub

(VC étant le nom de ma textbox)

et " If KeyAscii = 46 " m'indique l'erreur suivante dont la même sur le "44"

l'opérateur '=' n'est pas défini pour les types 'ReturnInterger' et 'Interger'

(oublier de préciser je suis novice).
Commenter la réponse de Adram
0
Merci
Edit

j'ai réussi a intégré le key press correctement normalement

l'erreur suivante maintenant est sur le mot 'keyAscii"

il faut que je la déclare apparemment.

mais je n'ai pas réussi

mon key press est la fin de mon code.

help^^
NHenry
Messages postés
14548
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 septembre 2019
135 -
Tu es en VB.NET pur ou en interaction avec une form VB6 ou VBA ?
Est-ce une conversion VB6 -> VB.NET par l'assistant ?
La déclaration de l'événement est vraiment suspecte.
Utilises la déclaration de l'événement générée par Visual Studio et évites les repompages de code sans savoir d'où ça vient et sans comprendre le fonctionnement du code.
je t'avoue que je ne sais pas du tout ..

j'ai créer un projet visual basic puis "Aplication windows form" sur visual studio 2015

et je "code" que dans mas "Form 1"
NHenry
Messages postés
14548
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 septembre 2019
135 -
Le prototype de l'événement devrait être du genre :
protected/private sub Control_Event(sender as object, e as ???EventArg)


Ton code en est loin, tu as fait comment pour l'obtenir ?
vb95
Messages postés
1925
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
11 septembre 2019
66 > NHenry
Messages postés
14548
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 septembre 2019
-
Bonjour NHenry
Beaucoup confondent les codes VB 6 et VB Net !
Même moi qui suis un ancien et qui connait les 2 langages cela m'arrive de me tromper !
Commenter la réponse de Adram
Messages postés
1925
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
11 septembre 2019
66
0
Merci
Bonjour
si tu as Visual Studio 2015 tu es en VB Net
Commenter la réponse de vb95
0
Merci
Oui donc je me suis pas tromper j'ai bien utilisé le langage vb net pour mon appli

au niveau du code j'en suis au début, et l'appli ne sera pas quelque chose de complexe, seulement des calcule de condition de coupe.

elle fonctionne quand je la test mes calcule ce font correctement, le seul souci que j'ai c'est que je veut utilisé le "." du pavé numérique et non la ","

en faisant des recherche j'ai trouvé 2 solution

1) la fonction replace

VC.Text = Replace(VC.Text, ".", ",")
qui marche mais lors de ma saisi au pavé numérique quand je tape le "." cela me renvoi a gauche de la saisi, et donc je doit cliqué pour remettre la saisi au bonne endroit.

.

2) j'ai vu des utilisation evenement ( si je dit pas de bétise) avec "keypress"

Private Sub VC_KeyPress(sender As Object, e As KeyPressEventArgs) Handles VC.KeyPress

If KeyAscii = 46 Then KeyAscii = 44

End Sub

que je n'arrive pas a utiliser.

et me dit que: "keyAscii n'est pas déclarer.il peut être inaccessible en raison de son niveau de protection."

si besoin de plus de précision n'hésité pas!

mais je suis toujours dans l'impasse...
NHenry
Messages postés
14548
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 septembre 2019
135 -
As-tu suivi un tutoriel ?
Car, ce message d'erreur t'indique juste que KeyAscii n'est pas déclaré.
Ce qui est normal, regarde dans le paramètre "e".
Commenter la réponse de Adram
Messages postés
13720
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 septembre 2019
301
0
Merci
Bonjour Adram

tu fais l'erreur de nombreux autodidactes (j'ai fait la même autrefois), tu penses qu'en bidouillant ça va finir par marcher.

Dans une certaine mesure, ça peut être vrai, mais on finit toujours par buter plus ou moins rudement sur un obstacle, par ce qu'on n'a pas appris et/ou compris les bases du développement.

Alors oui, aujourd'hui sur le net, on trouve souvent une solution (ce n'était pas le cas quand j'ai débuté). Mais le problème avec VB, c'est qu'il y en a pleins de version pas forcément compatibles entre elles, et le fait de manquer de bases n'aide pas à comprendre le pourquoi du comment.

Bien sûr, Henri, VB95 ou moi sommes capable de te donner le bout de code que tu cherches, seulement quand tu seras face à quelque chose de plus compliqué, que feras-tu?

Le meilleur conseil que je puisse te donner est de suivre de A à Z, un ou deux cours de VB.Net.

Ce cours http://plasserre.developpez.com/cours/vb-net/ est très bien pour débuter, même s'il prend la programmation objet pour un effet de mode alors que c'est l'essence des langages .Net. Celui d'openclassroom est moins accessible (et par un moment quelques exemples buguaient, j'espère que depuis le temps ils ont été corrigés) mais explique l'objet pour ce qu'il est.
Aucuns de ces 2 cours ne fera de toi un codeur hors pair, mais il te permettront de comprendre les réponses que l'on te donne sur un forum, ou d'avoir le recul pour te dire que ce que tu trouves sur le net ne colle pas avec la version dans laquelle tu codes.


Commenter la réponse de Whismeril
0
Merci
Bonjours merci pour vos réponse !
j'ai réussi a trouvé la solution
il fallait juste que je déclare dans un texte box un événement de "key press" et dans cette éventement le code permettant de changer le.par la ,

Private Sub VC_KeyPress(sender As Object, e As KeyPressEventArgs) Handles VC.KeyPress

If e.KeyChar = "." Then e.KeyChar = CType(",", Char)

End Sub

pour la suite je vais suivre les conseil de whismeril, car le reste sera un peu plus complexe et je ne serais pas comment expliqué les problème a venir.

en vous remerciant tous

cordialement,

Adram
Commenter la réponse de Adram