XL 2010 Changer un format monétaire en nombre standard

album40

XLDnaute Nouveau
Bonsoir le forum,
Aidez moi,
J'ai des valeurs en euros dans la colonne A que je copient en colonne K à l'aide d'une macro
Range("A5:A34").Copy
Range("K5:K34").PasteSpecial xlPasteValues

Une fois les valeurs copiées je n'arrive pas à les utiliser pour faire mes différents calculs
aidez-moi (a l'aide d'une macro) à rendre ces valeurs en format standard afin de pouvoir les utiliser pour mes calculs

Je joint la feuille excel pour plus de détail.
 

Pièces jointes

  • ESSAI1.xlsm
    19.1 KB · Affichages: 14

Dudu2

XLDnaute Barbatruc
Bonjour,
Tes chiffres en A5:A34 n'ont rien de chiffres.
Il sont pseudo-formatés en monétaire manuellement et donc ce sont des valeurs Texte.
Retire le signe € et l'espace de séparation des milliers et alors le vrai format monétaire apparaitra et la copie de ces valeurs sera bien des nombres à formater selon ton choix et de toutes façons utilisables en calculs quelque soit leur format.
 

soan

XLDnaute Barbatruc
Inactif
Bonsoir album40, Dudu2,

Clique sur ton bouton « MODIFIER » ➯ travail effectué

Alt F11 pour voir ta macro, puis revenir sur Excel

Regarde aussi ta nouvelle formule en N5
(déjà tirée vers le bas jusqu'en N34).

soan
 

Pièces jointes

  • ESSAI1.xlsm
    19.3 KB · Affichages: 4

soan

XLDnaute Barbatruc
Inactif
@album40

Regarde d'abord mon fichier précédent ; j'avais fait manuellement la conversion
des nombres de la colonne A en de vrais nombres, sans espace séparateur de
milliers (de code 160), et sans le symbole "$" final.

Dans le 2ème fichier ci-dessous, j'ai remis les faux nombres comme ils étaient
au départ ; la nouvelle macro données() fait la conversion automatique en
de vrais nombres, puis fait la copie en valeur des données.

Le reste est inchangé, donc la formule en N5 est toujours présente,
et toujours étirée vers le bas jusqu'en N34.


soan
 

Pièces jointes

  • ESSAI1.xlsm
    20.2 KB · Affichages: 3

album40

XLDnaute Nouveau
Bonsoir soan

Merci pour la solution proposée. C'est ce que je voulais. Je préfère la première réponse parce ce que plus simple à retenir.
Pouvez-vous m'expliquer l'avant dernière ligne de cette macro.

Range("A5:A" & dlg).Copy: [K5].PasteSpecial -4163

pourquoi PasteSpecial -4163
j'aimerais comprendre

Merci d'avance
 

soan

XLDnaute Barbatruc
Inactif
Tu as écrit : « Je préfère la première réponse parce que plus simple à retenir. »
Je ne comprends pas pourquoi tu préfères mon 1er fichier : ça a été très long
et fastidieux de faire la conversion manuellement, c'est pourquoi je préfère
largement le 2ème fichier, car il fait la conversion automatiquement ! :)

-4163 est la constante numérique de xlPasteValues ➯ c'est la même chose,
mais c'est quand même plus court à écrire et à lire ! ;)

soan
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour,

Une autre solution à la mimine, sans macro :
  • sélectionner A5:A34
  • dans la zone Rechercher, tapez un espace
  • laisser vide la zone "Remplacer par"
  • puis Remplacer tout

S'il subsiste des espaces, c'est que ce sont pas des espaces ordinaires mais des espaces insécables (code 0160) et dans ce cas :
  • sélectionner A5:A34
  • tapez Ctrl+H (affiche fenêtre Remplacer)
  • dans la zone Rechercher, taper Alt+0160 ( Touche Alt enfoncée, tapez les 4 chiffres sur le clavier numérique)
  • laisser vide la zone "Remplacer par"
  • puis Remplacer tout
c'est tout...

Plus long à écrire qu'à faire ;)
 
Dernière édition:

Discussions similaires