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

Macros et VBA Excel Discussion :

Padding (right or Left)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Par défaut Padding (right or Left)
    Bonjour a tous,

    J'aimerai savoir si sous Excel ou VBA on sait faire du pading (droite ou gauche) ?
    J'ai essaye de chercher, mais je n'ai rien trouve.

    Par avance, merci de votre aide

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut
    ça signifie quoi "Pading" ? Si tu n'as rien trouvé, c'est peut-être
    que le terme n'existe pas dans Excel, mais sa fonction existe sans doute sous une autre dénomination
    A+

  3. #3
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Si tu veux parler du padleft et du padright du .net, il n'y a pas d'équivalence dans Excel (du moins pas que je connaisse)

    Par contre, tu peux faire quelque chose comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim strCaractere As String
     
    strCaractere = "000000"
     
    MsgBox Left(strCaractere, 6 - Len(Range("A1").Value)) & Range("A1").Value

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonsoir ucfoutu,

    Lset comble la longueur avec des espaces.
    PadLeft permt de choisir le caractère de remplissage.

    Dans le code que je propose j'ai choisi le 0

    gilles06 peux tu nous eclaircir sur ce que pading doit faire

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Par défaut
    Bonjour,

    Desole de repondre tardivement, mais ce que je cherche c'est de padder (cad) de combler a droite ou a gauche avec un charactere choisit. Si mon text fait 3 characteres et que je veuille toujours avoir un character final a 5 characteres, je le pad (desole mais c'est le mot anglais). En Francais ca doit etre combler par ..
    ex: toto= 123 si je le pad a gauche par des "0" sur 5 characteres se sera "00123" et a droite "12300". Je peux choisir le charactere de padding et la longueur. C'est bien pratique quand on veut travailler avec des longueurs fixes.

    Je vais regarder les reponses, mais il me semble avoir vu la reponse.

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    gilles06 > D'après tes exemples, il semble que tu veuilles appliquer ton padding à des nombres.
    Deux cas se présentent donc:
    1. Remplissage à gauche > utiliser la fonction Format.
    2. Remplissage à droite (dont je ne vois pas bien l'utilité) > multiplication par une puissance de 10?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Par défaut
    Merci Alain et merci a tout le monde,

    C'est exact, j'utilise plus le padding a gauche qu'a droite. En fait je travaille sur des nombres de longueur fixe. C'est la raison pour laquelle
    Par contre la comment utilise t-on la fonction Format en VBA ?

    Merci pour tout

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Voici une fonction (et une procédure de test qui en montre l'utilisation) qui fera probablement ton bonheur.

    C'est bientôt Noel!

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    Function Pad(ByVal Value As Variant, ByVal MinLen As Integer, _
                    Optional ByVal PadChar As Variant, _
                    Optional ByVal ToRight As Variant) As String
    '   Description
    '       Cette fonction remplit, à gauche ou à droite,
    '           une valeur 'Value' à l'aide d'un caractère déterminé
    '           de façon à ce que le résultat occupe un nombre
    '           déterminé de caractères.
    '
    '   Arguments
    '       Value   : (Var-2 à 8, Var-11, Var-14, Var-17) Valeur à formater.
    '       MinLen  : Longueur final minimum du résultat, en caractères. Max = 65400
    '       PadChar : (Var-8 String) Caractère de remplissage (Optionel). Si non précisé,
    '                   un espace Chr(32) est utilisé.
    '       ToRight : (Var-11 Boolean)(Optionel) Indique si le remplissage s'effectue à
    '                   droite de la valeur. Par défaut, le remplissage s'effectue à gauche.
    '                   droite de la valeur.
    '
    '   Retour
    '       Cette fonction renvoit un String contenant la valeur coussinée avec
    '           le caractère précisé. Si la fonction échoue, elle renvoit un String vide.
    ' vartype
        Dim c As String
        Dim r As Boolean
        Dim l As Long
     
        If VarType(Value) = vbArray Or VarType(Value) = vbDataObject _
                                    Or VarType(Value) = vbEmpty _
                                    Or VarType(Value) = vbError _
                                    Or VarType(Value) = vbNull _
                                    Or VarType(Value) = vbObject _
                                    Or VarType(Value) = vbUserDefinedType Then Exit Function
     
        If Not IsMissing(PadChar) Then
            If Not IsArray(PadChar) And Not IsDate(PadChar) _
                                    And Not IsEmpty(PadChar) _
                                    And Not IsError(PadChar) _
                                    And Not IsNull(PadChar) _
                                    And Not IsObject(PadChar) Then
                If IsNumeric(PadChar) Then
                    c = CStr(PadChar)
                Else
                    c = PadChar
                End If
     
                If Len(c) > 1 Then Exit Function
            Else
                Exit Function
            End If
        Else
            c = Chr(32)
        End If
     
        If Not IsMissing(ToRight) Then
            r = ToRight
        End If
     
        l = Len(CStr(Value))
     
        If l > 65399 Then Exit Function
     
        If r Then
            Pad = CStr(Value) & String(MinLen - l, c)
        Else
            Pad = String(MinLen - l, c) & CStr(Value)
        End If
    End Function
     
    Sub PadTester()
        Dim b As Boolean
        Dim d As Date
        Dim l As Long
        Dim s As String
        Dim lc As Long
     
        d = Now
        l = 656689
        s = "Bonjour"
        lc = 9
     
        MsgBox Pad(s, 30, lc)
        MsgBox Pad(s, 30, , True)
        MsgBox Pad(b, 30)
        MsgBox Pad(b, 30, lc, True)
        MsgBox Pad(d, 30)
        MsgBox Pad(d, 30, , True)
        MsgBox Pad(l, 30, lc)
        MsgBox Pad(l, 30, , True)
    End Sub

  9. #9
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par gilles06 Voir le message
    Par contre la comment utilise t-on la fonction Format en VBA ?
    On tape le mot format puis on tape sur la touche F1.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. Le padding-right me fait un caprice !
    Par Lenezir dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 23/01/2009, 18h03
  2. [Padding 0] Remove left padding zero
    Par rgomes dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 05/05/2007, 20h41
  3. right et left incompatibles pour IE
    Par pitchalov dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 13/04/2007, 15h53
  4. Réponses: 4
    Dernier message: 10/12/2006, 18h33
  5. Réponses: 2
    Dernier message: 01/05/2004, 21h15

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