xavtry
Messages postés34Date d'inscriptionsamedi 23 septembre 2006StatutMembreDernière intervention17 février 2007
-
8 févr. 2007 à 14:52
cs_augustin02
Messages postés2Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention26 mars 2007
-
26 mars 2007 à 01:48
Bonjour à tous, voila quand je renvois la valeur de mon textbox vers une cellule excel, excel le prend comme du texte et ne veut pas s'en servir pour faire les calculs demandés.
Comment préciser a VBA que TextBox1.Value Est un nombre et pas du texte ???
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 8 févr. 2007 à 15:47
Salut,
Dans une TextBox, à ma connaissance, on ne peut mettre que tu texte mais rien n'empêche de convertir son contenu sous la forme. C'est là qu'intervient val qui permet de convertir un texte en un nombre.
Au préalable, il faut tester si le contenu de ta textbox peut être converti en nombre sinon ca entraîne une erreur lors de la conversion.
Voici le code :
If IsNumeric(TextBox1.Value) = True Then ' Vrai si le contenu de la TextBox1 est un nombre
Cells(x + t, 3).Value = val(TextBox1.Value) ' val permet de convertir du texte en nombre
Else
MsgBox "Veuillez saisir un nombre !!!" ' Affichage d'un message si le contenu de la TextBox1 n'est pas un nombre
End If
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 8 févr. 2007 à 17:29
Salut,
La méthode de casy est pas mal mais je prense que tu devrais prendre mon code car il faut controler si l'utilsateur a bien rentré un nombre dans ta textbox car s'il met dedans par exemple : 12z au moment de la conversion en nombre ca plante car 'z' il ne peut pas le convertir en nombre.
C'est pour cà que je testes si le contenu de la textbox est un nombre comme çà avec '12z' , IsNumeric sera False et il ne fera pas la conversion et evitera le plantage lors de la conversion
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_elendis
Messages postés14Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention14 février 2007 9 févr. 2007 à 14:34
Bonjour,
Est ce que qu'un code dans le meme genre serait capable de faire automatiquement la conversion de toutes mes cellules en valeur numérique ? Parce que pour l'instant je n'ai trouvé que le système de faire a la main Selection de la colonne>Donnée>Convertir>Nombre mais j'ai plus de 16000 colonnes. Ca fait un bon moment que je patoge pour trouver comment écrire ce code mais je débute totalement en VBA......
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 9 févr. 2007 à 18:30
Salut,
Est ce que tu peut être plus précis sur ce que tu veux faire ? Si je comprends bien toutes tes cellules sous excel contiennent des nombres sous la forme de texte et tu voudrais tous les convertir en nombre ?
xavtry
Messages postés34Date d'inscriptionsamedi 23 septembre 2006StatutMembreDernière intervention17 février 2007 10 févr. 2007 à 16:56
Merci fauve pour ton code, en effet le tien évite tout risque d'erreur, or dans mon cas le textbox n'est pas modifiable par l'utilisateur, il lui montre juste le résultat d'un calcul, donc je me sert de ton code sans vérifier le contenu.
Je te remercie pour ton code qui m'a appris la fonction isnumeric (et val() bien sur) qui m'a été très utile dans une autre partie de mon progr, meme chose pour toi casy merci pour Cint et Csng, je vois déja les parties de mo prog ou ca va me servir.
En tout cas ca fait plaisir d'apprendre de nvlles combines.
PS: les gars j'ai tjs mon soucis avec un combobox multicolonne qui n'affiche que la premiere colonne qd il se ferme, alors si vous avez qqchose a ce propos...
xavtry
Messages postés34Date d'inscriptionsamedi 23 septembre 2006StatutMembreDernière intervention17 février 2007 10 févr. 2007 à 19:20
Heu, en fait y a encore un p'tit soucis: je remplis mon textbox depuis une cellule excel, qd le nombre a une virgule (un point sur excel) la virgule dans le textbox n'est pas traitée par la fonction val. La fonction Csng , elle, me donne une valeur aprochee: ex 2.7 devient 2.70000004768371, Ok ca fait pas une grosse diff a la fin du calcul mais ca me dérange un peu.
Est ce que vous savez comment faire pour avoir un nombre "propre". Existe t-il un Numbox???
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 11 févr. 2007 à 20:32
Salut,
Dim valeur As String
TextBox1.Value = TextBox1.Value.replace(",",".") ' La propriété Replace permet de remplacer le caractère ',' par '.'
Cells(x + t, 3).Value = val(TextBox1.Value) ' val permet de convertir du texte en nombre
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 12 févr. 2007 à 13:18
Replace n'existe pas en VBA me semble-t-il. Il faut que tu te la code toi même
Voici le code :
Public Function Replace(ByVal sIn As String, ByVal sFind As _
String, ByVal sReplace As String, Optional nStart As _
Long = 1, Optional nCount As Long = -1,
_
Optional bCompare As VbCompareMethod = vbBinaryCompare) As
_
String
Dim nC As Long, nPos As Long
Dim nFindLen As Long, nReplaceLen As Long
nFindLen = Len(sFind)
nReplaceLen = Len(sReplace)
If (sFind <> "") And (sFind <> sReplace) Then
nPos = InStr(nStart, sIn, sFind, bCompare)
Do While nPos
nC = nC + 1
sIn = Left(sIn, nPos - 1) & sReplace &
_
Mid(sIn, nPos + nFindLen)
If nCount <> -1 And nC >= nCount Then Exit
Do
nPos = InStr(nPos + nReplaceLen, sIn, sFind,
_
bCompare)
Loop
End If
Replace = sIn
End Function
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
xavtry
Messages postés34Date d'inscriptionsamedi 23 septembre 2006StatutMembreDernière intervention17 février 2007 12 févr. 2007 à 13:56
Ca marche pas, tjrs la meme erreur.
Moi j'y connais pas grd chose, mais si je comprend bien tu crée la fonction replace avec replace(sIn,sFind,Sreplace)
sFind je suppose que c ","
sReplace c "."
et sIn c: "j'en sais rien"
J'aurai jamais cru que c'était si complique d'utilise un textbox pour des nombres, c'est qd meme fou ca qu'ils ai rien prevu de plus simple.
cs_augustin02
Messages postés2Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention26 mars 2007 26 mars 2007 à 01:48
Merci à fauve pour ce code qui va me simplifier bien des choses...
Je ne trouve pas la propriété value pour TextBox1
Pour xavtry, le code modifié ci-après devrait fonctionner. :