Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

compléter avec des espaces sans tronquer

  • Initiateur de la discussion Initiateur de la discussion C@thy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C@thy

XLDnaute Barbatruc
Bonjour le forum,

je cherche à compléter le titre de mes colonnes avec des espaces jusqu'à 30 caractères, puis à formater la largeur des mes colonnes ayant un titre sur cette largeur (celle des titres) et faire un renvoi à la ligne automatique lorsque ça dépasse 30 car.

j'ai écrit ceci :

Code:
Sub Macro1()
Range("A1", Range("A1").End(xlToRight)).Select
    For Each cel In Selection
        cel.Value = Left(cel.Value & Space(30), 30)
    Next cel
 Selection.Columns.AutoFit
 Selection.CurrentRegion.Select
    With Selection
        .VerticalAlignment = xlCenter
        .WrapText = True
    End With
End Sub
le problème c'est que ça me tronque lorsque le titre a + de 30 car, et ça, il ne faut pas, il faut un renvoi à la ligne auto.
Une idée pour corriger ma macro???

Merci à vous

C@thy
 
Re : compléter avec des espaces sans tronquer

Bonjour C@thy🙂

pas sûr d'avoir tout compris, mais regarde peut être ceci si cela peut t'aider à avancer....

Code:
With ActiveCell
    If Len(.Value) <= 30 Then
        .Value = .Value & Space(30 - Len(.Value))
    Else
        .Value = Mid(.Value, 1, 30) & vbLf & Mid(.Value, 31)
    End If
End With

bonne journée
@+

Edition remplacé le < par <=
 
Dernière édition:
Re : compléter avec des espaces sans tronquer

Bonjour C@thy 🙂,

Peut-être

Code:
Sub Macro1()
Dim Texte As String, T As String
Range("A1", Range("A1").End(xlToRight)).Select
    For Each cel In Selection
        Texte = cel.Value & Space(IIf(Len(cel.Value) > 30, 0, 30 - Len(cel.Value)))
        If Len(Texte) > 30 Then
            T = ""
            For i = 1 To Len(Texte) \ 30
                T = T & Mid(Texte, (i - 1) * 30 + 1, 30) & Chr(10)
            Next i
            Texte = Left(T, Len(T) - 1)
        End If
        cel.Value = Texte
    Next cel
 Selection.Columns.AutoFit
 Selection.CurrentRegion.Select
    With Selection
        .VerticalAlignment = xlCenter
        .WrapText = True
    End With
End Sub

Edit : bing, Bonjour Pierrot 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

J
Réponses
22
Affichages
3 K
jui42
J
Réponses
8
Affichages
1 K
J
Réponses
9
Affichages
1 K
J
Réponses
1
Affichages
1 K
V
Réponses
2
Affichages
2 K
vynmarius
V
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…