texte en nombre

  • Initiateur de la discussion Popeye
  • Date de début
P

Popeye

Guest
Bonjour a toutes et a tous les gens du forum

Tite question

j'ai un fichier avec des données supposées nombre (numérique)

le probleme c que
-les nombres sans virgule sont considérés comme nombre
-les nombres avec virgule sont considérés comme texte
(j'ai testé avec la fonction estnum qui me donne faux)

je voudrais savoir si il existait une fonction sous vba pour forcer la conversion en format nombre (j'ai essayé presque toute les bidouilles possibles avec les fonctions de excel comme format nombre, convertir etc...)

merci d'avance
 
B

Ber Nar

Guest
J'ai cette petite fonction qui remplace toutes les ',' par '.' dans la colonne A de la feuille 'Feuil1'

Sub RemplacerVirguleParPoint()
Worksheets("Feuil1").Columns("A").Replace _
What:=",", Replacement:=".", _
SearchOrder:=xlByColumns, MatchCase:=True
End Sub

Ber Nar.
 
P

Popeye

Guest
bah le probleme c que "," c le séparateur décimal
je viens de trouver la fonction excel qui marche
CNUM()

elle transforme un texte en nombre si c possible
mais j'ai 2500 lignes a faire sur 3 colonnes en automatiques en plus
je vais peut etre faire un gros bidouillage genre mettre cnum dans une case vide et changer juste l'adresse de la cellule pour transformer en nombre puis recopier
ca va considérablement allonger l'éxécution du programme en plus

merci quand meme

si quelqu'un a une autre solution
 
P

Popeye

Guest
je viens d'essayer ca marche pas snifff


j'ai essayé ca
Cells(1, 4).Formula = "=CNUM(" & Range("a2").Address & ")"

je comprends rien ca marche pas
dans la cellule j'ai "#NOM" qui apparait mais des que je clique dedans sans rien changer et je valide la formule marche
pfff
comprends rien
 
P

Popeye

Guest
J'ai trouvé un truc sympa


Dim cellule As Range
For Each cellule In Selection
texte = cellule
Position = InStr(1, texte, ",", 1)
If Position <> 0 Then
Mid(texte, Position, 1) = "."
End If

Call Format(texte, "0.00")
cellule = texte

Next

ca marche bien

merci pour l'idée de Format
 
J

Jean-Marie

Guest
 



 Re: texte en nombre


Bonjour, Tout le monde

Popeye, essaye ce petit truc. Généralement après importation, si les données ont été mise en forme de texte, se petit truc suffit.

Tape une valeur 0 dans une cellule. Copie cette cellule. Sélectionne ta plage de valeurs, puis fait un collage spécial de tout avec une option d'addition.

@+Jean-Marie
 
M

Mytå

Guest
Bonsoir le forum

Un autre solution

Sub Nombres()
Dim Plage As Range, Cel As Range
Set Plage = Range("C1", Range("C1").End(xlDown))
For Each Cel In Plage
If IsNumeric(Cel.Value) Then Cel.Value = CDbl(Cel.Value)
Next Cel
End Sub
 

Discussions similaires

Réponses
11
Affichages
317

Statistiques des forums

Discussions
313 002
Messages
2 094 317
Membres
105 991
dernier inscrit
cherif