Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité de passage
    Profil pro Jean-Pascal Peltier
    Inscrit en
    octobre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Nom : Jean-Pascal Peltier

    Informations forums :
    Inscription : octobre 2010
    Messages : 7
    Points : 2
    Points
    2

    Par défaut Recomposer un nombre à partir de ses parties entières et décimales

    Bonjour,

    J'ai deux chaînes "123" et "45". Je souhaite créer le Double "123,45" quel que soit l'environnement de travail. Pour résumer mon soucis, un CDbl("123" & "," & "45") ne fonctionnera pas en environnement anglo-saxon qui attend "123.45".

    Existe-t-il une fonction à la DateSerial(an, mois, jour) qui me permettrait de recomposer un Double à partir de ses parties entière et décimale ?

    Merci,

    JPP.

  2. #2
    Expert Confirmé Sénior

    Homme Profil pro Philippe
    ex Observeur CGG / Analyste prog.
    Inscrit en
    juin 2006
    Messages
    2 537
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : juin 2006
    Messages : 2 537
    Points : 5 837
    Points
    5 837

    Par défaut

    Salut, a voir ?
    Code :
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
     
    Sub Tst()
    Dim sStr As String
        sStr = Range("A1") & Application.DecimalSeparator & Range("B1")
        Range("C1") = sStr
    End Sub
    Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Répondre avec citation )
    Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
    Autres utilitaires : MZ Tools 3.0 VBA et 7Zip

    Contributions : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator et Téléchargements

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2009
    Messages : 16
    Points : 16
    Points
    16

    Par défaut

    J'ai une solution à la con.
    Par contre cela suppose que tes valeurs après la virgule soit fixe

    Enfin voici rapidement ce que je ferais
    en gros je multiplie le nombre après la virgule par 0.01 que j'ajoute à ma valeur entière et je passe de string en float.
    Je suis sorti un peu de vb donc j'ai plus les noms de variable en tete

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim str1 as string
    Dim str2 as string
    Dim result double
     
    str1=10
    str2=55
     
    result = Cint(str1)+(Cint(str2)*0.01)
    Et donc result vaudrais 10.55

  4. #4
    Invité de passage
    Profil pro Jean-Pascal Peltier
    Inscrit en
    octobre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Nom : Jean-Pascal Peltier

    Informations forums :
    Inscription : octobre 2010
    Messages : 7
    Points : 2
    Points
    2

    Par défaut Merci, mais...

    Citation Envoyé par kiki29 Voir le message
    Salut, a voir ?
    Code :
    1
    2
    3
    [...]
        sStr = Range("A1") & Application.DecimalSeparator & Range("B1")
    [...]
    Bonjour, très séduisant en effet mais malheureusement :
    <Object doesn't support this property or method>
    Pour ma part, ça fonctionne avec :
    Code :
    Application.International(xlDecimalSeparator)
    Je suis sur Mac Excel 2011...

    JPP.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •