OVH Cloud OVH Cloud

Pb macro de mise en forme

20 réponses
Avatar
lolo
Bonjour =E0 tous

Voila j'exporte des donn=E9es de SAP et j'ai cr=E9e une macro me
permettant de remmettre en forme ma feuille excel...
Mais j'ai un probl=E8me

Dans la colonne E j'ai ceci :
4,000 EA
22,000 EA
20,000 EA
149,000 EA

J'applique ma macro

Sub remplacer()
Range("E:E").Replace " EA", ""
Range("E:E").Replace " M", ""
Range("A:B").EntireColumn.Delete
End Sub


Et ensuite j'obtiens ceci
4 000
22 000
20 000
149 000

J'ai la virgule qui disparait...comment cela ce fait il ?

Merci de votre aide=20

A+

10 réponses

1 2
Avatar
Paul V
Bonjour à tous,

Une idée en l'air à vérifier.
Le fichier SAP est en format anglo saxon et le séparateur de millier est la
virgule.
Ton excel ext parametré avec l'espace comme séparateur de millier;
En enlevant le texte avec ton replace , le système transforme le texte en
nomnre et 4,000 (4000 en anglo saxon) devient 4 000 (4000 avec espace comme
séparateur de millier)

Vérifie dans la barre de formule quelle est la valeur réelle.

HTH et tiens moi au courant car cela m'intéresse

Paul V


"lolo" a écrit dans le message de news:

Bonjour à tous

Voila j'exporte des données de SAP et j'ai crée une macro me
permettant de remmettre en forme ma feuille excel...
Mais j'ai un problème

Dans la colonne E j'ai ceci :
4,000 EA
22,000 EA
20,000 EA
149,000 EA

J'applique ma macro

Sub remplacer()
Range("E:E").Replace " EA", ""
Range("E:E").Replace " M", ""
Range("A:B").EntireColumn.Delete
End Sub


Et ensuite j'obtiens ceci
4 000
22 000
20 000
149 000

J'ai la virgule qui disparait...comment cela ce fait il ?

Merci de votre aide

A+
Avatar
Phenix21
Bonjour à toi,

Ce ne serait pas simplement excel qui applique une mise en forme
automatiquement et passe en format de cellule nombre ?



Bonjour à tous

Voila j'exporte des données de SAP et j'ai crée une macro me
permettant de remmettre en forme ma feuille excel...
Mais j'ai un problème

Dans la colonne E j'ai ceci :
4,000 EA
22,000 EA
20,000 EA
149,000 EA

J'applique ma macro

Sub remplacer()
Range("E:E").Replace " EA", ""
Range("E:E").Replace " M", ""
Range("A:B").EntireColumn.Delete
End Sub


Et ensuite j'obtiens ceci
4 000
22 000
20 000
149 000

J'ai la virgule qui disparait...comment cela ce fait il ?

Merci de votre aide

A+


Avatar
lolo
Salut à vous

Je viens de faire une vérif en fait au départ mon format dans ma
cellule est standard par contre dès que j'applique la macro le format
de la cellule devient un nombre...

Quelle est la manipulation à réaliser pour pouvoir supprimer cela ?

Merci de votre aide

A+
Avatar
lolo
Bonjour à tous,

Une idée en l'air à vérifier.
Le fichier SAP est en format anglo saxon et le séparateur de millier
est la
virgule.
Ton excel ext parametré avec l'espace comme séparateur de millier;
En enlevant le texte avec ton replace , le système transforme le texte
en
nomnre et 4,000 (4000 en anglo saxon) devient 4 000 (4000 avec espace
comme
séparateur de millier)


Vérifie dans la barre de formule quelle est la valeur réelle.


HTH et tiens moi au courant car cela m'intéresse


Oui je reviens vers toi car en fait le problème est autre quand le
nombre est 4,000EA cela correspond au nombre 4 et pas au nombre 4000...
En fait SAP envoie des données de quantité avec 3 chiffres derrière
la virgule...
Tu crois qu'il y a possibilité d'éviter ce problème avec une macro
?

A+
Avatar
Phenix21
Donc finalement la virgule est bien le séparateur des décimales,
c'est cela ?

Mais il te faut quand meme la mise en forme initiale non ?



Oui je reviens vers toi car en fait le problème est autre quand le
nombre est 4,000EA cela correspond au nombre 4 et pas au nombre 4000...
En fait SAP envoie des données de quantité avec 3 chiffres derrière
la virgule...
Tu crois qu'il y a possibilité d'éviter ce problème avec une macro
?

A+


Avatar
Paul V
Hello lolo,

Tout dépend de ce que tu veux obtenir en finale, comme l'a précisé Phenix21.

Si tu veux le nombre 4 mais garder les chiffres décimaux, tu devras faire un
balayage de la plage après remplacement et diviser par 1000.

Si tu veux garder visuellement le même nombre et ne pas l'utiliser pour des
calculs, tu peux le conserver en format texte. Par exemple par un balyage de
ta plage et en appluant la commande
ActiveCell.FormulaR1C1 = "'" & ActiveCell.Value

Explique plus avant ce que tu veux obtenir et aussi fairte avec le résultat
si tu veux une aide plus précise.

A+

Paul V

"lolo" a écrit dans le message de news:

Bonjour à tous,

Une idée en l'air à vérifier.
Le fichier SAP est en format anglo saxon et le séparateur de millier
est la
virgule.
Ton excel ext parametré avec l'espace comme séparateur de millier;
En enlevant le texte avec ton replace , le système transforme le texte
en
nomnre et 4,000 (4000 en anglo saxon) devient 4 000 (4000 avec espace
comme
séparateur de millier)


Vérifie dans la barre de formule quelle est la valeur réelle.


HTH et tiens moi au courant car cela m'intéresse


Oui je reviens vers toi car en fait le problème est autre quand le
nombre est 4,000EA cela correspond au nombre 4 et pas au nombre 4000...
En fait SAP envoie des données de quantité avec 3 chiffres derrière
la virgule...
Tu crois qu'il y a possibilité d'éviter ce problème avec une macro
?

A+
Avatar
lolo
Salut Phenix21

En fait la virgule est bien le separateur de décimales...moi quand je
lance ma macro je voudrais avoir à la place de 4,000 EA avoir juste 4

Comment puis je faire ça ?

Merci beaucoup

A+
Avatar
Paul V
Hello lolo,

Si c'est toujours trois 0 après la virgule, tu peux modifier ton replace :
Range("E:E").Replace " 000 EA", ""

S'il s'agit d'autres chiffres après la virgule, je ne vois qu'un balayage et
division par 1000 et arrondi à l'unité, éventuellement supérieure ou
inférieure.

A+

"lolo" a écrit dans le message de news:

Salut Phenix21

En fait la virgule est bien le separateur de décimales...moi quand je
lance ma macro je voudrais avoir à la place de 4,000 EA avoir juste 4

Comment puis je faire ça ?

Merci beaucoup

A+
Avatar
Phenix21
Dans panneau de configuration -> options régionales, le séparateur
décimal c'est bien la virgule ?

Autrement si excel comprend les données comme style anglo-saxon, et
que le point est le séparateur décimal des anglo-saxons, peut etre
essaie en remplacant les virgules par des points...

Enfin, je n'ai rien testé...




Salut Phenix21

En fait la virgule est bien le separateur de décimales...moi quand je
lance ma macro je voudrais avoir à la place de 4,000 EA avoir juste 4

Comment puis je faire ça ?

Merci beaucoup

A+


Avatar
lolo
Ok j'ai regardé dans panneau de conf c'est pas la virgule ca m'a l'air
d'être un point...
Je viens d'essayer ce que m'a donnée Paul V mais ca ne fonctionne pas
j'ai toujours
le resultats suivant 4 000 à la place de 4 ....

Merci de votre aide je pense qu'on va y arriver lol




Dans panneau de configuration -> options régionales, le séparateur
décimal c'est bien la virgule ?

Autrement si excel comprend les données comme style anglo-saxon, et
que le point est le séparateur décimal des anglo-saxons, peut etre
essaie en remplacant les virgules par des points...

Enfin, je n'ai rien testé...




Salut Phenix21

En fait la virgule est bien le separateur de décimales...moi quand je
lance ma macro je voudrais avoir à la place de 4,000 EA avoir juste 4

Comment puis je faire ça ?

Merci beaucoup

A+




1 2