Comment mettre seulement un mot d un texte en italique dans une cellule

j ai un tableau avec 3000 lignes ou plusieurs mots et phrases sont par cellulles.

un mot parmis d autres dans la meme celulle revient souvent dans differentes lignes que je dois mettre en italique.comment faire pour mettre que celui-ci en italique et pas toute la cellule? afin de le reperer plus rapidement. par ex tableau test joint: je veux mettre seulement les mots ''gamma'' et ''delta' en italique.

Bonjour tu peux facilement faire ceci avec l'option de "rechercher - remplacer"

Dans le menu de "recherche" tu indiques gamma ainsi que dans le menu de "remplacement" la seule différence et que pour la l'option de remplacement tu changes

le format pour selectionner texte en italique.

Sinon par Macro pour gamma par exemple :

Sub Macro1()

    With Application.ReplaceFormat.Font
        .FontStyle = "Italique"
        .Subscript = False
        .TintAndShade = 0
    End With
    Cells.Replace What:="gamma", Replacement:="gamma", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=True
End Sub

merci. mais

option 1) ca me met toute la cellule en italique.

ou option 2 je ne sait pas ou coller ce macro fourni .

je debute.

image

Re bonjour,

oops édite. effectivement en utilisant format couleur c'est plus flagrant ! tout le texte est modifié pas seulement celui de remplacement. idem

pour la macro.

par exemple azerbaijan j ai tte la ligne en italique. je pige pas.je suis pourtant vos aides a la lettre. merci d ailleurs enormement.

image

bon bah faut croire que ya rien de possible...

bon bah faut croire que ya rien de possible...

Voilà avec un peu de retard. Par macro.

Sub Macro1()

For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
If Range("A" & i).Value Like "*gamma*" Then
Range("A" & i).Characters(InStr(1, Range("A" & i).Value, "gamma"), Len("gamma")).Font.Italic = True
End If
Next i

For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
If Range("A" & i).Value Like "*delta*" Then
Range("A" & i).Characters(InStr(1, Range("A" & i).Value, "delta"), Len("delta")).Font.Italic = True
End If
Next i

End Sub

c est un tres bon debut merci. seulement ya que le 1er gamma qui est pris en compte. par les autres gamma de la meme cellulle.

Bonjour,

En adaptant la macro de Xmenpl, on devrait s'en approcher sur le plan de la logique et des résultats, surtout si gamma n'apparait pas en extrémité de chaine :

For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
    j = 0 'réinitialisation j
    contenu = Range("A" & i).Value 'contenu de Ai
    Subdiv = Split(contenu, "gamma") 'sous chaines du contenu sans gamma
    If contenu Like "*gamma*" Then 'si contenu contient gamma
        While j <= UBound(Subdiv) 'tant que toutes les sous chaines n'ont pas été testées
            Pos = InStr(contenu, Subdiv(j)) + Len(Subdiv(j))  'renvoie position prochain gamma
            If Not (Subdiv(j) = "" And j > 0) Then 'dans tous les cas sauf si simultanément : j>0 et que subdiv(j) = ""
                Range("A" & i).Characters(Pos, Len("gamma")).Font.Italic = True 'les caractères à la position définie mis en italique
            end if
            j = j + 1 'incrémentation
        Wend
    End If
Next i

Il faudra éventuellement déclarer les variables contenu$, Subdiv(), j%, Pos%.

Cdlt,

Bien vu 3GB Par contre pour les "delta" je vous pense qu'il faut d'abord remplacer les "Delta" par des "delta" sinon la macro va en oublier.

Oui, c'est pour le principe ! C'est sûr qu'avec "gamma" en argument, il y a peu de chance que la macro aille chercher les delta !

Sinon, il y a la possibilité de ne pas respecter la casse et de passer le texte à mettre en forme en paramètre de la macro :

Sub CaracteresItalique(Texte_Recherche as string)

Texte_Recherche = Lcase(Texte_Recherche)
For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
    j = 0 'réinitialisation j
    contenu = LCase(Range("A" & i).Value) 'contenu de Ai
    Subdiv = Split(contenu, Texte_Recherche) 'sous chaines du contenu sans Texte_Recherche
    If contenu Like "*" & Texte_Recherche & "*" Then 'si contenu contient Texte_Recherche
        While j <= UBound(Subdiv) 'tant que toutes les sous chaines n'ont pas été testées
            Pos = InStr(contenu, Subdiv(j)) + Len(Subdiv(j))  'renvoie position prochain Texte_Recherche
            If Not (Subdiv(j) = "" And j > 0) Then 'dans tous les cas sauf si simultanément : j>0 et que subdiv(j) = ""
                Range("A" & i).Characters(Pos, Len(Texte_Recherche)).Font.Italic = True 'les caractères à la position définie mis en italique
            end if
            j = j + 1 'incrémentation
        Wend
    End If
Next i

end sub

à appeler ainsi :

Call CaracteresItalique("gamma")
Call CaracteresItalique("Delta") 'ou Call CaracteresItalique("Delta")

Cdlt,

Rechercher des sujets similaires à "comment mettre seulement mot texte italique"