IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Mettre taille police de chaine caracrtere entre parentheses


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Resp Orga
    Inscrit en
    Juin 2024
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Resp Orga
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2024
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Mettre taille police de chaine caracrtere entre parentheses
    Bonjour,

    J'ai un fichier où toutes les cellules d'une même colonne comportent une partie de leur texte entre parenthèses.
    Je voudrais mettre toutes ces parties entre parenthèse dans une certaine taille de police.
    En exécutant la macro colonne par colonne (car toutes les colonnes n'ont pas forcement de texte entre parenthèses)

    Merci pour votre aide !

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 237
    Points : 5 603
    Points
    5 603
    Par défaut
    Bonjour,

    Voilà, j'ai posé votre question à Mistral, qui m'a vraiment donné une bonne réponse:


    Citation Envoyé par moi
    J'ai un fichier Excel où toutes les cellules d'une même colonne comportent une partie de leur texte entre parenthèses.
    Je voudrais mettre toutes ces parties entre parenthèse dans une certaine taille de police.
    En exécutant la macro colonne par colonne (car toutes les colonnes n'ont pas forcement de texte entre parenthèses)

    Citation Envoyé par Mistral
    Vous pouvez utiliser une macro VBA pour automatiser cette tâche. Voici un exemple de code qui parcourt chaque cellule d'une colonne spécifiée, recherche du texte entre parenthèses et le met en gras en utilisant une taille de police spécifique.

    Avant d'utiliser ce code, assurez-vous d'avoir activé l'onglet Développeur dans Excel en suivant ces étapes :

    1. Cliquez sur Fichier.
    2. Cliquez sur Options.
    3. Cliquez sur Personnaliser le ruban.
    4. Dans la liste de droite, cochez la case Développeur, puis cliquez sur OK.

    Ensuite, suivez ces étapes pour créer et exécuter la macro :

    • 1. Cliquez sur l'onglet Développeur.
    • 2. Cliquez sur Visual Basic.
    • 3. Dans l'Éditeur Visual Basic, cliquez sur Insérer > Module.
    • 4. Copiez et collez le code suivant dans le module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    ```vba
    Sub FormatParentheses()
        Dim ws As Worksheet
        Dim rng As Range
        Dim cell As Range
        Dim parenthesesText As String
        Dim startPos As Integer
        Dim endPos As Integer
     
        ' Modifiez ces valeurs en fonction de vos besoins
        Const columnNumber As Integer = 1
        Const fontSize As Integer = 8
     
        Set ws = ActiveSheet
        Set rng = ws.Columns(columnNumber)
     
        For Each cell In rng.Cells
            If Not IsEmpty(cell) Then
                startPos = InStr(1, cell.Value, "(")
                If startPos > 0 Then
                    endPos = InStr(startPos, cell.Value, ")")
                    If endPos > startPos Then
                        parenthesesText = Mid(cell.Value, startPos, endPos - startPos + 1)
                        cell.Characters(start:=startPos, Length:=Len(parenthesesText)).Font.Size = fontSize
                    End If
                End If
            End If
        Next cell
    End Sub
    ```
    • 5. Modifiez les valeurs de `columnNumber` et `fontSize` en fonction de vos besoins.
    • 6. Appuyez sur Ctrl+S pour enregistrer le module.
    • 7. Fermez l'Éditeur Visual Basic.
    • 8. Dans Excel, cliquez sur l'onglet Développeur.
    • 9. Cliquez sur Macros.
    • 10. Sélectionnez la macro FormatParentheses et cliquez sur Exécuter.

    Cette macro devrait mettre en gras et ajuster la taille de police du texte entre parenthèses dans la colonne spécifiée. Vous pouvez exécuter cette macro colonne par colonne en modifiant la valeur de `columnNumber`.
    Il vous sera facile d'adapter cela pour traiter chaque colonne.

    Bien cordialement.

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2002
    Messages
    836
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 836
    Points : 1 320
    Points
    1 320
    Par défaut
    Salut, voici une autre proposition. Au lieu d'écrire la colonne et taille de police en dur dans le code de la macro, je sélectionne la ou les colonnes en cliquant sur l'entête des colonnes(contigües ou pas) et lance la macro qui demandera la taille de police via un inputbox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub ChangeFontSize()
         Dim selectedColumn As Range
        Dim cell As Range
        Dim cellText As String
        Dim segments As Variant
        Dim i As Integer
        Dim fontSize As Integer
     
        Set selectedColumn = Selection.EntireColumn
     
        fontSize = Application.InputBox("Entrez la taille de police pour le texte entre parenthèses", Type:=1)
     
        For Each cell In selectedColumn.Cells
            If cell.Value <> "" Then
                cellText = cell.Value
                segments = Split(cellText, "(")
     
                If UBound(segments) > 0 Then
                    Dim startPos As Long
                    startPos = 1
     
                    For i = LBound(segments) To UBound(segments)
                        If i > LBound(segments) Then
                            Dim subSegments As Variant
                            subSegments = Split(segments(i), ")")
     
        ' Modifier la taille de police pour le texte entre parenthèses
                            If UBound(subSegments) > 0 Then
                                With cell.Characters(start:=startPos, Length:=Len(subSegments(0)) + 2).Font
                                    .Size = fontSize
                                End With
                                startPos = startPos + Len(subSegments(0)) + 2
                                segments(i) = subSegments(1)
                            End If
                        End If
                        startPos = startPos + Len(segments(i))
                    Next i
                End If
            End If
        Next cell
     
    End Sub

Discussions similaires

  1. Mettre une macro variable entre parenthèses
    Par aminao dans le forum Macro
    Réponses: 1
    Dernier message: 06/12/2011, 19h45
  2. extraction d'une chaine entre parenthéses
    Par gastoncs dans le forum VB.NET
    Réponses: 2
    Dernier message: 15/11/2011, 11h08
  3. Extraire une chaine entre parenthèse
    Par flo73 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 16/10/2010, 12h14
  4. [RegEx] Extraction avec chaine entre parenthese - preg_match
    Par f.lam dans le forum Langage
    Réponses: 1
    Dernier message: 14/10/2008, 14h33
  5. Supprimer une chaine entre parenthese sur un select
    Par sebg42 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 26/06/2007, 19h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo