Autres impossible de convertir nombre texte en nombre

  • Initiateur de la discussion Initiateur de la discussion gh4
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gh4

XLDnaute Occasionnel
Bonjour à toutes et tous et bonne année 2026
excel 2007
Je n'arrive pas à convertir des cellules en nombre. les nombres sont placés à gauche. j'ai essayé cnum la case me renvoie "valeurs" j'ai essayé de x1 renvoie "valeur"
je vous remercie par avance
un code vba serait la bienvenue
Cordialement
 

Pièces jointes

hello

Comme je n'arrive pas à supprimer l"espace insécable - CHR(160)- je te propose le code suivant
VB:
Sub conv()
    Dim TabData() As Variant
    
    With ActiveSheet
        TabData = .Range("A1").CurrentRegion.Value
        
        For i = LBound(TabData, 1) To UBound(TabData, 1)
        
            For j = LBound(TabData, 2) To UBound(TabData, 2)
                TabData(i, j) = Replace(TabData(i, j), ",", ".")
                For k = 1 To Len(TabData(i, j))
                    If Mid(TabData(i, j), k, 1) = "-" Or Mid(TabData(i, j), k, 1) = "." Or (Mid(TabData(i, j), k, 1) >= 0 And Mid(TabData(i, j), k, 1) <= 9) Then
                        temp = temp & Mid(TabData(i, j), k, 1)
                    End If
                Next k
                TabData(i, j) = temp
                temp = ""
            Next j
        Next i
        .Range("A1").CurrentRegion = TabData
    End With
End Sub
 
Bonjour à tous,

Comme je n'arrive pas à supprimer l"espace insécable - CHR(160)
Il ne s'agit pas du caractère "espace insécable" de code ascii 160 mais d'un caractère d'unicode 8239 (nommé Narrow No-Break Space)
On peut utiliser la formule suivante qui remplace le caractère d'unicode 8239 par rien et qui remplace le point par une virgule :
=CNUM(SUBSTITUE(SUBSTITUE(A1;UNICAR(8239);"");".";","))
 
Dernière édition:
@mapomme
bizarre, j'avais testé le code de ce fameux espace
et un asc(mid(valeur,3,1)) me retournait bien 160...

mais bon.. comme j'ai pas creusé, suis parti direct sur le code proposé
et je ne m'explique pas pourquoi un "replace(valeur," ","") ne donne rien (pas plus qu'un (ctrl +F remplacer)
alors que dans mon code
"si mid(valeur,k,1)=" " ... ignore bien cet espace..
les bizarreries d'excel et vba
 
Bonsoir,
VB:
Sub test()
ConvertirNum Range("A:A")
End Sub
Sub ConvertirNum(Value As Range)
    With Value
       .NumberFormat = "@"
        .Formula = .Formula  ' Force la réécriture en format texte
        .Replace What:=".", Replacement:=Application.International(xlDecimalSeparator), _
                 LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
        .NumberFormat = "General"
        .TextToColumns Destination:=.Cells(1, 1), _
            DataType:=xlDelimited, _
            FieldqInfo:=Array(1, xlGeneralFormat)
    End With
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
332
Retour