Extraire les chiffres après la virgule
sanaa590
-
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai besoin d'une fonction VBA qui permet d'extraire les chiffres après
la virgule d'une chaine numérique.
j'ai tout essayer la fonctionne indexof ne marche pas la fonctionne substring aussi la méthode Mdi a l'intérieur d'une boucle avec la conditionne s'il trouve la virgule il m'affiche !!!!
merci de m'aidez :)
j'ai besoin d'une fonction VBA qui permet d'extraire les chiffres après
la virgule d'une chaine numérique.
j'ai tout essayer la fonctionne indexof ne marche pas la fonctionne substring aussi la méthode Mdi a l'intérieur d'une boucle avec la conditionne s'il trouve la virgule il m'affiche !!!!
merci de m'aidez :)
5 réponses
-
bonjour,
ton nombre a t-il toujours le même nombre de chiffres après la virgule , et combien ?
partant de là, plusieurs solutions.
A+ -
Salut,
ce n'est pas un problème, mais avant d'écrire un code, le séparateur de décimale dans ton système c'est le point ou la virgule !
et lorsque tu as 10,05 par exemple tu veux récupérer 5 ou 05 ! -
Re,
En supposant que la plage à traiter est en colonne A à partir de A2, le code bouclera jusqu'à la dernière cellule non vide, associer le code Transfert à un bouton
Sub Transfert()
[A2].Select
If ActiveCell <> "" Then Extraire_Décimale_Comme_Chiffre_Entier
Do While ActiveCell <> "" 'Evite de relancer le code
ActiveCell.Offset(1, 0).Select
Extraire_Décimale_Comme_Chiffre_Entier
Loop
ActiveCell.Offset(0, 1).ClearContents
End Sub
Sub Extraire_Décimale_Comme_Chiffre_Entier()
Dim d As Double
d = ActiveCell
'MsgBox (Mid(Str(d), InStr(1, Str(d), ".") + 1))
ActiveCell.Offset(0, 1) = (Mid(Str(d), InStr(1, Str(d), ".") + 1))
ActiveCell.Offset(0, 1).NumberFormat = "00"
End Sub
Tiens moi au courrant
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir. -
Re,
Je rajoute un code plus court
Sub Sépare_Valeurs()
Dim n, tablo, m As Variant
For n = 2 To Range("A65536").End(xlUp).Row
tablo = Split(Range("A" & n), ".")
For m = 0 To UBound(tablo)
Cells(n, 1 + m) = tablo(m)
Cells(n, 1 + m).NumberFormat = "00"
Next m
Next n
End Sub
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Re,
Si ton problème est résolu, tu voudras bien nous le confirmer que l'on mette le statut de la discussion en résolu
Cordialement