[VBA] probléme de format

nightcyborg -  
 nightcyborg -
Bonjour,

j'ai un souci avec une macro pour Excel. j'ai des volumes exprimés en Mo, mais je dois faire en sorte que "Mo" ne soit plus affiché, seulement la valeur. je me suis dis, que c'était simple, mais je bloque.

exmple :

je pars de ça 189,256Mo

je fais passer cette valeur par la code suivant :

If InStr(Cells(i, 11).Value, "Mo") Then
Cells(i, 11).Value = Replace(CStr(Cells(i, 11).Value), "Mo", "")
End If

je me retrouve avec : 189 256

j'ai aussi essayé de procéder comme suit :

If InStr(Cells(i, 11).Value, "Mo") Then
Cells(i, 11).Value = Left(Cells(i, 11).Value, Len(Cells(i, 11).Value) - 2)
End If

mais j'obtiens le même résultat, pas de virgule. au départ, la valeur est au format standard puis, après être passé par mon code se retrouve au format nombre.

si quelqu'un possède la solution, merci d'avance de la partager avec moi ;)
A voir également:

2 réponses

nightcyborg
 
je viens de me rendre compte que ça fonctionne sur certaines valeurs, mais je ne vois pas pourquoi. elles sont au même format.
0
pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   646
 
Bonjour,

En fait je pense qu'il prend la virgule pour le séparateur de milliers pendant la conversion. Pour éviter ce phénomène il faut soit passer les cellules au format texte avant l'exécution de la macro soit les passer au format texte dans la macro comme cela :
If InStr(Cells(i, 11).Value, "Mo") Then
    Cells(i, 11).NumberFormat = "@"
    Cells(i, 11).Value = Replace(Cells(i, 11).Value, "Mo", "")
End If


A+
0
nightcyborg
 
merci, c'est effectivement ce que j'ai fais juste avant que tu poste ce message (je le jure).

enfin merci a toi ;)
0