XL 2016 Convertir des valeurs monétaires format texte en valeurs monétaires françaises.

MCOTTEND

XLDnaute Nouveau
Bonjour à toutes et Tous,

Je coince sur un problème de VBA qui va paraître idiot à certains et certaines.
Je dois convertir les valeurs texte de forme 1234.6 en valeurs monétaires de forme 1234,60 € dans plus de 150 fichiers tel que celui joint en exemple.
Malgré de nombreux essais, je ne trouve pas de solution pour ce travail.
Est-ce quelqu'un du forum aurait une solution ?
Je vous remercie par avance de votre aide.
Cordialement.
Michel
 

Pièces jointes

  • Etat_Dépenses.xlsx
    28.2 KB · Affichages: 37

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Mcottend,
Un essai en PJ avec :
VB:
Sub Convertir()
    Application.ScreenUpdating = False
    With Columns("C:F")
        .NumberFormat = "#,##0.00 $"
        .Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        .Replace What:=",", Replacement:=".", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    End With
    [A1].Select
End Sub
 

Pièces jointes

  • Etat_Dépenses (1).xlsm
    34.2 KB · Affichages: 7

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à toutes et tous :),

Une autre tentative de traitement en masse.

J'ai considéré que les colonnes à formater sont toujours sur la première feuille et sont les colonnes D à F.
  • ouvrir dans Excel, un certain nombre de fichier à traiter. A partir de l'explorateur, on peut en ouvrir plusieurs à la fois (sélectionner les noms des fichiers puis cliquer-droit/Ouvrir)
  • ouvrir le fichier joint
  • cliquer sur le bouton Hop!
le code est dans module1.
 

Pièces jointes

  • MCOTTEND- formater colonnes- v2.xlsm
    21.2 KB · Affichages: 6
Dernière édition:

MCOTTEND

XLDnaute Nouveau
Bonjour,

En H2 et à tirer à droite et vers le bas
VB:
=SIERREUR(SUBSTITUE(D2;".";",")*1;"")

Cdlt
Merci pour votre aide et proposition.
Elle fonctionne très bien.
Bonjour,

En H2 et à tirer à droite et vers le bas
VB:
=SIERREUR(SUBSTITUE(D2;".";",")*1;"")

Cdlt
Merci de votre aide.
Je viens de tester votre proposition. Elle fonctionne à merveille.
Bonjour,

En H2 et à tirer à droite et vers le bas
VB:
=SIERREUR(SUBSTITUE(D2;".";",")*1;"")

Cdlt
Merci à vous.
Je viens de tester votre proposition. Elle fonctionne très bien.
Toutefois, je vais intégrer le script vba proposé par Barbatruc puisque derrière j'ai toute une mise en page déjà programmée qui elle ne m'avais pas posée problème.
Bonne soirée.
Cordialement.
Michel
 

MCOTTEND

XLDnaute Nouveau
Bonjour à tous,

@sylvanu le remplacement du point par... le point suffit :
VB:
Sub Convertir()
With Columns("C:F")
    .NumberFormat = "#,##0.00 $"
    .Replace ".", ".", xlPart
End With
End Sub
A+
Merci à vous.
Je viens de tester votre proposition. Elle fonctionne très bien.
Je vais l'intégrer dans mon script vba de mise en page que j'ai déjà programmé qui ne m'avais pas posé problème.
Bonne soirée.
Cordialement.
Michel
 

Discussions similaires