Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

2ème pb Transformer texte en nombre

3 réponses
Avatar
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:=False, Transpose:=False
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

3 réponses

Avatar
JB
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 @ :



Avatar
MV71
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 @ :



Avatar
JB
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 @ :