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

Automatiser en VBA (via une macro ou une fct) la mise en forme d'une chaîne

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 !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonjour,

Je voudrais mettre automatiquement en forme une chaîne de caractères de la manière suivante :
supposons que la chaîne soit "AUTOMATIQUES".
La taille de la police est 20.
Je voudrais que la chaîne apparaisse ainsi : "A U T O M A T I Q U E S"
Soit 1 espace entre 2 caractère, avec pour taille de l'espace non pas 20 mais 8.

Merci d'avance pour toute aide.
 
Re : Automatiser en VBA (via une macro ou une fct) la mise en forme d'une chaîne

Bonsoir à tous
Une variante avec une procédure évènementielle :
Code:
[COLOR="DarkSlateGray"][B]Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&, x$, oCel As Range, oPlg As Range
   Set oPlg = Intersect(Target, Range("A1:B4,C9")) [COLOR="SeaGreen"]'Adapter la plage concernée par la procédure.[/COLOR]
   If Not oPlg Is Nothing Then
      For Each oCel In oPlg.Cells
         With oCel
            x = .Value
            For i = 1 To 2 * Len(x) - 2 Step 2
               x = Left$(x, i) & " " & Right$(x, Len(x) - i)
            Next
            Application.EnableEvents = False
            .Value = x
            Application.EnableEvents = True
         End With
      Next
   Set oPlg = Nothing
   End If
End Sub[/B][/COLOR]
ROGER2327
#3955


Mardi 10 Tatane 137 (Saints Pieds Nickelés, trinité, SQ)
5 Thermidor An CCXVIII
2010-W29-5T22:50:54Z
 
Re : Automatiser en VBA (via une macro ou une fct) la mise en forme d'une chaîne

Re, à tous,

Mon code était issu de l'enregistreur de macro; en faisant un peu le ménage dans ce code, la procédure a gagné en rapidité d'execution
Code:
Sub Macro1()
Application.ScreenUpdating = False
[C6] = ""
For i = 1 To Len([C4])
    [C6] = [C6] & Mid([C4], i, 1) & " "
Next i
For i = 1 To Len([C6]) Step 2
    [C6].Select
    With ActiveCell.Characters(Start:=i, Length:=1).Font
        .Size = 20
    End With
    With ActiveCell.Characters(Start:=i + 1, Length:=1).Font
        .Size = 8
    End With
Next i
Application.ScreenUpdating = True
End Sub


Bon week-end à tous
Philippe
 

Pièces jointes

Dernière édition:
- 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

Réponses
5
Affichages
749
Réponses
7
Affichages
829
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…