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

Problème conversion str en cnlg ???

23 réponses
Avatar
LE TROLL
Bonjour,

Je fais:

Dim h(30) As long
Sub Command1_Click() 'moyenne
For i = 1 To 30
h(i) = CLng(Text1(i))
Next i
End Sub

A h(i) = CLng(Text1(i))
A (i = 1)
J'ai "13 : TYPE INCOMPATIBLE "

Où est l'erreur, svp ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------

3 réponses

1 2 3
Avatar
driss hanib
Bonjour je changerai deux choses
1. j'utiliserai Text(i).text

2. je vérifierai d'abord que que le champ n'est pas vide et qu'il n'y a bien
que des caractères numériques. Pour cette deuxième parti j'utiliserai
d'abord la focntion val()

par exemple

h(30) As long
Sub Command1_Click() 'moyenne
For i = 1 To 30
if text1(i).text <> vbnullstring then
h(i) = CLng(Val(Text1(i).Text))
Next i
End Sub


Driss


"LE TROLL" <le a écrit dans le message de news:
%
Bonjour,

Je fais:

h(30) As long
Sub Command1_Click() 'moyenne
For i = 1 To 30
h(i) = CLng(Text1(i))
Next i
End Sub

A h(i) = CLng(Text1(i))
A (i = 1)
J'ai "13 : TYPE INCOMPATIBLE "

Où est l'erreur, svp ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------




Avatar
LE TROLL
Eh ouais, je n'ai pas percuté le Nul... C'est
souvent sur les détails que ça coince, jamais sur
les gros morceaux évidents :o)

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"driss hanib" a écrit
dans le message de news:

| Bonjour je changerai deux choses
| 1. j'utiliserai Text(i).text
|
| 2. je vérifierai d'abord que que le champ n'est
pas vide et qu'il n'y a bien
| que des caractères numériques. Pour cette
deuxième parti j'utiliserai
| d'abord la focntion val()
|
| par exemple
|
| h(30) As long
| Sub Command1_Click() 'moyenne
| For i = 1 To 30
| if text1(i).text <> vbnullstring then
| h(i) = CLng(Val(Text1(i).Text))
| Next i
| End Sub
|
|
| Driss
|
|
| "LE TROLL" <le a écrit dans le
message de news:
| %
| > Bonjour,
| >
| > Je fais:
| >
| > h(30) As long
| > Sub Command1_Click() 'moyenne
| > For i = 1 To 30
| > h(i) = CLng(Text1(i))
| > Next i
| > End Sub
| >
| > A h(i) = CLng(Text1(i))
| > A (i = 1)
| > J'ai "13 : TYPE INCOMPATIBLE "
| >
| > Où est l'erreur, svp ???
| >
| > --
| > Merci beaucoup, au revoir et à bientôt :o)
| > ------
| > Romans, logiciels, email, site personnel
| > http://irolog.free.fr/joe.htm
|
> ------------------------------------------------------------------------------------
| >
| >
|
|
Avatar
Patrick JONIEC
J'ai remplacé IsNumeric par ma fonction avec des options en plus (à
supprimer si pas nécessaires) :
- remplacement des . par des ,
- mise en forme du texte
- affichage d'un message d'erreur

Function Number_Faux(texte As TextBox, MiseEnForme As String, Optional
AfficheMessage As Boolean = True) As Boolean
' Retourne True si le nombre n'est pas valide, et met en forme le nombre
Dim Bidon As Single

' Supprimer les espaces en début et en fin de saisie
texte.Text = Trim(texte.Text)
' Si pas de texte saisi, alors obliger "0"
If texte.Text = "" Then _
texte.Text = "0"
texte.Text = Replace(texte.Text, ".", ",")

Number_Faux = False
On Error Resume Next

Bidon = CSng(texte.Text)
If Err.Number <> 0 Then
If AfficheMessage Then _
MsgBox "Le nombre saisie n'est pas valide" & vbCrLf & "Champ """
& texte.name & """", vbOKOnly, "Erreur de saisie"
Number_Faux = True
Else
' Mettre en forme
texte.Text = Format(CSng(texte.Text), MiseEnForme)
Number_Faux = False
End If
On Error GoTo 0

End Function

Public Function Replace(strTexte As Variant, strRech As String, strRemp As
String)
Dim i As Long, TexteDeb As String, TexteRes As String

If IsNull(strTexte) Then Exit Function
TexteDeb = strTexte
TexteRes = ""
While TexteDeb <> ""
i = InStr(1, TexteDeb, strRech)
If i = 0 Then
TexteRes = TexteRes + TexteDeb
TexteDeb = ""
Else
TexteRes = TexteRes + Left(TexteDeb, i - 1) + strRemp
TexteDeb = Right(TexteDeb, Len(TexteDeb) - i - Len(strRech) + 1)
End If
Wend
Replace = TexteRes

End Function


"LE TROLL" <le a écrit dans le message de
news:uUjDSl%
Un textBox n'est-il pas par définition
toujours une chaîne alphanumérique ???

isNumeric, j'ai arrêté de l'utiliser, il y a
(de mémoire), plein de cas ou il ne fonctionne
pas, il ne répond pas, ou mal...


Je vais essayer ce que tu dis...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le
message de news:
eygsUO%
| Bonjour LE TROLL,
| LE TROLL a écrit :
| > Bonjour,
| >
| > Je fais:
| >
| > Dim h(30) As long
| > Sub Command1_Click() 'moyenne
| > For i = 1 To 30
| > h(i) = CLng(Text1(i))
| > Next i
| > End Sub
| >
| > A h(i) = CLng(Text1(i))
| > A (i = 1)
| > J'ai "13 : TYPE INCOMPATIBLE "
| >
| > Où est l'erreur, svp ???
| >
|
| L'erreur 13 me ferait penser à un TextBox non
numérique. Tu peux essayer
| ceci, qui par ailleurs assure, en partie, la
validité de données :
|
| Private Sub Command1_Click()
| Dim i As Integer
| Dim h(30) As Long
|
| For i = 1 To 1
| If IsNumeric(Text1(i)) Then
| h(i) = CLng(Text1(i))
| Else
| MsgBox "Textbox n° : " & i & vbCrLf & "non
numérique"
| End If
| Next i
| End Sub
|
|
| --
| Cordialement,
|
| Jacques.




1 2 3