Diviser une cellule Excel sur base de la police

Résolu

Bonjour,

Je cherche à diviser une colonne de cellules sur base de la police :  dans mes cellules j'ai des mots en italique et des mots en police normal. Je cherche à diviser ces cellules en 2 avec d'un côté les mots italique et d'un autre les mots en normal, afin de ne conserver que les mots en italique au final. Est-ce possible ? Les éléments séparateurs proposés ne tiennent pas compte de la police. C'est en général des espaces ou points-virgules, etc. 

4 réponses

  1. Bonjour,
    J'en arrive à regretter le bon vieux temps de Visicalc et de Multiplan, que les moins de 80 ans ne peuvent pas connaître, on pouvait choisir n'importe quelle couleur, pourvu que ce soit le noir.
    Lorsqu'on devait tracer un cadre, on utilisait pour les traits horizontaux le signe moins (-) ou le signe égal (=), pour les angles le signe plus (+) et pour les traits verticaux le point d'exclamation (!)...
    Cordialement.

    1
    1. Contributeur

      Bonjour.

      Est-ce possible ? à ma connaissance, non.

      Mais on arrive à faire tellement de choses avec VBA !


      0
      1. Bonjour

        Mon ami Raymond que je salue bien au passage a raison, c'est possible en VBA  :

        https://www.cjoint.com/c/LImohVIdB1u

        Cdlmnt

        Via


        0
        1. Bonsoir,

          Merci de vos retours. Est-ce possible de poster la formule dans un message de réponse ? Je ne suis pas sur mon ordi personnel, et les restrictions de la société m'empêche de télécharger toutes PJ...


          Cdlt

          0
        2. @AM

          Re

          Ce n'est pas une formule mais une macro en VBA créant une fonction personnalisée

          Faire ALt+F11 pour ouvrir l'éditeur VBA -  Aller dans Insertion - Module -Copier et coller la macro ci-dessous dans la feuille blanche et fermer l'éditeur VBA

          La fonction s'utilise ensuite selon la syntaxe =ital(cellule avec la chaîne de caractères à traiter) et renvoie les mots de la chaîne qui sont en italique

          Function ital(plage As Range)
          For n = 1 To Len(plage.Value)
          If plage.Characters(n, 1).Font.Italic = True Then retour = retour & Mid(plage, n, 1)
          If Mid(plage, n, 1) = " " Then retour = retour & " "
          Next
          ital = retour
          End Function
          0
      2. Bonjour,

        Merci beaucoup. Cela fonctionne très bien, c'est parfait ! Vos explications étaient bien utiles...

        Cordialement

        0