Comment former un décimal à partir de deux entiers?

papenjoin Messages postés 17 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 4 juin 2007 - 7 mai 2007 à 10:51
papenjoin Messages postés 17 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 4 juin 2007 - 9 mai 2007 à 11:43
Bonjour,

   Je cherche à savoir comment, à partir de deux entiers de tailles variables situés dans deux cellules excel, je peux obtenir un décimal dont la partie entière correspond au premier entier et dont la partie décimal au second.

ex : j'ai 94 et 98953 => je veux 94,98953

Pour l'instant le code que j'ai et qui marche pas est celui-ci :

   Cells(1,1).Value = Cells(1,2).Value & "," & Cells(1,3).Value

Merci pour vos réponses

13 réponses

Big200148 Messages postés 149 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 23 juillet 2009
7 mai 2007 à 11:05
il aut que tu transforme les valeur qui sont dans les cellules en String
0
papenjoin Messages postés 17 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 4 juin 2007
7 mai 2007 à 11:20
Oui c'est une idée à laquelle j'avais pensé mais je n'obtiens le résultat attendu non plus.

Peut-être que ça vient de mon code : 

   Cells(1,1).Value = CStr(Cells(1,2).Value) + "," + CStr(Cells(1,3).Value)
0
Big200148 Messages postés 149 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 23 juillet 2009
7 mai 2007 à 11:23
et tu obtien quoi avec ton code?
0
papenjoin Messages postés 17 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 4 juin 2007
7 mai 2007 à 11:27
Avec 94 et 6 146 200 j'obtiens :

<colgroup><col style=\"WIDTH: 106pt; mso-width-source: userset; mso-width-alt: 4512\" width=\"141\" /></colgroup>----
946 146 200

En détaillant le calcul j'ai tout d'abord 94 puis 94, et finalement 946 146 200 !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Big200148 Messages postés 149 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 23 juillet 2009
7 mai 2007 à 11:30
fait le avec une variable.
exemple:

Dim MaVal as String
MaVal= CStr(Cells(1,2).Value) + "," + CStr(Cells(1,3).Value)
 Cells(1,1).Value=CInt(MaVal)
0
papenjoin Messages postés 17 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 4 juin 2007
7 mai 2007 à 11:37
Avec CInt j'ai que la partie entière mais avec CDec ça a l'air de marcher :)

Merci
0
Big200148 Messages postés 149 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 23 juillet 2009
7 mai 2007 à 11:41
oui dsl j'avais oublié le fait que tu voulais un decimal
0
papenjoin Messages postés 17 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 4 juin 2007
7 mai 2007 à 11:45
Lol ya pas de soucis et merci pour le coup de main ;)
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
7 mai 2007 à 12:27
Tu pourrais utiliser une formule directement dans la cellule de ta feuille
=CNUM(A1 & "," & B1)

MPi
0
papenjoin Messages postés 17 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 4 juin 2007
7 mai 2007 à 12:46
En réalité mon code est un peu plus compliqué que ça et les cellules en question appartiennent à un autre classeur. En fait, en fonction des x fichier(s) que j'ai j'ouvre x classeur(s) un par un, effectue un traitement et les referme donc je pense pas que ça puisse marcher. Mais tu pouvais pas savoir :p en tout cas merci pour l'info.
0
42wawa42 Messages postés 143 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 6 septembre 2011
8 mai 2007 à 21:33
Hello papenjoin

Une autre approche du probléme pour toi.

Option Explicit
Private Sub Form_Load()
'j'ai 94 et 98953 => je veux 94,98953
Dim strDeux As String
Dim lonDeux As Long
lonDeux = 98953
strDeux = CStr(lonDeux)
Text1.Text = 94 + (lonDeux / (10 ^ Len(strDeux)))


End Sub

A Plus sur VBFrance
42wawa42
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
8 mai 2007 à 23:33
Le même principe de concaténation peut fonctionner sous VB.
Il s'agit juste de le transformer en chiffre.
Il faut comprendre que la concaténation retourne une String par défaut...

    Dim Num1 As String, Num2 As Long
    Dim Nombre As Double
   
    Num1 = "94"
    Num2 = 98953
    Nombre = CDbl(Num1 & "," & Num2)
   
    If IsNumeric(Nombre) Then MsgBox Nombre  'pas d'erreur, c'est un chiffre

MPi
0
papenjoin Messages postés 17 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 4 juin 2007
9 mai 2007 à 11:43
Ok merci à vous deux je testerai également vos méthodes ;)
0
Rejoignez-nous