Formater des données dans une macro

Bonjour,

J'ai une petite question pratique, est-il possible de formater des données numérique dans une macro utilisée pour un copier/coller de données ?

Par exemple si la valeur de M39 est 17,1254896336, je souhaite que la valeur exportée soit : 17,12

Voici ma macro :

Sub valider()
'
' valider Macro
'

'
    Set wst = Worksheets("Base")
    Set wss = Worksheets("matrice")
    ' dernière ligne+1 de récap sera par défaut la ligne où l'on va sauver les données
    dlt = wst.Range("A" & wst.Rows.Count).End(xlUp).Row + 1
    ' on recherche l'id dans Base
    Set re = wst.Range("A1:A" & dlt).Find(wss.Range("A3"), lookat:=xlWhole)
    ' si on la trouve
    If Not re Is Nothing Then
     ans = MsgBox("il existe déjà des données pour cette id, on les remplace ?", vbYesNo)
     If ans = vbYes Then
      ' on veut remplacer on mémorise la ligne à modifier
      dlt = re.Row
     Else
     'on ne veut pas remplacer, c'est fini
      Exit Sub
     End If
    End If
    ' à adapter
    ' copie des données de enregistrement vers Base, dans la ligne dlt
    wst.Range("I" & dlt) = wss.Range("M39") 
    wst.Range("J" & dlt) = wss.Range("Q39") 
    wst.Range("K" & dlt) = wss.Range("F3") 
    wst.Range("L" & dlt) = wss.Range("N3") 
    wst.Range("M" & dlt) = wss.Range("O3")
    wst.Range("N" & dlt) = wss.Range("H3") 
   ' fin à adapter
    Set wst = Nothing
    Set re = Nothing
    Set wss = Nothing
    End Sub

En Php j'ai l'habitude d'utiliser ce type de contrainte sous cette forme :

<?php echo number_format(($donnees1['janvier']), 0, ',', ' '); ?>

Merci

Bonjour,

exemple sur base d'une copie de B1 vers B2

Range("B2") = Format(Range("B1"), "0.00")
h2so4 a écrit :

Bonjour,

exemple sur base d'une copie de B1 vers B2

Range("B2") = Format(Range("B1"), "0.00")

Cette fonctionne mais le macro exporte mes données en format texte, il serait souhaitable qu'elles le soit sous un format numérique. Est-ce que "Format" peut être remplacé par "number_format" ?

merci

Bonjour,

une alternative, la donnée exportée sera le nombre initial mais l'affichage sera limité à 2 décimales

range("B2")=range("B1")
range("B2").numberformat="0.00"

Merci beaucoup c'est la solution tout semble fonctionner.

Un grand merci

Rechercher des sujets similaires à "formater donnees macro"