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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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
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
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
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
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
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