Problème fonction replace

Résolu
Adram - 6 sept. 2019 à 19:10
 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 ! ^^

7 réponses

NHenry Messages postés 15144 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 24 juillet 2024 159
6 sept. 2019 à 20:18
Pourquoi ne pas utiliser l'événement KeyPress (il me semble) pour intercepter et modifier le caractère tapé ?
1
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).
0
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^^
0
NHenry Messages postés 15144 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 24 juillet 2024 159
7 sept. 2019 à 12:21
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.
0
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"
0
NHenry Messages postés 15144 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 24 juillet 2024 159
8 sept. 2019 à 00:15
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 ?
0
vb95 Messages postés 3489 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 25 juillet 2024 169 > NHenry Messages postés 15144 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 24 juillet 2024
8 sept. 2019 à 01:07
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 !
0
vb95 Messages postés 3489 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 25 juillet 2024 169
7 sept. 2019 à 23:25
Bonjour
si tu as Visual Studio 2015 tu es en VB Net
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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...
0
NHenry Messages postés 15144 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 24 juillet 2024 159
8 sept. 2019 à 11:36
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".
0
Whismeril Messages postés 19102 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 25 juillet 2024 660
8 sept. 2019 à 11:56
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.


0
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
0
Rejoignez-nous