Mettre en italique une partie d'une cellule

Bonjour,

je souhaiterais automatiser une mise en italique, laquelle serait partielle au sein d'une cellule. J'ai une colonne avec des noms d'espèces en latin, majoritairement suivis de caractères entre parenthèses (exemple : "Hipparchia semele (Linnaeus, 1758)" , ou autre exemples à la fin du message).

Je cherche donc une macro qui me permette de mettre automatiquement en italique uniquement la première partie des cellules de cette colonne (soit uniquement le nom latin, donc toujours les deux premiers mots, avant la parenthèse).

D'une cellule affichant "Hipparchia semele (Linnaeus, 1758)" je cherche donc à obtenir : "Hipparchia semele (Linnaeus, 1758)", et ce pour toute la colonne.

S'il existe une commande pour mettre en italique tout ce qui est à gauche du 2ème espace d'une cellule (ou indiquant de mettre en italique les 2 premiers mots) ce serait encore mieux qu'une commande qui indique de mettre en italique tout ce qui est à gauche d'une parenthèse. Car comme vous le voyez dans mon exemple ci-dessous, il y a quelques cellules faisant office d'exceptions en ne comportant pas de parenthèse.

Un grand merci pour votre aide !

Minucia lunaris (Denis & Schiffermüller, 1775)
Cisticola juncidis (Rafinesque, 1810)
Gonepteryx rhamni (Linnaeus, 1758)
Libellula depressa Linnaeus, 1758
Mythimna pallens (Linnaeus, 1758)
Mentha pulegium L., 1753

Bonjour,

Essayez ceci, si la liste commence en A2

Sub Italique()
    Dim i As Long, parenthese As Long, DerLig As Long
    Application.ScreenUpdating = False
    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To DerLig
        parenthese = InStr(1, Cells(i, "A"), " (", 1)
        Cells(i, "A").Characters(Start:=1, Length:=parenthese - 1).Font.FontStyle = "Italique"
    Next i
End Sub

Cdlt

Bonjour à tous,

La version qui gère l'absence de parenthèse :

Sub Italique()
Dim LR%
With ActiveSheet
    LR = Cells(.Rows.Count, 1).End(xlUp).Row
    For i = 2 To LR
        FIN = Application.Evaluate("=FIND("" "",SUBSTITUTE(" & .Cells(i, 1).Address & ","" "","""",1))")
        .Cells(i, 1).Characters(1, FIN).Font.ITALIC = True
    Next i
End With
End Sub

Cdlt,

Bonjour tout le monde,

Une autre proposition....(macro de h2so4 que j'avais en stock).

Sub aargh()  'https://forum.excel-pratique.com/s/goto/970331
              'macro de h2so4
              'met les 2 premiers mots de chaque cellule  en italique

    Dim cel As Range, v, s, s1
        For Each cel In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
            With cel
                v = .Value
                s = InStr(v, " ")
                If s > 0 Then
                    s1 = InStr(s + 1, v, " ")
                    If s1 = 0 Then s1 = s
                    .Characters(1, s1 - 1).Font.FontStyle = "Italic"
                End If
            End With
        Next
End Sub
6classeur1.xlsm (19.81 Ko)

Cordialement,

Merci beaucoup pour votre aide à tous !

J'ai testé la macro de xorsankukai qui fonctionne très bien :)

Rechercher des sujets similaires à "mettre italique partie"