VBA / Ajouter la virgule après 4 chiffres (format nombre)

Bonjour à tous,

merci de m'aider

J'ai un code (Extraction des données à partir d'un fichier text par ''position'' ). qui marche bien, sauf la colonne du Montant.

Exemple :
20000000PYD00000000052193001601230313040123040123
20000005KWI00000000721935001601233132040123040123
20000000ZSE00000000005000001601230014040123040123

les montants doivent afficher comme suite : 521.93 / 7219.35 / 50.00

    Dim myFile As String, text As String
    Dim rw As Long, cl As Long

    myFile = Application.GetOpenFilename()
    rw = 5
    cl = 1

        Open myFile For Input As #1
        While Not EOF(1)
            Line Input #1, text
            If Left(text, 2) = "20" Then
                Cells(rw, cl + 1) = Mid(text, 47, 3)
                Cells(rw, cl + 2) = Mid(text, 9, 3)
                Cells(rw, cl + 3) = Format(Mid(text, 20, 6), "0000.00") 'Format de nombre ####.## La virgule afficher après 4 numéro
                Cells(rw, cl + 4) = Format(Mid(text, 28, 6), "00\/00\/00") 'Date Format Type DD/MM/YY
                rw = rw + 1
                cl = cl + 0
                End If

        Wend
    Close #1

End Sub
7extrait.xlsm (24.09 Ko)
16test.txt (865.00 Octets)



Bonjour,

Remplacez cette ligne:

Cells(rw, cl + 3) = Format(Mid(text, 20, 6), "0000.00")

par celle-ci:

Cells(rw, cl + 3) = Format(Mid(text, 20, 6) * 0.01, "#0.00") 

Cdlt

Merci de passer en résolu si la réponse vous convient.

Bonjour,

en fait tu dois diviser ton nombre par 100 et le format voulu doit déjà être dans ta colonne.
La division force en format numérique mais il est préférable de convertir explicitement le type de donnée voulu avec Cdbl().
Cells(rw, cl + 3) = CDbl(Mid(text, 20, 6) / 100)

Le format numérique 0,00 voulu doit être présent dans la colonne

La date doit aussi être numérique, le format Date voulu doit être présent dans le tableau. Tu ne dois pas la mettre en texte.
Visuellement c'est la même chose, mais pour excel ça reste un texte qui sera mal trié.
Cells(rw, cl + 4) = CDate(Format(Mid(text, 28, 6), "00\/00\/00"))
eric

10extrait.xlsm (23.49 Ko)

Merci beaucoup pour votre aide.

Rechercher des sujets similaires à "vba ajouter virgule chiffres format nombre"