Rechercher un mot en majuscule dans une phrase et le mettre en gras


#1

bjour,
je souhaite savoir comment dans une phrase rechercher tous les mots en majuscule et le mettre en gras en passant par “rechercher” "remplacer"
excel 2013
merci pour votre aide.


#2

Bonjour @vgab,

Pas facile ton affaire et je n’ais pas trouvé pour Excel en utilisant “Rechercher” “Remplacer”, je ne sais même pas si c’est possible.

Je te propose une alternative avec VBA.

Dans le fichier que je joins:

Dans la feuille 1 en colonne “A” il y a des phrases et un bouton “Mettre en Gras

Dans la feuille 2 une fonction personnalisée “=LesMajuscules(cellule;1)” et un bouton “KC cellules Col A

La fonction personnalisée récupère en colonne “A” les mots en majuscule de la feuille 1 en colonne “A”.

Function LesMajuscules(Cellule As Range, Optional Min As Boolean = True) As String
Dim i As Integer
If Cellule.Cells.Count > 1 Then Exit Function
 
If Min = True Then
    For i = 1 To Len(Cellule.Value)
        If LCase(Mid(Cellule.Value, i, 1)) <> Mid(Cellule.Value, i, 1) _
        Or Mid(Cellule.Value, i, 1) = " " Then
            LesMajuscules = LesMajuscules & Mid(Cellule.Value, i, 1)
        End If
    Next i
End If
 
LesMajuscules = Application.WorksheetFunction.Trim(LesMajuscules)
 
End Function

Le bouton KC cellules Col A lui fractionne le contenu d’une cellule par exemple “A2” en 10 colonnes maximum de “B2 à K2”.

Sub KCcellulesColA()

Application.ScreenUpdating = False
Application.DisplayAlerts = False
    Range("A2:A65000").Select
    Selection.Copy
    Range("B2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.TextToColumns Destination:=Range("B2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1)), TrailingMinusNumbers:= _
        True
Application.DisplayAlerts = True

    Cells(1, 1).Select
    
End Sub

Enfin le bouton Mettre en Gras compare et trouve les mots en majuscules communs dans la colonne “A” de la feuille 1 avec la liste des mots dans la feuille 2 de “B2 à F100” et donc les mets en gras

Sub MettreenGras()
Dim F1, F2 As Worksheet
Dim Cel, C
Dim Mlen, Dep

Application.ScreenUpdating = False

Set F1 = Sheets("Feuil1"): Set F2 = Sheets("Feuil2")
For Each Cel In F2.[B2:F100]
   For Each C In F1.Range("A2:A100")
      If InStr(1, C.Value, Cel) > 1 Then
         Mlen = Len(Cel)
         Dep = InStr(1, C.Value, Cel)
         C.Characters(Start:=Dep, Length:=Mlen).Font.Bold = True
      End If
   Next C
Next

End Sub

Voir fichier exemple ICI==> vgab V1.xlsm (29,5 Ko)

Cordialement.