2ème pb Transformer texte en nombre

Le
MV71
Rebonjour,
Je suis un peu encombrantaujourd'hui, mais j'ai un secon problème avec mon
import de texte depuis un fichier *.ini: je voudrais pouvoir transformer de
chiffres texte en nombre (lorsque les nombre importés ont une virgule
décimale au lieu d'un point, ils sont considérés comme texte). J'ai essayé
ceci glané je ne sais plus où :multiplier par 1. Curieusement, cela
fonctionne directement dans Excel, mais pas en programmation.

Sub TransfLettrNbrs()
'Pour corriger erreur de lect Fichier Ini
'NE MARCHE PAS
'POUR TRANSFORMER DU TEXTE (NBRS FORMAT TEXTE EN NOMBRES)
'Fonctionne en direct mais pas en programmation

Range("A45").Select
ActiveCell.FormulaR1C1 = "1"
Range("A45").Select
Selection.Copy
' MsgBox (Selection.Value) 'test
Range("A9").Select
Selection.CurrentRegion.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlMultiply,
_
SkipBlanks:lse, Transpose:lse
Range("A45").Select
Application.CutCopyMode = False
Selection.ClearContents
End Sub

Je serai enchanté par toute solution ou explication.
Bonne journée à tous

--
MV71 - Pour m'écrire supprimer .abc et abc. de chaque côté du @ :
r.viennet.abc@abc.laposte.net
Vos réponses
Trier par : date / pertinence
JB
Le #3828521
Bonjour,

Il faudrait un échantillon: pour le séparateur de décimale . , cette
boucle suffit.

For Each c In Selection
c.Value = Val(c.Value)
Next c

Cordialement JB

Rebonjour,
Je suis un peu encombrantaujourd'hui, mais j'ai un secon problème avec mon
import de texte depuis un fichier *.ini: je voudrais pouvoir transformer de
chiffres texte en nombre (lorsque les nombre importés ont une virgule
décimale au lieu d'un point, ils sont considérés comme texte). J'ai essayé
ceci glané je ne sais plus où :multiplier par 1. Curieusement, cela
fonctionne directement dans Excel, mais pas en programmation.

Sub TransfLettrNbrs()
'Pour corriger erreur de lect Fichier Ini
'NE MARCHE PAS
'POUR TRANSFORMER DU TEXTE (NBRS FORMAT TEXTE EN NOMBRES)
'Fonctionne en direct mais pas en programmation

Range("A45").Select
ActiveCell.FormulaR1C1 = "1"
Range("A45").Select
Selection.Copy
' MsgBox (Selection.Value) 'test
Range("A9").Select
Selection.CurrentRegion.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlMul tiply,
_
SkipBlanks:lse, Transpose:lse
Range("A45").Select
Application.CutCopyMode = False
Selection.ClearContents
End Sub

Je serai enchanté par toute solution ou explication.
Bonne journée à tous

--
MV71 - Pour m'écrire supprimer .abc et abc. de chaque côté du @ :



MV71
Le #3828071
Bonsoir et merci

Reste un problème, ça marche trop bien! et tout prend le format numérique, y
compris le texte vrai (j'avais oublié de mentionner que j'ai des données des
2 types). C'est pourquoi cette méthode me convenait, car la multiplication
par 1 (copier, collage spéc= mutiplier) rétablit les chiffres mais ne
modifie pas le texte.
Précision: le nombre sont exportés comme nombre s'il sont saisis directement
dans le code avec un point, s'il y sont saisis avec une virgule ou récupérés
d'une plage formatée nombre, ils reviennent comme texte (et signalés comme
tels mais sensibles à la x1, ce qui ne marche pas si on leur met une
apostrophe !???
Je viens de constater que c'est modifiable avec les options liées à l'info à
droite de la cellule (excel 2003) qui mentionne que le nbr est stocké sous
forme de texte et offre l'option de le convertir en nombre.
Cette opération manuelle est-elle automatisable?

Merci


JB wrote:
Bonjour,

Il faudrait un échantillon: pour le séparateur de décimale . , cette
boucle suffit.

For Each c In Selection
c.Value = Val(c.Value)
Next c

Cordialement JB

Rebonjour,
Je suis un peu encombrantaujourd'hui, mais j'ai un secon problème
avec mon import de texte depuis un fichier *.ini: je voudrais
pouvoir transformer de chiffres texte en nombre (lorsque les nombre
importés ont une virgule décimale au lieu d'un point, ils sont
considérés comme texte). J'ai essayé ceci glané je ne sais plus où
:multiplier par 1. Curieusement, cela fonctionne directement dans
Excel, mais pas en programmation.

Sub TransfLettrNbrs()
'Pour corriger erreur de lect Fichier Ini
'NE MARCHE PAS
'POUR TRANSFORMER DU TEXTE (NBRS FORMAT TEXTE EN NOMBRES)
'Fonctionne en direct mais pas en programmation

Range("A45").Select
ActiveCell.FormulaR1C1 = "1"
Range("A45").Select
Selection.Copy
' MsgBox (Selection.Value) 'test
Range("A9").Select
Selection.CurrentRegion.Select
Selection.PasteSpecial Paste:=xlPasteValues,
Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Range("A45").Select
Application.CutCopyMode = False
Selection.ClearContents
End Sub

Je serai enchanté par toute solution ou explication.
Bonne journée à tous

--
MV71 - Pour m'écrire supprimer .abc et abc. de chaque côté du @ :




--
MV71 - Pour m'écrire supprimer .abc et abc. de chaque côté du @ :



JB
Le #3827841
Peut être:

Sub conversion_jb()
For Each i In Selection
If IsNumeric(i.Value) Then i.Value = Val(i.Value)
Next i
End Sub

ou

Sub conversion_jb1()
For Each i In Selection
If InStr(i.Value, ",") > 0 Then i.Value = Val(i.Value)
Next i
End Sub

JB

Bonsoir et merci

Reste un problème, ça marche trop bien! et tout prend le format num érique, y
compris le texte vrai (j'avais oublié de mentionner que j'ai des donn ées des
2 types). C'est pourquoi cette méthode me convenait, car la multiplicat ion
par 1 (copier, collage spéc= mutiplier) rétablit les chiffres mais ne
modifie pas le texte.
Précision: le nombre sont exportés comme nombre s'il sont saisis dire ctement
dans le code avec un point, s'il y sont saisis avec une virgule ou récu pérés
d'une plage formatée nombre, ils reviennent comme texte (et signalés comme
tels mais sensibles à la x1, ce qui ne marche pas si on leur met une
apostrophe !???
Je viens de constater que c'est modifiable avec les options liées à l 'info à
droite de la cellule (excel 2003) qui mentionne que le nbr est stocké sous
forme de texte et offre l'option de le convertir en nombre.
Cette opération manuelle est-elle automatisable?

Merci


JB wrote:
Bonjour,

Il faudrait un échantillon: pour le séparateur de décimale . , ce tte
boucle suffit.

For Each c In Selection
c.Value = Val(c.Value)
Next c

Cordialement JB

Rebonjour,
Je suis un peu encombrantaujourd'hui, mais j'ai un secon problème
avec mon import de texte depuis un fichier *.ini: je voudrais
pouvoir transformer de chiffres texte en nombre (lorsque les nombre
importés ont une virgule décimale au lieu d'un point, ils sont
considérés comme texte). J'ai essayé ceci glané je ne sais plu s où
:multiplier par 1. Curieusement, cela fonctionne directement dans
Excel, mais pas en programmation.

Sub TransfLettrNbrs()
'Pour corriger erreur de lect Fichier Ini
'NE MARCHE PAS
'POUR TRANSFORMER DU TEXTE (NBRS FORMAT TEXTE EN NOMBRES)
'Fonctionne en direct mais pas en programmation

Range("A45").Select
ActiveCell.FormulaR1C1 = "1"
Range("A45").Select
Selection.Copy
' MsgBox (Selection.Value) 'test
Range("A9").Select
Selection.CurrentRegion.Select
Selection.PasteSpecial Paste:=xlPasteValues,
Operation:=xlMultiply, _
SkipBlanks:lse, Transpose:lse
Range("A45").Select
Application.CutCopyMode = False
Selection.ClearContents
End Sub

Je serai enchanté par toute solution ou explication.
Bonne journée à tous

--
MV71 - Pour m'écrire supprimer .abc et abc. de chaque côté du @ :




--
MV71 - Pour m'écrire supprimer .abc et abc. de chaque côté du @ :





Publicité
Poster une réponse
Anonyme