Comment convertir une chaîne de texte en majuscule en début de mot dans Excel, tout en appliquant des exceptions ?
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 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 :

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 :

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 :

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 :

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 :

Meilleurs outils de productivité Office
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.
- 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