Je suis à la recherche d'un p'tit bout de code qui pourra me sortir une belle épine du pied.
Mon soucis vient d'un fichier de sortie qui me donne des valeurs de volumes en format texte avec la nomenclature suivante dans les cellules :
1 TB
0.99 TB
650 GB
42.4 MB
Je souhaiterais transformer tout cela en base GB afin de pouvoir faire des sommes.
J'ai déjà fait mon code pour changer les "." en "," , et pour supprimer l'extension " GB" (vu que c'est la référence).
Pouvez-vous m'aider pour la suite svp :
1 TB -> 1000
0.99 TB -> 990
650 GB -> 650
42.4 MB -> 0,042
Le but étant de remplacer le contenu des cellules et non créer une colonne à coté avec les valeurs numériques.
Re : Convertir texte (MB,GB,TB) en valeur numérique
Bonjour Emmanuel31,
Surtout ne pas remplacer les points par des virgules.
Exécuter ce petit bout de code :
Code:
Sub Convertir()
Dim cel As Range
For Each cel In Range("A1", [A65536].End(xlUp)) 'plage à adapter
If cel Like "*TB" Then
cel = Val(cel) * 1000
ElseIf cel Like "*GB" Then
cel = Val(cel)
ElseIf cel Like "*MB" Then
cel = Val(cel) / 1000
End If
Next
End Sub
Re : Convertir texte (MB,GB,TB) en valeur numérique
Bonjour le fil, le forum,
Autre solution :
Code:
Sub Convertir()
Dim cel As Range, e As Variant
For Each cel In Range("A1", [A65536].End(xlUp)) 'plage à adapter
e = Evaluate(Replace(Replace(Replace(cel.Text, "TB", "*1000"), "GB", ""), "MB", "/1000"))
If IsNumeric(e) Then cel = e
Next
End Sub