KutoolsforOffice — Une solution unique, cinq outils puissants.Faire plus avec moins d'efforts.Soldes de mars : 20 % de réduction

Comment convertir une chaîne de texte en majuscule en début de mot dans Excel, tout en appliquant des exceptions ?

AuteurXiaoyang Date de modification

Dans Excel, vous pouvez appliquer la fonction NOMPROPRE pour convertir facilement des chaînes de texte en Majuscule en début de mot, mais il arrive parfois que vous deviez exclure certains mots spécifiques lors de cette conversion, comme le montre la capture d’écran suivante. Dans cet article, je vais vous présenter quelques astuces rapides pour résoudre ce problème dans Excel.

convertir une chaîne de texte en majuscules/minuscules avec exceptions

Convertir des chaînes de texte en Majuscule en début de mot avec des exceptions à l’aide d’une formule

Convertir des chaînes de texte en Majuscule en début de mot avec des exceptions à l’aide d’un code VBA


Convertir des chaînes de texte en Majuscule en début de mot avec des exceptions à l’aide d’une formule

La formule suivante vous permettra d’accomplir cette tâche en un clin d’œil. Voici la marche à suivre :

Saisissez cette formule :

=MAJUSCULE(GAUCHE(A2))&STXT(SUPPRESPACE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(« »&NOMPROPRE(A2)&« »,« Of »,« of »),« A »,« a »),«Is »,« is »),« Usa »,« USA »)),2;NBCAR(A2)) dans une cellule où vous souhaitez obtenir le résultat, puis faites glisser la poignée de recopie pour étendre la formule. Vos textes sont ainsi automatiquement mis en majuscule initiale, sauf pour les mots spécifiés. Consultez la capture d’écran :

convertir une chaîne de texte en majuscules/minuscules avec exceptions à l’aide d’une formule

Remarque : dans la formule ci-dessus, A2 est la cellule que vous souhaitez convertir, « Of », « A », « Is », « Usa » sont les mots mis en majuscule initiale après conversion, tandis que « of », « a », « is », « USA » sont les mots que vous souhaitez exclure de cette mise en majuscule initiale. Vous pouvez les modifier selon vos besoins ou ajouter d’autres mots à l’aide de la fonction SUBSTITUE.



Convertir des chaînes de texte en Majuscule en début de mot avec des exceptions à l’aide d’un code VBA

Si la formule ci-dessus vous semble un peu complexe à comprendre ou à adapter à vos besoins, vous pouvez également recourir à un code VBA pour réaliser cette tâche. Suivez pas à pas les étapes suivantes.

1. Maintenez enfoncées les touches ALT + F11 pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.

2. Cliquez sur Insertion > Module, puis collez le code suivant dans la fenêtre du module.

Code VBA : convertir des chaînes de texte en Majuscule en début de mot avec des exceptions :

Sub CellsValueChange()
'Updateby Extendoffice
    Dim xSRg As Range
    Dim xDRg As Range
    Dim xPRg As Range
    Dim xSRgArea As Range
    Dim xRgVal As String
    Dim xAddress As String
    Dim I As Long
    Dim K As Long
    Dim KK As Long
    On Error Resume Next
    xAddress = Application.ActiveWindow.RangeSelection.Address
    Set xSRg = Application.InputBox("Original cells:", "KuTools For Excel", xAddress, , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    Set xDRg = Application.InputBox("Output cells:", "KuTools For Excel", , , , , , 8)
    If xDRg Is Nothing Then Exit Sub
    Set xPRg = Application.InputBox("Cells to exclude:", "KuTools For Excel", , , , , , 8)
    If xPRg Is Nothing Then Exit Sub
    Set xDRg = xDRg(1)
    For I = 1 To xSRg.Areas.Count
        Set xSRgArea = xSRg.Areas.Item(I)
        For K = 1 To xSRgArea.Count
            xRgVal = xSRgArea(K).Value
            If Not IsNumeric(xRgVal) Then
                xRgVal = CorrectCase(xRgVal, xPRg)
                xDRg.Offset(KK).Value = xRgVal
            End If
            KK = KK + 1
        Next
    Next
End Sub
Function CorrectCase(ByVal xRgVal As String, ByVal xPRg As Range) As String
    Dim xArrWords As Variant
    Dim I As Integer
    Dim xPointer As Integer
    Dim xVal As String
    xPointer = 1
    xVal = xRgVal
    xArrWords = WordsOf(xRgVal)
    For I = 0 To UBound(xArrWords)
        xPointer = InStr(xPointer, " " & xVal, " " & xArrWords(I))
        Debug.Print xPointer
        Mid(xVal, xPointer) = CorrectCaseOneWord(CStr(xArrWords(I)), xPRg)
    Next I
    CorrectCase = xVal
End Function
Function WordsOf(xRgVal As String) As Variant
    Dim xDelimiters As Variant
    Dim xArrRtn As Variant
    xDelimiters = Array(",", ".", ";", ":", Chr(34), vbCr, vbLf)
    For Each xEachDelimiter In xDelimiters
        xRgVal = Application.WorksheetFunction.Substitute(xRgVal, xEachDelimiter, " ")
    Next xEachDelimiter
    xArrRtn = Split(Trim(xRgVal), " ")
    WordsOf = xArrRtn
End Function
Function CorrectCaseOneWord(xArrWord As String, xERg As Range) As String
    With xERg
        If IsError(Application.Match(xArrWord, .Cells, 0)) Then
            CorrectCaseOneWord = Application.Proper(xArrWord)
        Else
            CorrectCaseOneWord = Application.VLookup(xArrWord, .Cells, 1, 0)
        End If
    End With
End Function

3. Appuyez ensuite sur la touche F5 pour exécuter ce code. Une boîte de dialogue s’ouvre alors afin de vous inviter à sélectionner les cellules d’origine à convertir. Voir la capture d’écran :

code VBA pour sélectionner une plage de données

4. Cliquez ensuite sur OK, puis sélectionnez, dans la boîte de dialogue qui s’affiche, les cellules où vous souhaitez afficher les résultats. Voir la capture d’écran :

code VBA pour la cellule de destination

5. Cliquez à nouveau sur OK, puis, dans la boîte de dialogue qui s’ouvre, sélectionnez les textes que vous souhaitez exclure. Voir la capture d’écran :

code VBA pour sélectionner le texte exclu

6. Cliquez ensuite sur OK pour fermer les boîtes de dialogue. Toutes les chaînes de texte ont ainsi été converties en majuscule en début de mot, à l’exception des mots spécifiés. Voir la capture d’écran :

résultat de la conversion d’une chaîne de texte en majuscules/minuscules avec exceptions

Meilleurs outils de productivité Office

🤖Kutools IA Aide: Révolutionnez Analyse des données grâce à :Exécution intelligente   |  Générez du code|  Créez formules personnalisées  |  Analysez des données et générez des graphiques|  Appelez Fonctions améliorées
Fonctionnalités populaires:Rechercher, mettre en surbrillance ou Marquer les doublons   |  Supprimer les lignes vides   |  Combinez les colonnes ou cellules sans perdre de données   |   Arrondi sans utiliser de formule...
Super RECHERCHEV:RechercheValeurs avec critères multiples  |  RechercheValeurs avec valeurs multiples  |   RechercheValeurs dans plusieurs feuilles   |   Correspondance floue....
Liste déroulante avancée:Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple....
Gestionnaire de colonnes:Ajouter un nombre précis de colonnes|Déplacer des colonnes|Basculer la visibilité des colonnes masquées|Comparer des plages et des colonnes...
Fonctionnalités vedettes:Mise au point de la grille   |  Vue de conception   |Barre de formule améliorée   | Gestionnaire de classeurs et de feuilles   |  Bibliothèque de ressources(Texte automatique)|  Sélecteur de date   |  Consolider les feuilles de calcul  |  Chiffrer/Déchiffrer les cellules   | Envoyer des e-mails par liste   |  Super Filtre   |   Filtre spécial(Filtrer les cellules avec une police en gras/italique/barré...) ...
… et bien plus encore… et plus encore:(,)Supprimer des caractères spécifiques, ...)|   50+Typesde graphiques(, ...)|   40+ Formules pratiques(Calculer l'âge en fonction de la date de naissance, ...)|   19 Outils d’insertion(,Insérer une image depuis un chemin , ...)|   de conversion (Convertir en mots,Conversion de devises, ...)|Fusionner et scinder   (Fusion avancée des lignes,Diviser les cellules , ...)|, ...)   |
Utilisez Kutools dans la langue de votre choix – disponible en anglais, espagnol, allemand, français, chinois et 40+ autres langues !

Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre productivité et Gagner du temps.Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte une interface à onglets à Office et rend votre travail bien plus facile

  • Activez l’édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50 % et vous fait économiser des centaines de clics de souris chaque jour !

Tous les compléments Kutools. Un seul installateur

Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.

ExcelWordOutlookTabsPowerPoint
  • Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
  • Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
  • Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
  • Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
  • Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels