Problème de chaînes

Le
LE TROLL
Bonjour,

Y m'arrive un truc que je ne comprends pas avec les chaînes, soit :


Dim p As Long
Dim a As String
p = InStr(1, TextBox1.Text, "-", 1)
If p > 0 and p <> 1 Then
p = Replace(TextBox1.Text, "-", vbNull)
MsgBox(a)

vbNull devient "1" dans la variable string "a", alors que ce devrait
être vide ???

Certes, je pourrais avec deux "mid" isoler de part et d'autre du signe
localisé "-", puis recoller dans une variable, mais bon !

Une idée ?

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Le #20721501
Dans ton exemple, a n'est pas initialisé...

Pendant qu'on y est, possible de remplacer :
If p > 0 and p <> 1 Then


par
If p > 1 Then

++
Stéphane

"LE TROLL"
Bonjour,

Y m'arrive un truc que je ne comprends pas avec les chaînes, soit :


Dim p As Long
Dim a As String
p = InStr(1, TextBox1.Text, "-", 1)
If p > 0 and p <> 1 Then
p = Replace(TextBox1.Text, "-", vbNull)
MsgBox(a)

vbNull devient "1" dans la variable string "a", alors que ce devrait
être vide ???

Certes, je pourrais avec deux "mid" isoler de part et d'autre du signe
localisé "-", puis recoller dans une variable, mais bon !

Une idée ?

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.




LE TROLL
Le #20724501
Merci Stéphane,

Oh oui, je suis fatigué, je récupère dans p (long) la position je
présume, et j'affiche a (string), en effet, ça peut être difficile de donner
un résultat, évidemment...

En effet la boucle peut être améliorée ;o)

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


<Stéphane> a écrit dans le message de
news:
Dans ton exemple, a n'est pas initialisé...

Pendant qu'on y est, possible de remplacer :
If p > 0 and p <> 1 Then


par
If p > 1 Then

++
Stéphane

"LE TROLL"
Bonjour,

Y m'arrive un truc que je ne comprends pas avec les chaînes, soit :


Dim p As Long
Dim a As String
p = InStr(1, TextBox1.Text, "-", 1)
If p > 0 and p <> 1 Then
p = Replace(TextBox1.Text, "-", vbNull)
MsgBox(a)

vbNull devient "1" dans la variable string "a", alors que ce devrait
être vide ???

Certes, je pourrais avec deux "mid" isoler de part et d'autre du signe
localisé "-", puis recoller dans une variable, mais bon !

Une idée ?

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.








Jacquouille14
Le #20739701
LE TROLL a écrit :
Merci Stéphane,

Oh oui, je suis fatigué, je récupère dans p (long) la position je
présume, et j'affiche a (string), en effet, ça peut être difficile de
donner un résultat, évidemment...

En effet la boucle peut être améliorée ;o)

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


<Stéphane> a écrit dans le message de
news:
Dans ton exemple, a n'est pas initialisé...

Pendant qu'on y est, possible de remplacer :
If p > 0 and p <> 1 Then


par
If p > 1 Then

++
Stéphane

"LE TROLL"
Bonjour,

Y m'arrive un truc que je ne comprends pas avec les chaînes, soit :


Dim p As Long
Dim a As String
p = InStr(1, TextBox1.Text, "-", 1)
If p > 0 and p <> 1 Then
p = Replace(TextBox1.Text, "-", vbNull)
MsgBox(a)

vbNull devient "1" dans la variable string "a", alors que ce
devrait être vide ???

Certes, je pourrais avec deux "mid" isoler de part et d'autre du
signe localisé "-", puis recoller dans une variable, mais bon !

Une idée ?

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.











Bonsoir,
Au lieu de P as long tu peux faire P as integer; ça prend moins
de place et ça peut aller il me semble jusqu'à un peu plus de
37 000.
Pas sur que vbnull permette de faire disparaître un caractère dans
la chaîne mais tu peux faire autrement en interceptant le caractère
frappé dans sub textbox1_KeyDown(...) handles TextBox1.Keydown
if e.keyvalue= 45 and instr(textbox1.text,"-")>0 'il y en a déja 1
e.suppressKeypress=-1 'la saisie au clavier est annulée
end if
J'utilise cette méthode pour empêcher de frapper 2 points dans un
nombre avec décimales et pour empêcher plus de 2 décimales
dans un montant en euros.
--

Jacques dit Jacquouille
Publicité
Poster une réponse
Anonyme