Pb format remplacement point par virgule VBA

Bonjour,

Je commence à découvrir les possibilités de VBA, ce m'enchantent.

Je suis confronté à un petit problème.

Je dois traiter chaque jour une colonne de données en remplaçant les point par des virgules. Lorsque je le fais par le menu rechercher remplacer, la case qui affiche par exemple 115.0000 se transforme en 115 ce qui est le fonctionnement que je recherche.

Si je passe par VBA, la case se transforme en 1150000, ce qui ne me convient pas.

Quelqu'un aurait-il une explication?

Merci

Salut le forum

Pourrais-tu montrer le code VBA que tu utilises ?

Mytå

Ok, voici le code.

La première partie me sert à trier la colonne E par ordre décroissant et étendant la sélection.

Sub triage()

Columns("E:E").Select

ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear

ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("E1"), _

SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

With ActiveWorkbook.ActiveSheet.Sort

.SetRange Range("A2:F1596")

.Header = xlNo

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

Columns("F:F").Select

Dim X As Long

For X = 2 To Range("F65536").End(xlUp).Row

Range("F" & X) = Replace(Range("F" & X), ".", ",")

Next X

End Sub

Merci

Bonjour

Pas d'explication mais un code qui fonctionne

Sub remplace()
  Range("A1") = Replace(Range("A1"), ".", ",") * 1

Juste à l'adapter à ton code

Super,

Je vais essayer

Merci encore


J'ai essayé, ça fonctionne à merveille.

J'aurais pu chercher longtemps, tout ça juste avec un "* 1", mystérieux?

Merci beaucoup, bonne nuit

Bonjour

la partie de ton code

Dim X As Long

  For X = 2 To Range("F" & Rows.Count).End(xlUp).Row
    Range("F" & X) = Replace(Range("F" & X), ".", ",") * 1
  Next X

End Sub

Merci bien, ca va me simplifier la vie.

J'ai 25 fichiers de ce type à traiter par jour, c'est bienvenue

Bonne soirée

Bonjour et merci pour cette solution.

J'aimerai étendre le remplacement de point par des virgules à toute ma feuille de calcul. Je souhaitais s'il y avait une façon de faire utilisant autre chose que l’enchaînement de boucles afin de balayer chaque colonne.

Merci d'avance.

Bonjour,

Une proposition à étudier et à adapter (équivalent à Données / Convertir dans le ruban).

Cdlt.

Option Explicit

Public Sub DEMO()
Dim ws As Worksheet
Dim rng As Range
Dim lCol As Long

    Application.ScreenUpdating = False
    Set ws = ActiveSheet
    Set rng = ws.Cells(1).CurrentRegion
    For lCol = 1 To rng.Columns.Count
        rng.Columns(lCol).TextToColumns _
                DataType:=xlDelimited, _
                FieldInfo:=Array(1, 1), _
                DecimalSeparator:="."
    Next lCol

    Set rng = Nothing: Set ws = Nothing

End Sub

Bonjour,

J'ai des masses de données à traiter. Les fichiers sont au format texte (séparateur Tabulation) et contiennent des nombres et du texte. Je veux les convertir au format Excel avec au passage un remplacement du point par une virgule... tout se passe bien sauf que :

Dans les fichiers Excel, j'ai bien la virgule mais Excel considère que c'est du texte (mauvais alignement, pas d'opération possible, ...)

J'ai essayé de jouer avec les formats mais ils sont appliqués aussi sur les cellules contenant du texte...

Merci d'avance pour votre aide

Sub OpenTxtSaveXls(F_in As String, F_out As String)
    ' ouvre fichier texte
    Workbooks.OpenText Filename:= _
        F_in _
        , Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True
    'remplace . par ,
    Range("C15:V3000").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

    ' sauve au format excel
    ActiveWorkbook.SaveAs Filename:=F_out, FileFormat:=xlWorkbookDefault, CreateBackup:=False
    ActiveWindow.Close
End Sub
Rechercher des sujets similaires à "format remplacement point virgule vba"