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
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
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+
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
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
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.
gilles06 > D'après tes exemples, il semble que tu veuilles appliquer ton padding à des nombres.
Deux cas se présentent donc:
- Remplissage à gauche > utiliser la fonction Format.
- Remplissage à droite (dont je ne vois pas bien l'utilité) > multiplication par une puissance de 10?
N'oubliez pas de cliquer surquand 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!
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
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
N'oubliez pas de cliquer surquand 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!
Partager