Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro Pour Format

  • Initiateur de la discussion Initiateur de la discussion Cazinos
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Cazinos

XLDnaute Occasionnel
Bonsoir le forum,

Au départ mon fichier arrive avec ce format
la macro doit remplacer le point par une vigule
le problème c'est que malgré le changement
mes montants restent comme ça

0000000003052,96
0000000005729,50
0000000005155,41
0000000003493,70

merci pour le correction de cette macro


Sub Formatage()

Columns("c:d").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Style = "Comma"
End Sub
 
Re : Macro Pour Format

Bonsoir


En utilisant le conseil de RENAUDER

Code:
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 17/04/2008 par 
'
    Selection.TextToColumns Range("A1"), , , , , , , , True, "."
    Range("C1").FormulaR1C1 = "=(RC[-2]&"",""&RC[-1])*1"
    Range("C1").AutoFill Destination:=Range("C1:C4")
    Range("C1:C4").Copy
    Selection.PasteSpecial Paste:=xlValues
    Application.CutCopyMode = False
    Columns("B:C").Delete Shift:=xlToLeft
End Sub
 
Dernière édition:
Re : Macro Pour Format

Re



Ou utilises ce code-ci (en l'adaptant à tes besoins)

Code:
Sub Macro4()
'
' Macro4 Macro
' Macro enregistrée le 17/04/2008 par
'

Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False

Range("IV65000") = "1"
Range("IV65000").Copy
Range("C1:D16").PasteSpecial Paste:=xlAll, Operation:=xlMultiply, SkipBlanks:= _
False, Transpose:=False
End Sub
 
Re : Macro Pour Format

Re


Si quelqu'un passe par là

Pourra-t-il, svp, me dire pourquoi ce code ne fonctionne pas

Code:
Sub Macro4()
' Macro enregistrée le 17/04/2008 par
Range("A1").Value = 1
With Columns("C:D").SpecialCells(xlCellTypeConstants, 23)
    .Replace ".", ",", xlPart, xlByRows, False
Range("A1").Copy
.Select
Selection.PasteSpecial xlAll, xlMultiply
End With
End Sub

Alors que si on fait la manipulation manuellement cela fonctionne ??

Cazinos: sur mon poste, avec des cellules au format texte
Code:
Sub replace_OK()
Columns("C:D").SpecialCells(xlCellTypeConstants, 23)
    .Replace ".", ",", xlPart, xlByRows, False
End Sub

transforme au format numérique les données
(Excel 2000)
 
Re : Macro Pour Format

Bonjour à tous

regarde le code ci dessous, pour cnveertir la colonne A :

Code:
Range("A:A").TextToColumns Destination:=Range("A1"), DecimalSeparator:=","

attention, sauf erreur de ma part, tu ne peux convertir qu'une colonne à la fois, il te faudra donc doubler cette ligne dans ton code en modifiant les références se rapportant à la colonne.

bonne journée
@+
 
Re : Macro Pour Format

Bonjour à tous


Pierrot93: merci de ton aide

Ce que je ne comprends pas , c'est qu'en faisant (sans macro)
1) Sélection des colonnes C et D (seulement les cellues non vides)
2) Edition Remplacer . par ,
4) Saisie de 1 dans une cellule
5)Edition Copier
6) Sélection des cellules non vides de la colonne C et D
7)Edition Collage Spécial / Multiplication

Cela fonctionne sans problème.

Mais la même chose en VBA ne fonctionne pas

Ca devrait non ?

EDITION: même modifiée ainsi cela ne fonctionne pas
Code:
Sub Macro4_bis()' le point est remplacé par la virgule mais les 0000 reste
' Macro enregistrée le 17/04/2008 par
Range("A1").Value = 1
With Columns("C:D").SpecialCells(xlCellTypeConstants, 23)
    .Replace ".", ",", xlPart, xlByRows, False
End With
Range("A1").Copy
Columns("C:C").SpecialCells(xlCellTypeConstants, 23).PasteSpecial xlAll, xlMultiply
Range("A1").Copy
Columns("D:D").SpecialCells(xlCellTypeConstants, 23).PasteSpecial xlAll, xlMultiply
End Sub
Code:
Sub test_pierrot93() ' le point n'est pas remplacé par la virgule
Columns("C:C").SpecialCells(xlCellTypeConstants, 23).TextToColumns Destination:=Range("A1"), DecimalSeparator:=","
Columns("D:D").SpecialCells(xlCellTypeConstants, 23).TextToColumns Destination:=Range("B1"), DecimalSeparator:=","
End Sub
 
Dernière édition:
Re : Macro Pour Format

Re

oui, classique Jean-Marie, pour que cela fonctionne il me semble qu'il faut ensuite faire une boucle sur toutes les cellules, et provoquer la validation de la cellule... Peut être un autre moyen mais connais pas.... Quand au pourquoi du comment.... peut être une recherche sur le forum ou sur le net... mais je suis sur que tu l'as déjà effectuée... te souhaitant une bonne journée
@+
 
Re : Macro Pour Format

Re

tu dis :
Sub test_pierrot93() ' le point n'est pas remplacé par la virgule

attention, dans la ligne de code donnée, je remplace la virgule par le point, modifies le séparateur décimal pour faire l'inverse. aarf j'aurais du le préciser, désolé perso je travaille avec le point en séparateur...

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
347
Réponses
2
Affichages
589
A
Réponses
4
Affichages
669
A
E
Réponses
5
Affichages
2 K
EDI9366
E
Réponses
3
Affichages
640
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…