Macro changer de format de cellules

Joe_cooker

XLDnaute Nouveau
Bonjour
J'ai besoin de votre aide, si il y a qlq un qui peux m'aider ca sera apprécie
voici mon probleme: je veux copier des dates et montants d'un écran et par la suite coller ces données dans des cellules d'une feuille Excel et ces données je veux les exploiter pour faire des calcules. le probleme que le format de ces données ne me permettent pas de faire mes calcules sans changement mineures à savoir:
Format date: 20091206 doit etre 2009-12-06 ou 2009-1206 doit etre 2009-12-06
Format montants: 1 345.54 doit etre 1 345,54$
no: 123456789 doit 123 456 789
la solution que j'ai trouvé pour les montants et d'enregistrer un macro qui permet de chercher dans ces cellules . et remplacer par , apres j ai affecter une bouton a ce macro...... ca marche mais pour les date et le no je ne sais pas quoi faire. mon objectif est d'éliminer toute operation de saisie ou manipulation c'est apres copier et coller une bouton commande peux faire la job ca sera geniale pour moi
j'envoi ci joint mon fichier avec feuille 1 calcul_1 la source et calcul_2 les resultats voulues
 

Pièces jointes

  • DateMontant.xls
    46.5 KB · Affichages: 88

Guiv

XLDnaute Occasionnel
Re : Macro changer de format de cellules

Bonjour et bienvenue sur le forum,

A mon humble avis:
123456789 doit 123 456 789

Il suffit de choisir "séparateur de milliers" dans Format de cellule / Nombre

1 345.54 doit etre 1 345,54$
pour le $, idem dans Format de cellule/Monétaire
et pour la virgule à la place du point, ça se paramètre dans "Options/International"

Pour le format de date, si les dates sont toujours dans les formats que tu indiques (exemple pour pour une date en A1)

Code:
=GAUCHE(SUBSTITUE(A1;"-";"");4) & "-"& STXT(SUBSTITUE(A1;"-";"");5;2) & "-" & DROITE(SUBSTITUE(A1;"-";"");2)

mais pour ce dernier point, je pense que les formulistes du forum auront quelque chose de plus élégant!

Bonne journée

Guiv
 

JNP

XLDnaute Barbatruc
Re : Macro changer de format de cellules

Bonjour Joe_Cooker, Guiv :),
Via macro, après sélection de la zone à transformer
Code:
Sub MiseEnForme()
Dim Cellule As Range, Traité As Boolean
For Each Cellule In Selection
If Cellule Like "*.*" Then Cellule = Format(Replace(Cellule, " ", ""), "# ### ##0,00$"): Traité = True
If Cellule Like "*-*" Then Cellule = Format(Right(Cellule, 2) & "/" & Mid(Cellule, 6, 2) _
    & "/" & Left(Cellule, 4), "dd/mm/yyyy"): Traité = True
If Cellule Like "2009*" Or Cellule Like "2010*" Then Cellule = Format(Right(Cellule, 2) & "/" & Mid(Cellule, 5, 2) _
    & "/" & Left(Cellule, 4), "dd/mm/yyyy"): Traité = True
If Cellule Like "*/*" Then Traité = True
If Traité = False And IsNumeric(Cellule) Then Cellule = Format(Cellule, "# ### ###")
Next
End Sub
mais quelque part, c'est de la bidouille, donc il peux y avoir des erreurs...
Bon courage :cool:
 
Dernière édition:

Joe_cooker

XLDnaute Nouveau
Re : Macro changer de format de cellules

Merci a vous
la 1er solution avec la formule me permet de changer les dates en format souhaitee et format monetaire avec format de cellule et .......mais mon objectif est de rendre le travail facile cad des que l'utilsateur colle les donne avec une bouton on peut changer les formats de tt les cellules concernees pour que je puisse les exploiter dans un autre feuilles je veux pas faire des manipulation mais j ai besoin que les cellules changent de valeur et de format car elles sont des variables dans un autre feuille.
En passant, merci pour la 2 proposition avec macro j ai pas encore essaye celle la, je suis un debutant dans les macro et tres motivee pour apprendre davantages. des explication de votre part seront tres apprecie mon prof.
je vais essayer ton code et je reviens la desus.
 

Discussions similaires

  • Question
Microsoft 365 Format heure
Réponses
11
Affichages
2 K

Statistiques des forums

Discussions
312 428
Messages
2 088 324
Membres
103 813
dernier inscrit
Lolo280277