Comment mettre en évidence un texte spécifique dans une cellule en fonction d'un autre texte ?
Dans Excel, il peut être facile pour nous de mettre en surbrillance les cellules en fonction d'un texte spécifique, mais ici, je souhaite mettre en évidence un texte spécifique à l'intérieur d'une cellule pour le faire ressortir sans pour autant surligner toute la cellule. Cela pourrait poser problème pour la plupart d'entre nous. Dans cet article, je vais parler de quelques astuces pour résoudre cette tâche dans Excel.
Mettre en évidence un ou plusieurs textes spécifiques dans plusieurs cellules avec du code VBA
Par exemple, j'ai une plage de chaînes de texte, et maintenant, je veux mettre en évidence le texte spécifique « Sky » dans ces cellules pour obtenir le résultat comme le montrent les captures d'écran suivantes :
![]() | ![]() | ![]() |
Pour ne mettre en évidence qu'une partie du texte dans une cellule, le code VBA suivant peut vous aider.
1. Sélectionnez les cellules où vous souhaitez mettre en évidence le texte spécifique, puis maintenez les touches ALT + F11 enfoncées pour ouvrir la fenêtre Microsoft Visual Basic for Applications.
2. Cliquez sur Insertion > Module, puis collez le code suivant dans la fenêtre Module.
Code VBA : Mettre en évidence une partie du texte dans une cellule :
Sub HighlightStrings()
'Updateby Extendoffice
Application.ScreenUpdating = False
Dim Rng As Range
Dim cFnd As String
Dim xTmp As String
Dim x As Long
Dim m As Long
Dim y As Long
cFnd = InputBox("Enter the text string to highlight")
y = Len(cFnd)
For Each Rng In Selection
With Rng
m = UBound(Split(Rng.Value, cFnd))
If m > 0 Then
xTmp = ""
For x = 0 To m - 1
xTmp = xTmp & Split(Rng.Value, cFnd)(x)
.Characters(Start:=Len(xTmp) + 1, Length:=y).Font.ColorIndex = 3
xTmp = xTmp & cFnd
Next
End If
End With
Next Rng
Application.ScreenUpdating = True
End Sub
3. Appuyez ensuite sur la touche F5 pour exécuter ce code, et une boîte de dialogue apparaîtra pour vous rappeler d'entrer le texte que vous souhaitez mettre en évidence uniquement, voir capture d'écran :
4. Ensuite, cliquez sur le bouton OK, tout le texte que vous avez spécifié a été mis en évidence uniquement dans les cellules, voir capture d'écran :
![]() | ![]() | ![]() |
Code VBA : Mettre en évidence plusieurs mots-clés dans des chaînes de texte :
Sub HighlightStrings()
'Updateby Extendoffice
Application.ScreenUpdating = False
Dim Rng As Range
Dim cFnd As String
Dim xTmp As String
Dim x As Long
Dim m As Long
Dim y As Long
Dim xFNum As Integer
Dim xArrFnd As Variant
Dim xStr As String
cFnd = InputBox("Please enter the text, separate them by comma:")
If Len(cFnd) < 1 Then Exit Sub
xArrFnd = Split(cFnd, ",")
For Each Rng In Selection
With Rng
For xFNum = 0 To UBound(xArrFnd)
xStr = xArrFnd(xFNum)
y = Len(xStr)
m = UBound(Split(Rng.Value, xStr))
If m > 0 Then
xTmp = ""
For x = 0 To m - 1
xTmp = xTmp & Split(Rng.Value, xStr)(x)
.Characters(Start:=Len(xTmp) + 1, Length:=y).Font.ColorIndex = 3
xTmp = xTmp & xStr
Next
End If
Next xFNum
End With
Next Rng
Application.ScreenUpdating = True
End Sub
Ensuite, dans la boîte qui apparaît, veuillez entrer les mots-clés que vous souhaitez mettre en évidence (séparez les mots par une virgule), voir capture d'écran :
Et ensuite, cliquez sur le bouton OK, les mots spécifiés ont été mis en évidence immédiatement, voir captures d'écran :
![]() | ![]() | ![]() |
Remarque : Les codes ci-dessus sont sensibles à la casse.
Mettre en évidence un ou plusieurs textes spécifiques dans plusieurs cellules avec une fonctionnalité incroyable
Si vous n'êtes pas familier avec le code dans Excel, voici un outil simple - Kutools for Excel, avec sa fonctionnalité Marquer les mots-clés, vous pouvez mettre en évidence un ou plusieurs mots-clés spécifiques à la fois dans les cellules.
Après avoir installé Kutools for Excel, veuillez procéder comme suit :
1. Cliquez sur Kutools > Texte > Marquer les mots-clés, voir capture d'écran :
2. Dans la boîte de dialogue Marquer les mots-clés, effectuez les opérations suivantes :
- Sélectionnez la plage de données que vous souhaitez utiliser dans la zone de texte Plage ;
- Sélectionnez les cellules contenant les mots-clés que vous souhaitez mettre en évidence, vous pouvez également entrer manuellement les mots-clés (séparés par une virgule) dans la zone de texte Mots-clés.
- Enfin, vous devez spécifier une couleur de police pour mettre en évidence les textes en cochant l'option Couleur de police des mots-clés. (Pour colorer toutes les cellules contenant les mots-clés, sélectionnez l'option Couleur du contenu des cellules).
3. Ensuite, cliquez sur le bouton Ok, tous les textes spécifiés ont été mis en évidence comme le montre la capture d'écran ci-dessous :
Remarque : Cette fonctionnalité n'est pas sensible à la casse, si vous souhaitez mettre en évidence le texte en tenant compte de la casse, cochez Respecter la casse dans la boîte de dialogue Marquer les mots-clés.
Mettre en évidence un texte spécifique dans une cellule en fonction d'un autre texte avec du code VBA
Voici une autre situation, j'ai deux colonnes dont la première contient les chaînes de texte et la seconde le texte spécifique, maintenant, je dois mettre en évidence le texte relatif dans la première colonne en fonction du texte spécifique dans la deuxième colonne pour chaque ligne.
1. Maintenez les touches ALT + F11 enfoncées pour ouvrir la fenêtre Microsoft Visual Basic for Applications.
2. Cliquez sur Insertion > Module, puis collez le code suivant dans la fenêtre Module.
Code VBA : Mettre en évidence une partie du texte dans une cellule en fonction d'un autre texte :
Sub highlight()
'Updateby Extendoffice
Dim xStr As String
Dim xRg As Range
Dim xTxt As String
Dim xCell As Range
Dim xChar As String
Dim I As Long
Dim J As Long
On Error Resume Next
If ActiveWindow.RangeSelection.Count > 1 Then
xTxt = ActiveWindow.RangeSelection.AddressLocal
Else
xTxt = ActiveSheet.UsedRange.AddressLocal
End If
LInput:
Set xRg = Application.InputBox("please select the data range:", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
If xRg.Areas.Count > 1 Then
MsgBox "not support multiple columns"
GoTo LInput
End If
If xRg.Columns.Count <> 2 Then
MsgBox "the selected range can only contain two columns "
GoTo LInput
End If
For I = 0 To xRg.Rows.Count - 1
xStr = xRg.Range("B1").Offset(I, 0).Value
With xRg.Range("A1").Offset(I, 0)
.Font.ColorIndex = 1
For J = 1 To Len(.Text)
If Mid(.Text, J, Len(xStr)) = xStr Then .Characters(J, Len(xStr)).Font.ColorIndex = 3
Next
End With
Next I
End Sub
3. Après avoir collé le code, appuyez sur la touche F5 pour l'exécuter, une boîte de dialogue apparaîtra pour vous rappeler de sélectionner la plage de données qui contient à la fois la chaîne de texte et le texte spécifique que vous souhaitez mettre en évidence et sur lequel baser votre action, voir capture d'écran :
4. Ensuite, cliquez sur le bouton OK, tout le texte correspondant dans la première colonne basé sur le texte spécifique de la deuxième colonne a été coloré en rouge comme le montre la capture d'écran suivante :
Plus d'articles connexes :
- Mettre en gras une partie du texte lors de la concaténation de deux colonnes dans Excel
- Dans une feuille de calcul Excel, après avoir concaténé deux valeurs de cellule avec des formules, vous remarquerez peut-être qu'il est impossible de mettre en gras une partie du texte dans la cellule combinée. Cela peut être ennuyeux parfois, comment mettre en gras une partie du texte lors de la concaténation de deux colonnes dans Excel ?
- Concaténer des colonnes de cellules et conserver la couleur du texte dans Excel
- Comme nous le savons tous, lors de la concaténation ou de la combinaison de colonnes de cellules en une seule colonne, la mise en forme des cellules (comme la couleur de la police, le formatage numérique, etc.) sera perdue. Cet article vous présentera quelques astuces pour combiner les colonnes de cellules en une seule tout en conservant aussi facilement que possible la couleur du texte dans Excel.
- Afficher un texte spécifique en fonction des valeurs d'une autre colonne
- Supposons que j'aie une liste de nombres, et maintenant, je veux afficher un certain texte spécifique dans une autre colonne en fonction de ces nombres. Par exemple, si le nombre de la cellule est compris entre 1 et 100, je veux que le texte « Diminution » soit affiché dans la cellule adjacente, si le nombre est compris entre 101 et 200, un texte « Stable » est affiché, et si le nombre est supérieur à 200, un texte « Augmentation » est affiché comme le montre la capture d'écran suivante. Pour résoudre cette tâche dans Excel, les formules suivantes dans cet article peuvent vous aider.
- Sommer des cellules contenant du texte et des nombres dans Excel
- Par exemple, j'ai une liste de valeurs contenant des chaînes numériques et textuelles, et maintenant, je veux additionner uniquement les nombres en fonction du même texte, regardez la capture d'écran suivante. Normalement, vous ne pouvez pas sommer directement les valeurs dans la liste avec des chaînes de texte, ici, je vais vous présenter quelques formules pour traiter cette tâche.
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la 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 facilite grandement votre travail
- Activez la modification 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é de50 %, et réduit des centaines de clics de souris pour vous chaque jour !