Conversion de chiffre en nombre

asset

XLDnaute Nouveau
Bonjour à tous,

lorsque j'importe un fichier texte via excel, j'aimerai convertir des nombres sous format texte en format nombre automatiquement via la fonction données convertir.

ci joint un fichier

Merci d'avance de votre aide
 

Pièces jointes

  • conv.xls
    17.5 KB · Affichages: 141
  • conv.xls
    17.5 KB · Affichages: 151
  • conv.xls
    17.5 KB · Affichages: 152

Etienne2323

XLDnaute Impliqué
Re : Conversion de chiffre en nombre

Bonjour asset,
la fonction convertir vous permettra de séparer votre texte avec différents séparateurs, ce qui me semble ne pas être votre besoin. Ainsi, pour convertir votre texte en nombre, je ne crois pas que ce soit la meilleure option.

Je pourrais plutôt vous proposer simplement d'utiliser le CTRL+H sur la colonne A et de remplacer le . par du vide. Ainsi, vous retrouverez un nombre.

Si toutefois vous avez encore du texte, alors vous pouvez utiliser la formule =CNUM(Votre texte)

Bonne continuité,

Étienne
 

Pierrot93

XLDnaute Barbatruc
Re : Conversion de chiffre en nombre

Bonjour Asset, Etienne,

regarde peut être le code ci-dessous, si j'ai bien compris

Code:
Option Explicit
Sub test()
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(0, 1), DecimalSeparator:=",", ThousandsSeparator:="."
End Sub

A noter que les arguments ci dessous peuvent sans doute être utilisés lors de ton importation, à voir comment celle-ci est effectuée...
Code:
DecimalSeparator:=",", ThousandsSeparator:="."

bonne journée
@+
 

asset

XLDnaute Nouveau
Re : Conversion de chiffre en nombre

bonjour etienne,

Merci de de ta réponse, j'avais déja fais un code et ca marche pas encore tout a fais correctement à mettre mes colonnes en format numérique.

Sinon je peux te donner mon fichier de depart avec mes macros que j'avais commercer ?

Enfin si tu as le temps

Cordialement
 

Fred0o

XLDnaute Barbatruc
Re : Conversion de chiffre en nombre

Bonsoir Asset, Etienne, Pierrot.

Je propose le petit mode opératoire décrit dans le fichier Excel joint. Ce mode op est à utiliser avec le fichier texte joint également.

Dis moi si ça fonctionne.

A+
 

Pièces jointes

  • asset.zip
    2 KB · Affichages: 77

Fred0o

XLDnaute Barbatruc
Re : Conversion de chiffre en nombre

Re-bonsoir,

Peux-tu me faire un ZIP avec ton fichier texte et le fichier EXCEL dans lequel tu souhaites l'incorporer STP (en enlevant les données confidentielles bien sûr). Je regarderais pourquoi ça ne fonctionne pas.
L'exemple que je t'ai envoyé fonctionne parfaitent chez moi.

A+
 

coco_lapin

XLDnaute Impliqué
Re : Conversion de chiffre en nombre

Bonjour à tous,

En général, pour palier ces difficultés, je passe par une variable que j'ai dimensionnée en Long.
Pour ton cas particulier il faut aussi transformer les . par des vides.
Voir classeur en annexe.
 

Pièces jointes

  • conv1.xls
    45.5 KB · Affichages: 92

asset

XLDnaute Nouveau
Re : Conversion de chiffre en nombre

bonjour coco,

j'ai copie ta macro, sauf que je ne comprend pas ca ne marche toujours pas :confused:

j'ai joint un fichier tel que je reçois les chiffres quand je retraite mon texte via la fonction de conversion.

c'est ma conversion au format numerique que je n'arrive pas a résoudre.

Merci d'avance pour vos réponses
 

Pièces jointes

  • conv.xls
    30.5 KB · Affichages: 70
  • conv.xls
    30.5 KB · Affichages: 73
  • conv.xls
    30.5 KB · Affichages: 82

Etienne2323

XLDnaute Impliqué
Re : Conversion de chiffre en nombre

Salut asset, le fil, le forum,
encore une fois, c'est peut-être moins qui comprend mal le besoin, mais d'après le fichier fourni par asset, un bon vieux CTRL+H qui remplace le point par du vide règle le problème à 100%. Pas besoin de programmation du tout ...

Ça fonctionne parfaitement pour moi à la maison.

Ceci dit, si tu tiens absoluement à l'avoir par macro.

VB:
Option Explicit
Sub es()

Dim Mon_Chiffre As Single
Dim DerniereLigne As Integer, i As Integer

'Cette ligne ci rempli ton besoin.
Columns("A:C").Replace What:=".", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False

'Si tu souhaites continuer plus loin, ce que j'en comprends c'est que
'tu veux avoir le résultat numérique dans la cellule adjacente.
DerniereLigne = Cells(100, 1).End(xlUp).Row


For i = 9 To DerniereLigne
    'Test sur la colonne A
    If IsNumeric(Cells(i, 1).Value) Then
        'On va s'assurer que c'est bien un nombre décimal
        Mon_Chiffre = Cells(i, 1).Value
        Cells(i, 2).Value = Round(Mon_Chiffre, 2)
        
    End If
    Mon_Chiffre = 0
    
    'Test sur la colonne C
    If IsNumeric(Cells(i, 3).Value) Then
        'On va s'assurer que c'est bien un nombre décimal
        Mon_Chiffre = Cells(i, 3).Value
        Cells(i, 4).Value = Round(Mon_Chiffre, 2)
    End If
    Mon_Chiffre = 0
Next i

End Sub

Étienne
 

coco_lapin

XLDnaute Impliqué
Re : Conversion de chiffre en nombre

Bonsoir,

asset, j'ai pris en compte ton dernier classeur et j'ai adapté la macro correspondante.

Etienne2323, tu as raison avec le premier classeur d'asset le remplacement des . en vide suffisait.
Cela n'est pas suffisant dans son dernier classeur.
Comme je le disais précédemment je passe généralement par une variable pour résoudre ce problème. Mon but était de lui donner cette astuce même si cela n'était pas utile dans son premier classeur.
 

Pièces jointes

  • conv2.xls
    32.5 KB · Affichages: 81

coco_lapin

XLDnaute Impliqué
Re : Conversion de chiffre en nombre

Re,

J'ai omis de te dire qu'à la colonne A, et avant traitement, le format est différent avant et après la ligne17, alors attention à la validité du résultat final.
Exemple pour 735.73

Bonne nuit à tous.
 

Discussions similaires

Réponses
13
Affichages
339
Réponses
3
Affichages
212

Statistiques des forums

Discussions
311 720
Messages
2 081 912
Membres
101 837
dernier inscrit
Ugo