Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de chaînes

3 réponses
Avatar
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
_______________________
.
.

3 réponses

Avatar
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" <le a écrit dans le message de news:

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
_______________________
.
.




Avatar
LE TROLL
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" <le a écrit dans le message de news:

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
_______________________
.
.








Avatar
Jacquouille14
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" <le a écrit dans le message de news:

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