OVH Cloud OVH Cloud

Completer avec des espaces...

3 réponses
Avatar
Kevin
J'ai des cellules qui doivent faire un certain nombre de caracteres.
Si ce nombre n'est pas atteint, il faut ajouter autant d'espaces blancs que
necessaire dans la cellule :
Comment faire ?
Qqu'un a-t-il une soluce svp ?
Merci

3 réponses

Avatar
GVentre
Bonjour Kevin,

J'ai déjà eu besoin de ça pour des colonnes entières, voici le code que
j'ai utilisé

Sub LongChaine()

Dim Longueur, Lastrow, index As Byte, Cell, WorkZone As Range, _
Column, LongString As String
On Error Resume Next
' Boite de dialogue "colonne"
Column = InputBox("Saisir la colonne à modifier", "Colonne")
If IsEmpty(Column) Then Exit Sub
' Boite de dialogue "Longueur"
Longueur = InputBox("Saisir la longueur de la chaîne", "Longueur")
If IsEmpty(Longueur) Then Exit Sub
' Dernière ligne de la colonne
Lastrow = Range(Column & "65536").End(xlUp).Row
' Zone de travail
Set WorkZone = Range(Column & "1:" & Column & Lastrow)
' Mise au format texte
WorkZone.NumberFormat = "@"
' Initialisation de la variable LongString
LongString = ""
' Génération du modèle de longueur
For index = 0 To Longueur
LongString = LongString & "1"
Next index
' Ajout des espaces dans la chaîne de caractère de chaque cellule
For Each Cell In WorkZone
LSet LongString = Cell.Value
Cell.Value = LongString
Next Cell
End Sub

Avec cette macro, tu indiques la colonne qui doit subir le changement,
puis la longueur souhaité.
Le nombre d'espace nécessaire est rajouté à chaque cellule en fonction
de sa longueur afin d'atteindre la longueur souhaité.
A adapter selon ton besoin,

Cordialement,
GVentre



J'ai des cellules qui doivent faire un certain nombre de caracteres.
Si ce nombre n'est pas atteint, il faut ajouter autant d'espaces blancs que
necessaire dans la cellule :
Comment faire ?
Qqu'un a-t-il une soluce svp ?
Merci






Avatar
AV
Dans le module de la feuille et pour la plage A1:A10 :

Private Sub Worksheet_Change(ByVal zz As Range)
On Error Resume Next
x = 50
If Intersect(zz, [A1:A10]) Is Nothing Then Exit Sub
If Len(zz) < x Then
Application.EnableEvents = False
zz.NumberFormat = "@"
zz.Value = zz & Space(x - Len(zz))
Application.EnableEvents = True
End If
End Sub

AV
Avatar
Franck
Bonjour

Sub toto()

Range("A1:B5").Select
'A remplacer par la plage de travail

For each c in Selection
c.Value=c.Value & Application.Rept(" ",10-Len(c.Value))

End Sub

Remaplacer 10 par la longueur de chaine voulue


"Kevin" wrote:

J'ai des cellules qui doivent faire un certain nombre de caracteres.
Si ce nombre n'est pas atteint, il faut ajouter autant d'espaces blancs que
necessaire dans la cellule :
Comment faire ?
Qqu'un a-t-il une soluce svp ?
Merci