[VBA] probléme de format

Fermé
nightcyborg - 10 mars 2009 à 16:33
 nightcyborg - 10 mars 2009 à 18:32
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
10 mars 2009 à 17:17
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 vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 645
10 mars 2009 à 18:04
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
10 mars 2009 à 18:32
merci, c'est effectivement ce que j'ai fais juste avant que tu poste ce message (je le jure).

enfin merci a toi ;)
0

Discussions similaires