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
Retour