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
------------------------------------------------------------------------------------
"Jean-marc" a écrit dans le message de groupe de discussion : 48005ced$0$2948$
On peut aussi faire un Val préalable, car le retour de Val() sera toujours compatible avec Clng().
Dans mon utilisation de CLng, j'ai contourné une erreur qui se produit pour les chaînes vides. J'ajoute systématiquement un "0" avant la chaîne à convertir.
Hello,
Ca ne marche pas si on a nombre négatif: Si la chaine vaut "-1", alors ? Clng("0-1") ==> Erreur 13
Idem si il y a del'alpha: ? Clng("0AA") ==> Erreur 13
Pas très sur, à mon avis, sauf si on a la garantie que la textbox contient uniquement des chiffres.
"Jean-marc" <NO_SPAM_jean_marc_n2@yahoo.fr.invalid> a écrit dans le
message de groupe de discussion :
48005ced$0$2948$ba620e4c@news.skynet.be...
On peut aussi faire un Val préalable, car le retour de Val()
sera toujours compatible avec Clng().
Dans mon utilisation de CLng, j'ai contourné une erreur qui se
produit pour les chaînes vides. J'ajoute systématiquement un "0"
avant la chaîne à convertir.
Hello,
Ca ne marche pas si on a nombre négatif:
Si la chaine vaut "-1", alors
? Clng("0-1") ==> Erreur 13
Idem si il y a del'alpha:
? Clng("0AA") ==> Erreur 13
Pas très sur, à mon avis, sauf si on a la garantie que la textbox
contient uniquement des chiffres.
"Jean-marc" a écrit dans le message de groupe de discussion : 48005ced$0$2948$
On peut aussi faire un Val préalable, car le retour de Val() sera toujours compatible avec Clng().
Dans mon utilisation de CLng, j'ai contourné une erreur qui se produit pour les chaînes vides. J'ajoute systématiquement un "0" avant la chaîne à convertir.
Hello,
Ca ne marche pas si on a nombre négatif: Si la chaine vaut "-1", alors ? Clng("0-1") ==> Erreur 13
Idem si il y a del'alpha: ? Clng("0AA") ==> Erreur 13
Pas très sur, à mon avis, sauf si on a la garantie que la textbox contient uniquement des chiffres.
"Jean-marc" a écrit dans le message de groupe de discussion : 48007405$0$2946$
aski wrote:
Dans mon utilisation de CLng, j'ai contourné une erreur qui se produit pour les chaînes vides. J'ajoute systématiquement un "0" avant la chaîne à convertir.
Ca ne marche pas si on a nombre négatif: Si la chaine vaut "-1", alors ? Clng("0-1") ==> Erreur 13
Idem si il y a del'alpha: ? Clng("0AA") ==> Erreur 13
Pas très sur, à mon avis, sauf si on a la garantie que la textbox contient uniquement des chiffres.
Tu as raison, je n'ai appliqué cette méthode qu'à des chaînes vides. -- Cordialement Aski
Hello,
"Jean-marc" <NO_SPAM_jean_marc_n2@yahoo.fr.invalid> a écrit dans le message
de groupe de discussion : 48007405$0$2946$ba620e4c@news.skynet.be...
aski wrote:
Dans mon utilisation de CLng, j'ai contourné une erreur qui se
produit pour les chaînes vides. J'ajoute systématiquement un "0"
avant la chaîne à convertir.
Ca ne marche pas si on a nombre négatif:
Si la chaine vaut "-1", alors
? Clng("0-1") ==> Erreur 13
Idem si il y a del'alpha:
? Clng("0AA") ==> Erreur 13
Pas très sur, à mon avis, sauf si on a la garantie que la textbox
contient uniquement des chiffres.
Tu as raison, je n'ai appliqué cette méthode qu'à des chaînes vides.
--
Cordialement
Aski
"Jean-marc" a écrit dans le message de groupe de discussion : 48007405$0$2946$
aski wrote:
Dans mon utilisation de CLng, j'ai contourné une erreur qui se produit pour les chaînes vides. J'ajoute systématiquement un "0" avant la chaîne à convertir.
Ca ne marche pas si on a nombre négatif: Si la chaine vaut "-1", alors ? Clng("0-1") ==> Erreur 13
Idem si il y a del'alpha: ? Clng("0AA") ==> Erreur 13
Pas très sur, à mon avis, sauf si on a la garantie que la textbox contient uniquement des chiffres.
Tu as raison, je n'ai appliqué cette méthode qu'à des chaînes vides. -- Cordialement Aski
LE TROLL
Mais non ce n'est pas un nombre, mais je "croyais", que justement Clng, ça sert à convertir un numérique ou alphanumérique en long ???
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Patrice Henrio" a écrit dans le message de news:
| LE TROLL a écrit : | > Eh eh, attends : Clng convertit une chaîne en | > numérique, et là tu testes : si numérique | > convertit la chaîne. | > Ben... s'il est numléiruque, y a pas besoin de le | > convertir... enfin, sauf à le changer de taille d | > evariable ??? Même avec "Val" il plante ! | > | Et quel est le contenu de text(1) ? | Je viens de tester CLng, le réponse que tu obtiens vient du fait que la | chaîne à convertir n'est pas un nombre. | | Utilise debug.print Text(1) avant ta conversion pour voir ce que | contient Text1 | | Attention certains caractères ne renvoient pas d'erreur | ainsi | Clng("azarer") erreur 13 | Clng("12aze") erreur 13 | Clng("12" & vbcrlf) renvoie 12 | | Le séparateur de décimal utilisé avec les fonctions de conversion est le | séparateur des paramètres nationaux, soit la virgule pour nous. Avec un | point dans le nombre il y a erreur 13. | | ... etc |
Mais non ce n'est pas un nombre, mais je
"croyais", que justement Clng, ça sert à convertir
un numérique ou alphanumérique en long ???
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Patrice Henrio" <patrice.henrio@laposte.net> a
écrit dans le message de news:
OdamQmGnIHA.5260@TK2MSFTNGP03.phx.gbl...
| LE TROLL a écrit :
| > Eh eh, attends : Clng convertit une chaîne en
| > numérique, et là tu testes : si numérique | > convertit la chaîne.
| > Ben... s'il est numléiruque, y a pas besoin de
le
| > convertir... enfin, sauf à le changer de
taille d
| > evariable ??? Même avec "Val" il plante !
| >
| Et quel est le contenu de text(1) ?
| Je viens de tester CLng, le réponse que tu
obtiens vient du fait que la
| chaîne à convertir n'est pas un nombre.
|
| Utilise debug.print Text(1) avant ta conversion
pour voir ce que
| contient Text1
|
| Attention certains caractères ne renvoient pas
d'erreur
| ainsi
| Clng("azarer") erreur 13
| Clng("12aze") erreur 13
| Clng("12" & vbcrlf) renvoie 12
|
| Le séparateur de décimal utilisé avec les
fonctions de conversion est le
| séparateur des paramètres nationaux, soit la
virgule pour nous. Avec un
| point dans le nombre il y a erreur 13.
|
| ... etc
|
Mais non ce n'est pas un nombre, mais je "croyais", que justement Clng, ça sert à convertir un numérique ou alphanumérique en long ???
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Patrice Henrio" a écrit dans le message de news:
| LE TROLL a écrit : | > Eh eh, attends : Clng convertit une chaîne en | > numérique, et là tu testes : si numérique | > convertit la chaîne. | > Ben... s'il est numléiruque, y a pas besoin de le | > convertir... enfin, sauf à le changer de taille d | > evariable ??? Même avec "Val" il plante ! | > | Et quel est le contenu de text(1) ? | Je viens de tester CLng, le réponse que tu obtiens vient du fait que la | chaîne à convertir n'est pas un nombre. | | Utilise debug.print Text(1) avant ta conversion pour voir ce que | contient Text1 | | Attention certains caractères ne renvoient pas d'erreur | ainsi | Clng("azarer") erreur 13 | Clng("12aze") erreur 13 | Clng("12" & vbcrlf) renvoie 12 | | Le séparateur de décimal utilisé avec les fonctions de conversion est le | séparateur des paramètres nationaux, soit la virgule pour nous. Avec un | point dans le nombre il y a erreur 13. | | ... etc |
LE TROLL
Oui, Val, mais je voulais un long, j'utilise donc Clng, seulement, peut être que je me trompe, et que ça ne convertit pas de l'alphanumérique ?
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Jean-marc" a écrit dans le message de news: 48005ced$0$2948$ | Jacques93 wrote: | | > 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 | | Hello, | | On peut aussi faire un Val préalable, car le retour de Val() | sera toujours compatible avec Clng(). | | On pourrait faire ça: | | '----------------------------------------------------- | Option Explicit | | ' Nombre de TextBoxs, de 1 à NB_TEXT_BOX | Private Const NB_TEXT_BOX As Long = 30 | | Dim h(NB_TEXT_BOX) As Long | | Private Sub Command1_Click() | | Dim i As Long | | ' Affectation | For i = 1 To NB_TEXT_BOX | h(i) = CLng(Val(Text1(i).Text)) | Next i | | ' Vérification | For i = 1 To NB_TEXT_BOX | Debug.Print "h(" & Trim$(Str(i)) & ")=" & h(i) | Next i | End Sub | | '----------------------------------------------------- | | Dans un vrai programme, on rajouterait avant l'appel | du code de Command1 une fonction de vérification et | validation des TextBox, en utilisant une des techniques | présentées dans la FAQ: | | http://faq.vb.free.fr/index.php?question1 | | ou mieux: | http://faq.vb.free.fr/index.php?question3 | | Bonne journée :-) | | -- | Jean-marc Noury (jean_marc_n2) | Microsoft MVP - Visual Basic | FAQ VB: http://faq.vb.free.fr/ | mailto: remove '_no_spam_' ;
| | | |
Oui, Val, mais je voulais un long, j'utilise donc
Clng, seulement, peut être que je me trompe, et
que ça ne convertit pas de l'alphanumérique ?
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jean-marc"
<NO_SPAM_jean_marc_n2@yahoo.fr.invalid> a écrit
dans le message de news:
48005ced$0$2948$ba620e4c@news.skynet.be...
| Jacques93 wrote:
|
| > 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
|
| Hello,
|
| On peut aussi faire un Val préalable, car le
retour de Val()
| sera toujours compatible avec Clng().
|
| On pourrait faire ça:
|
|
'-----------------------------------------------------
| Option Explicit
|
| ' Nombre de TextBoxs, de 1 à NB_TEXT_BOX
| Private Const NB_TEXT_BOX As Long = 30
|
| Dim h(NB_TEXT_BOX) As Long
|
| Private Sub Command1_Click()
|
| Dim i As Long
|
| ' Affectation
| For i = 1 To NB_TEXT_BOX
| h(i) = CLng(Val(Text1(i).Text))
| Next i
|
| ' Vérification
| For i = 1 To NB_TEXT_BOX
| Debug.Print "h(" & Trim$(Str(i)) & ")=" &
h(i)
| Next i
| End Sub
|
|
'-----------------------------------------------------
|
| Dans un vrai programme, on rajouterait avant
l'appel
| du code de Command1 une fonction de vérification
et
| validation des TextBox, en utilisant une des
techniques
| présentées dans la FAQ:
|
| http://faq.vb.free.fr/index.php?question1
|
| ou mieux:
| http://faq.vb.free.fr/index.php?question3
|
| Bonne journée :-)
|
| --
| Jean-marc Noury (jean_marc_n2)
| Microsoft MVP - Visual Basic
| FAQ VB: http://faq.vb.free.fr/
| mailto: remove '_no_spam_' ;
_no_spam_jean_marc_n2@yahoo.fr
|
|
|
|
Oui, Val, mais je voulais un long, j'utilise donc Clng, seulement, peut être que je me trompe, et que ça ne convertit pas de l'alphanumérique ?
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Jean-marc" a écrit dans le message de news: 48005ced$0$2948$ | Jacques93 wrote: | | > 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 | | Hello, | | On peut aussi faire un Val préalable, car le retour de Val() | sera toujours compatible avec Clng(). | | On pourrait faire ça: | | '----------------------------------------------------- | Option Explicit | | ' Nombre de TextBoxs, de 1 à NB_TEXT_BOX | Private Const NB_TEXT_BOX As Long = 30 | | Dim h(NB_TEXT_BOX) As Long | | Private Sub Command1_Click() | | Dim i As Long | | ' Affectation | For i = 1 To NB_TEXT_BOX | h(i) = CLng(Val(Text1(i).Text)) | Next i | | ' Vérification | For i = 1 To NB_TEXT_BOX | Debug.Print "h(" & Trim$(Str(i)) & ")=" & h(i) | Next i | End Sub | | '----------------------------------------------------- | | Dans un vrai programme, on rajouterait avant l'appel | du code de Command1 une fonction de vérification et | validation des TextBox, en utilisant une des techniques | présentées dans la FAQ: | | http://faq.vb.free.fr/index.php?question1 | | ou mieux: | http://faq.vb.free.fr/index.php?question3 | | Bonne journée :-) | | -- | Jean-marc Noury (jean_marc_n2) | Microsoft MVP - Visual Basic | FAQ VB: http://faq.vb.free.fr/ | mailto: remove '_no_spam_' ;
| | | |
LE TROLL
Ah oui, le zéro je le piège avant, non, je crois qu'il n'aime que je lui envoie une chaîne...
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "aski" a écrit dans le message de news: | Hello, | | "Jean-marc" a écrit dans le message | de groupe de discussion : 48005ced$0$2948$ | | > On peut aussi faire un Val préalable, car le retour de Val() | > sera toujours compatible avec Clng(). | > | Dans mon utilisation de CLng, j'ai contourné une erreur qui se produit pour | les chaînes vides. J'ajoute systématiquement un "0" avant la chaîne à | convertir. | -- | Cordialement | | Aski | MVP Windows Desktop Experience | |
Ah oui, le zéro je le piège avant, non, je crois
qu'il n'aime que je lui envoie une chaîne...
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"aski" <aski@asc.asc> a écrit dans le message de
news: uZS4YbHnIHA.1680@TK2MSFTNGP06.phx.gbl...
| Hello,
|
| "Jean-marc"
<NO_SPAM_jean_marc_n2@yahoo.fr.invalid> a écrit
dans le message
| de groupe de discussion :
48005ced$0$2948$ba620e4c@news.skynet.be...
|
| > On peut aussi faire un Val préalable, car le
retour de Val()
| > sera toujours compatible avec Clng().
| >
| Dans mon utilisation de CLng, j'ai contourné une
erreur qui se produit pour
| les chaînes vides. J'ajoute systématiquement un
"0" avant la chaîne à
| convertir.
| --
| Cordialement
|
| Aski
| MVP Windows Desktop Experience
|
|
Ah oui, le zéro je le piège avant, non, je crois qu'il n'aime que je lui envoie une chaîne...
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "aski" a écrit dans le message de news: | Hello, | | "Jean-marc" a écrit dans le message | de groupe de discussion : 48005ced$0$2948$ | | > On peut aussi faire un Val préalable, car le retour de Val() | > sera toujours compatible avec Clng(). | > | Dans mon utilisation de CLng, j'ai contourné une erreur qui se produit pour | les chaînes vides. J'ajoute systématiquement un "0" avant la chaîne à | convertir. | -- | Cordialement | | Aski | MVP Windows Desktop Experience | |
LE TROLL
Ben mon txtbx contient seulement du chiffre et nombre 1à 99 en entiers...
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Jean-marc" a écrit dans le message de news: 48007405$0$2946$ | aski wrote: | > Hello, | > | > "Jean-marc" a écrit dans le | > message de groupe de discussion : | > 48005ced$0$2948$ | >> On peut aussi faire un Val préalable, car le retour de Val() | >> sera toujours compatible avec Clng(). | >> | > Dans mon utilisation de CLng, j'ai contourné une erreur qui se | > produit pour les chaînes vides. J'ajoute systématiquement un "0" | > avant la chaîne à convertir. | | Hello, | | Ca ne marche pas si on a nombre négatif: | Si la chaine vaut "-1", alors | ? Clng("0-1") ==> Erreur 13 | | Idem si il y a del'alpha: | ? Clng("0AA") ==> Erreur 13 | | Pas très sur, à mon avis, sauf si on a la garantie que la textbox | contient uniquement des chiffres. | | -- | Jean-marc Noury (jean_marc_n2) | Microsoft MVP - Visual Basic | FAQ VB: http://faq.vb.free.fr/ | mailto: remove '_no_spam_' ;
| | | |
Ben mon txtbx contient seulement du chiffre et
nombre 1à 99 en entiers...
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jean-marc"
<NO_SPAM_jean_marc_n2@yahoo.fr.invalid> a écrit
dans le message de news:
48007405$0$2946$ba620e4c@news.skynet.be...
| aski wrote:
| > Hello,
| >
| > "Jean-marc"
<NO_SPAM_jean_marc_n2@yahoo.fr.invalid> a écrit
dans le
| > message de groupe de discussion :
| > 48005ced$0$2948$ba620e4c@news.skynet.be...
| >> On peut aussi faire un Val préalable, car le
retour de Val()
| >> sera toujours compatible avec Clng().
| >>
| > Dans mon utilisation de CLng, j'ai contourné
une erreur qui se
| > produit pour les chaînes vides. J'ajoute
systématiquement un "0"
| > avant la chaîne à convertir.
|
| Hello,
|
| Ca ne marche pas si on a nombre négatif:
| Si la chaine vaut "-1", alors
| ? Clng("0-1") ==> Erreur 13
|
| Idem si il y a del'alpha:
| ? Clng("0AA") ==> Erreur 13
|
| Pas très sur, à mon avis, sauf si on a la
garantie que la textbox
| contient uniquement des chiffres.
|
| --
| Jean-marc Noury (jean_marc_n2)
| Microsoft MVP - Visual Basic
| FAQ VB: http://faq.vb.free.fr/
| mailto: remove '_no_spam_' ;
_no_spam_jean_marc_n2@yahoo.fr
|
|
|
|
Ben mon txtbx contient seulement du chiffre et nombre 1à 99 en entiers...
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Jean-marc" a écrit dans le message de news: 48007405$0$2946$ | aski wrote: | > Hello, | > | > "Jean-marc" a écrit dans le | > message de groupe de discussion : | > 48005ced$0$2948$ | >> On peut aussi faire un Val préalable, car le retour de Val() | >> sera toujours compatible avec Clng(). | >> | > Dans mon utilisation de CLng, j'ai contourné une erreur qui se | > produit pour les chaînes vides. J'ajoute systématiquement un "0" | > avant la chaîne à convertir. | | Hello, | | Ca ne marche pas si on a nombre négatif: | Si la chaine vaut "-1", alors | ? Clng("0-1") ==> Erreur 13 | | Idem si il y a del'alpha: | ? Clng("0AA") ==> Erreur 13 | | Pas très sur, à mon avis, sauf si on a la garantie que la textbox | contient uniquement des chiffres. | | -- | Jean-marc Noury (jean_marc_n2) | Microsoft MVP - Visual Basic | FAQ VB: http://faq.vb.free.fr/ | mailto: remove '_no_spam_' ;
| | | |
Jacques93
Bonjour Jean-marc, Patrice, LE TROLL, Aski ... Jean-marc a écrit :
Jacques93 wrote:
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
Hello,
On peut aussi faire un Val préalable, car le retour de Val() sera toujours compatible avec Clng().
On pourrait faire ça:
[...]
Certes, tout à fait d'accord. Mon idée était juste de proposer un code permettant éventuellement de cerner la cause de l'erreur.
Sinon une autre solution, c'est de créer son propre ActiveX basé sur le 'TextBox' standard, mais qui contrôle la saisie en fonction du type de données, et de leurs caractéristiques. Par exemple
Type : Numérique, Monétaire, Pourcentage, Date, Heure, ...
et en fonction du type, pour Numérique, par exemple :
C'est assez lourd à mettre en oeuvre pour gérer tous les cas de figure, mais une fois fait, on est largement gagnant sur les temps de développement, et la validité des données.
-- Cordialement,
Jacques.
Bonjour Jean-marc, Patrice, LE TROLL, Aski ...
Jean-marc a écrit :
Jacques93 wrote:
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
Hello,
On peut aussi faire un Val préalable, car le retour de Val()
sera toujours compatible avec Clng().
On pourrait faire ça:
[...]
Certes, tout à fait d'accord. Mon idée était juste de proposer un code
permettant éventuellement de cerner la cause de l'erreur.
Sinon une autre solution, c'est de créer son propre ActiveX basé sur le
'TextBox' standard, mais qui contrôle la saisie en fonction du type de
données, et de leurs caractéristiques. Par exemple
Type : Numérique, Monétaire, Pourcentage, Date, Heure, ...
et en fonction du type, pour Numérique, par exemple :
C'est assez lourd à mettre en oeuvre pour gérer tous les cas de figure,
mais une fois fait, on est largement gagnant sur les temps de
développement, et la validité des données.
Bonjour Jean-marc, Patrice, LE TROLL, Aski ... Jean-marc a écrit :
Jacques93 wrote:
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
Hello,
On peut aussi faire un Val préalable, car le retour de Val() sera toujours compatible avec Clng().
On pourrait faire ça:
[...]
Certes, tout à fait d'accord. Mon idée était juste de proposer un code permettant éventuellement de cerner la cause de l'erreur.
Sinon une autre solution, c'est de créer son propre ActiveX basé sur le 'TextBox' standard, mais qui contrôle la saisie en fonction du type de données, et de leurs caractéristiques. Par exemple
Type : Numérique, Monétaire, Pourcentage, Date, Heure, ...
et en fonction du type, pour Numérique, par exemple :
C'est assez lourd à mettre en oeuvre pour gérer tous les cas de figure, mais une fois fait, on est largement gagnant sur les temps de développement, et la validité des données.
-- Cordialement,
Jacques.
Patrice Henrio
Jacques93 a écrit :
Bonjour Jean-marc, Patrice, LE TROLL, Aski ... Jean-marc a écrit :
Jacques93 wrote:
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
Hello,
On peut aussi faire un Val préalable, car le retour de Val() sera toujours compatible avec Clng().
On pourrait faire ça:
[...]
Certes, tout à fait d'accord. Mon idée était juste de proposer un code permettant éventuellement de cerner la cause de l'erreur.
Sinon une autre solution, c'est de créer son propre ActiveX basé sur le 'TextBox' standard, mais qui contrôle la saisie en fonction du type de données, et de leurs caractéristiques. Par exemple
Type : Numérique, Monétaire, Pourcentage, Date, Heure, ...
et en fonction du type, pour Numérique, par exemple :
C'est assez lourd à mettre en oeuvre pour gérer tous les cas de figure, mais une fois fait, on est largement gagnant sur les temps de développement, et la validité des données.
Pour ma part Clng("999") renvoie bien 999 et pas une erreur. Par contre si le nombre est trop grand pour tenir dans un long il y a une erreur mais pas de ce type (dépassement de capacité)
as-tu vu ce que contenait text1 lors de ton erreur avec debug.print voir un msgBox temporaire ?
Peut-être une confusion entre 0 et O ?
Jacques93 a écrit :
Bonjour Jean-marc, Patrice, LE TROLL, Aski ...
Jean-marc a écrit :
Jacques93 wrote:
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
Hello,
On peut aussi faire un Val préalable, car le retour de Val()
sera toujours compatible avec Clng().
On pourrait faire ça:
[...]
Certes, tout à fait d'accord. Mon idée était juste de proposer un code
permettant éventuellement de cerner la cause de l'erreur.
Sinon une autre solution, c'est de créer son propre ActiveX basé sur le
'TextBox' standard, mais qui contrôle la saisie en fonction du type de
données, et de leurs caractéristiques. Par exemple
Type : Numérique, Monétaire, Pourcentage, Date, Heure, ...
et en fonction du type, pour Numérique, par exemple :
C'est assez lourd à mettre en oeuvre pour gérer tous les cas de figure,
mais une fois fait, on est largement gagnant sur les temps de
développement, et la validité des données.
Pour ma part Clng("999") renvoie bien 999 et pas une erreur. Par contre
si le nombre est trop grand pour tenir dans un long il y a une erreur
mais pas de ce type (dépassement de capacité)
as-tu vu ce que contenait text1 lors de ton erreur avec debug.print voir
un msgBox temporaire ?
Bonjour Jean-marc, Patrice, LE TROLL, Aski ... Jean-marc a écrit :
Jacques93 wrote:
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
Hello,
On peut aussi faire un Val préalable, car le retour de Val() sera toujours compatible avec Clng().
On pourrait faire ça:
[...]
Certes, tout à fait d'accord. Mon idée était juste de proposer un code permettant éventuellement de cerner la cause de l'erreur.
Sinon une autre solution, c'est de créer son propre ActiveX basé sur le 'TextBox' standard, mais qui contrôle la saisie en fonction du type de données, et de leurs caractéristiques. Par exemple
Type : Numérique, Monétaire, Pourcentage, Date, Heure, ...
et en fonction du type, pour Numérique, par exemple :
C'est assez lourd à mettre en oeuvre pour gérer tous les cas de figure, mais une fois fait, on est largement gagnant sur les temps de développement, et la validité des données.
Pour ma part Clng("999") renvoie bien 999 et pas une erreur. Par contre si le nombre est trop grand pour tenir dans un long il y a une erreur mais pas de ce type (dépassement de capacité)
as-tu vu ce que contenait text1 lors de ton erreur avec debug.print voir un msgBox temporaire ?
Peut-être une confusion entre 0 et O ?
Jacques93
Bonjour Patrice Henrio, Patrice Henrio a écrit :
Jacques93 a écrit :
Bonjour Jean-marc, Patrice, LE TROLL, Aski ... Jean-marc a écrit :
Jacques93 wrote:
[...]
Pour ma part Clng("999") renvoie bien 999 et pas une erreur.
Pour moi également :-)
Par contre si le nombre est trop grand pour tenir dans un long il y a une erreur mais pas de ce type (dépassement de capacité)
as-tu vu ce que contenait text1 lors de ton erreur avec debug.print voir un msgBox temporaire ?
Ben, non. Chez moi ça marche :-)
Peut-être une confusion entre 0 et O ?
LE TROLL lit il tous les messages ? ;-)
-- Cordialement,
Jacques.
Bonjour Patrice Henrio,
Patrice Henrio a écrit :
Jacques93 a écrit :
Bonjour Jean-marc, Patrice, LE TROLL, Aski ...
Jean-marc a écrit :
Jacques93 wrote:
[...]
Pour ma part Clng("999") renvoie bien 999 et pas une erreur.
Pour moi également :-)
Par contre si le nombre est trop grand pour tenir dans un long il y a une erreur
mais pas de ce type (dépassement de capacité)
as-tu vu ce que contenait text1 lors de ton erreur avec debug.print voir
un msgBox temporaire ?
Bonjour Jean-marc, Patrice, LE TROLL, Aski ... Jean-marc a écrit :
Jacques93 wrote:
[...]
Pour ma part Clng("999") renvoie bien 999 et pas une erreur.
Pour moi également :-)
Par contre si le nombre est trop grand pour tenir dans un long il y a une erreur mais pas de ce type (dépassement de capacité)
as-tu vu ce que contenait text1 lors de ton erreur avec debug.print voir un msgBox temporaire ?
Ben, non. Chez moi ça marche :-)
Peut-être une confusion entre 0 et O ?
LE TROLL lit il tous les messages ? ;-)
-- Cordialement,
Jacques.
LE TROLL
Oui, Jacques, je lis, je crois que j'ai trouvé, c'est que j'avais testé si 0 = impossible d'écrire, mais qu'au chargement, je Clng un Null !!! Désolé, merci à tous, mea culpa :o)
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Jacques93" a écrit dans le message de news:
| Bonjour Patrice Henrio, | Patrice Henrio a écrit : | > Jacques93 a écrit : | >> Bonjour Jean-marc, Patrice, LE TROLL, Aski ... | >> Jean-marc a écrit : | >>> Jacques93 wrote: | | [...] | > | > Pour ma part Clng("999") renvoie bien 999 et pas une erreur. | | Pour moi également :-) | | > Par contre si le nombre est trop grand pour tenir dans un long il y a une erreur | > mais pas de ce type (dépassement de capacité) | > | > as-tu vu ce que contenait text1 lors de ton erreur avec debug.print voir | > un msgBox temporaire ? | | Ben, non. Chez moi ça marche :-) | | > Peut-être une confusion entre 0 et O ? | > | | LE TROLL lit il tous les messages ? ;-) | | -- | Cordialement, | | Jacques.
Oui, Jacques, je lis, je crois que j'ai
trouvé, c'est que j'avais testé si 0 = impossible
d'écrire, mais qu'au chargement, je Clng un Null
!!!
Désolé, merci à tous, mea culpa :o)
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" <jacques@Nospam> a écrit dans le
message de news:
ejG4f3LnIHA.5208@TK2MSFTNGP04.phx.gbl...
| Bonjour Patrice Henrio,
| Patrice Henrio a écrit :
| > Jacques93 a écrit :
| >> Bonjour Jean-marc, Patrice, LE TROLL, Aski
...
| >> Jean-marc a écrit :
| >>> Jacques93 wrote:
|
| [...]
| >
| > Pour ma part Clng("999") renvoie bien 999 et
pas une erreur.
|
| Pour moi également :-)
|
| > Par contre si le nombre est trop grand pour
tenir dans un long il y a une erreur
| > mais pas de ce type (dépassement de capacité)
| >
| > as-tu vu ce que contenait text1 lors de ton
erreur avec debug.print voir
| > un msgBox temporaire ?
|
| Ben, non. Chez moi ça marche :-)
|
| > Peut-être une confusion entre 0 et O ?
| >
|
| LE TROLL lit il tous les messages ? ;-)
|
| --
| Cordialement,
|
| Jacques.
Oui, Jacques, je lis, je crois que j'ai trouvé, c'est que j'avais testé si 0 = impossible d'écrire, mais qu'au chargement, je Clng un Null !!! Désolé, merci à tous, mea culpa :o)
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Jacques93" a écrit dans le message de news:
| Bonjour Patrice Henrio, | Patrice Henrio a écrit : | > Jacques93 a écrit : | >> Bonjour Jean-marc, Patrice, LE TROLL, Aski ... | >> Jean-marc a écrit : | >>> Jacques93 wrote: | | [...] | > | > Pour ma part Clng("999") renvoie bien 999 et pas une erreur. | | Pour moi également :-) | | > Par contre si le nombre est trop grand pour tenir dans un long il y a une erreur | > mais pas de ce type (dépassement de capacité) | > | > as-tu vu ce que contenait text1 lors de ton erreur avec debug.print voir | > un msgBox temporaire ? | | Ben, non. Chez moi ça marche :-) | | > Peut-être une confusion entre 0 et O ? | > | | LE TROLL lit il tous les messages ? ;-) | | -- | Cordialement, | | Jacques.