IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Format d'un nombre avec les zéros devant


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Points : 9
    Points
    9
    Par défaut Format d'un nombre avec les zéros devant
    Bonjour,

    dans mon script je récupère une valeur (nombre) sur 7 caractères. Hors si mon chiffre est le 737 j'aurais comme résultat 737.
    Je souhaiterais que l'affichage du MontantHT s'affiche toujours sur 7 caractères soit 0000737.

    Pouvez-vous m'aidez je sèche...

    voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    '--- Chargement du fichier en lecture ---
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set fread = Fso.OpenTextFile("\\****\administration\****\Statistique\statol\statol", ForReading)
     
        Set fwrite = fso.OpenTextFile("\\****\administration\****\Statistique\statol\statol2", ForWriting,true)
    '--- Boucle de lecture du fichier AR de l'AS400 ---
         while Not fread.AtEndOfStream
    '--- Lecture ligne à ligne ---
                  ligne= fread.ReadLine
                  Client=Mid(ligne,1,11)
                  Rayon=Mid(ligne,13,1)
                  Srayon=Mid(ligne,15,2)
                  If Mid(Ligne,18,3)=" " then
                     MontantHT=Mid(ligne,26,7)
                     MontantRev=Mid(ligne,34,7)
                     MontantTTC=Mid(ligne,42,7)
                     fwrite.write Client & Rayon & Srayon & MontantHT & MontantRev & MontantTTC & chr(10)

    merci par avance

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 198
    Points
    17 198
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function FormatSpc(Quoi)
    FormatSpc = String(7 - Len(Quoi), "0") & Quoi
    End Function
     
    MsgBox FormatSpc(123)
    Donc pour toi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    '. . . .
                  If Mid(Ligne,18,3)=" " then
                     MontantHT=Mid(ligne,26,7)
                     MontantHT= FormatSpc(MontantHT)
    ' ou bien plus court
                     MontantHT= FormatSpc(Mid(ligne,26,7))
    '. . . .
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre confirmé Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Points : 582
    Points
    582
    Par défaut
    Bonjour,

    Une autre technique, si ça peut t'être utile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MontantHT = Right("0000000" & MontantHT, 7)
    Donc pour toi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MontantHT=  Right("0000000" & Mid(ligne,26,7), 7)

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    J'ai essayé avec la technique à pitchalov mais voici le résultat

    00701201003100 717 538 0 858
    00701201003101 17966 9350 0 21488
    00701201003102 13663 8591 0 16341
    00701201003103 16946 10374 0 20267
    00701201003104 15350 9001 0 18359
    00701201003105 39422 23930 0 47149
    00701201003106 10714 6171 0 12814
    00701201003107 8793 5562 0 10417
    00701201003108 32892 23823 0 38877
    00701201003109 -2020 80 0 -2416
    00701201003200003 253 154 0 302
    alors que j'aurais souhaité 000071700053800000858 par exmple pour la première ligne.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    J'ai le même resultat avec la technique de Progelec....

    Avant :
    00701201003100 717 538 858
    00701201003101 17966 9350 21488
    00701201003102 13663 8591 16341
    00701201003103 16946 10374 20267
    00701201003104 15350 9001 18359


    Apres:
    00701201003100 717 538 0 858
    00701201003101 17966 9350 0 21488
    00701201003102 13663 8591 0 16341
    00701201003103 16946 10374 0 20267
    00701201003104 15350 9001 0 18359

  6. #6
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 198
    Points
    17 198
    Par défaut
    Ton énoncé au premier message n’est pas le même que tes demandes suivantes, que je n’arrive d’ailleurs pas à comprendre.
    A moins que dans 00701201003100 717 538 858 tu ne veuilles retenir que les 3 derniers groupes de 3 chiffres, 717, 538, 858 ,auquel tu veux ajouter 4 zéro ?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Si mon énoncé est la même ou alors je m'étais mal exprimé.

    Dans mon script je récupère les 7 caractères qui forme le montantHT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MontantHT=Mid(ligne,26,7)
    Mais si mon MontantHT est inférieur à 7 caractères comme 717 par exemple, je souhaiterais tout de même garder mon chiffre sous 7 caractères soit 0000717

    J'aurais donc un resultat du type :

    000071700005380000858

    au lieu de :

    717 538 858.

    J'espère mettre bien expliqué

  8. #8
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 198
    Points
    17 198
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Function Result(Expression)
    Dim Decoupes
    Decoupes = Split(Expression)
    Result = String(7 - Len(Decoupes(1)), "0") & Decoupes(1)
    Result = Result & String(7 - Len(Decoupes(2)), "0") & Decoupes(2)
    Result = Result & String(7 - Len(Decoupes(3)), "0") & Decoupes(3)
     
    End Function
     
     
    dim LeChiffrage
    LeChiffrage = "00701201003100 717 538 858"
    msgbox Result(LeChiffrage)
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  9. #9
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    J'ai presque réussi à faire ce que je souhaitait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                     MontantHT = Ltrim(Mid(ligne,26,7))
                     nb =(7 - Len(MontantHT))
                     MontantHT = String(nb, "0") & MontantHT
    mon seul soucis est au niveau des chiffres négatif...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    00701201003209008  000029	
    00701201003209009  000109	
    00701201003209099  0-2197	
    0070120100330000300000031	
    0070120100330000302000009
    je voudrais que 0-2197 soit écrit comme ceci -02197

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    J'avance j'avance ...



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    MontantHT = Ltrim(Mid(ligne,26,7))
                     nb =(7 - Len(MontantHT))
                     MontantHT = String(nb, "0") & MontantHT
                     pos=(InStr(1,MontantHT,"-"))
                     If pos <> 0 then
                     MontantHT=(Replace(MontantHT,"0","-",1,1))
     
                     End If
    voici le résultat obtenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    00701201003108     032892	
    00701201003109     --2020	
    00701201003200003  000253	
    00701201003200009  000464
    Ensuite je supprime le signe - en trop mais la j'ai un problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MontantHT=(Replace(MontantHT,"-","0",pos))
    Car ce code supprime le signe - à la position 2 (pos) mais automatiquement il supprime les caractère à gauche.
    Resultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    00701201003108     032892	
    00701201003109     02020	
    00701201003200003  000253	
    00701201003200009  000464
    comment est-ce que je peux garder mon 1er caractères??

  11. #11
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 198
    Points
    17 198
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     MontantHT = Ltrim(Mid(ligne,26,7))
                     nb =(7 - Len(MontantHT))
                    If left(MontantHT,1) = "-" then
                            MontantHT = replace(MontantHT,"-","")
                            nb = nb-1
                            MontantHT = "-" & String(nb - Len(MontantHT), "0") & MontantHT
                            Else
                            MontantHT = String(nb, "0") & MontantHT
                     End If
    Peut être.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  12. #12
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    J'ai trouvé !!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                     MontantTTC = Ltrim(Mid(ligne,42,7))
                     pos=(InStr(1,MontantTTC,"-"))
                     nb =(7 - Len(MontantTTC))
                     MontantTTC = String(nb, "0") & MontantTTC
                     If pos <> 0 then
                        MontantTTC = replace(MontantTTC,"-","0")
                        MontantTTC=(Replace(MontantTTC,"0","-",1,1))
                     End If
    Ça fait plaisir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formater chiffres à 6 nombres en conservant les zéros devant
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 21/06/2011, 09h02
  2. Comment supprimer les "zéros" devant une variable
    Par solorac dans le forum Excel
    Réponses: 4
    Dernier message: 16/05/2008, 23h14
  3. Réponses: 9
    Dernier message: 09/04/2008, 18h30
  4. Réponses: 7
    Dernier message: 20/12/2006, 18h18
  5. Réponses: 9
    Dernier message: 20/03/2006, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo