Excel Mac : Changer ordre des mots au sein d'une même cellul

Résolu
Bonjour,

Je dois changer l'ordre des noms et prénoms en supprimant la virgule mais en gardant le slash, sans doute l'exemple sera plus parlant :

Actuellement j'ai en A1 = CAGE, JOHN / MARTIELLO, DAVIDE / UGOLETTI, PAOLO
Je souhaiterai en A1 : JOHN CAGE / DAVIDE MARTIELLO / PAOLO UGOLETTI

Après plusieurs recherches, je n'ai pas trouvé de résultats probant, donc si quelqu'un à une idée je l'en remercie grandement.

Bien à vous
François

2 réponses

  1. Bonjour

    Avec une fonction personnalisée (macro)
    Option Explicit
    
    Public Function InverseOrdre(ByVal s As String)
    Dim rv As Long, rs As Long, ss As String
    rs = InStr(1, s, "/")
    If rs = 0 Then
      rv = InStr(1, s, ",")
      InverseOrdre = Right(s, Len(s) - rv - 1) & "," & Left(s, rv - 1)
    Else
      ss = Left(s, rs - 1)
      rv = InStr(1, ss, ",")
      InverseOrdre = Right(ss, Len(ss) - rv - 1) & "," & Left(ss, rv - 1) & " / " & InverseOrdre(Right(s, Len(s) - rs))
    End If
    End Function
    

    https://www.cjoint.com/c/LFvov1lfurB
    Alt-F11 pour accéder au code (dans Module 1)

    Cdlmnt
    0
    1. Oups, j'ai oublié de supprimer les virgules
      Public Function InverseOrdre(ByVal s As String)
      Dim rv As Long, rs As Long, ss As String
      rs = InStr(1, s, "/")
      If rs = 0 Then
        rv = InStr(1, s, ",")
        InverseOrdre = Right(s, Len(s) - rv - 1) & Left(s, rv - 1)
      Else
        ss = Left(s, rs - 1)
        rv = InStr(1, ss, ",")
        InverseOrdre = Right(ss, Len(ss) - rv - 1) & Left(ss, rv - 1) & " / " & InverseOrdre(Right(s, Len(s) - rs))
      End If
      End Function

      Cdlmnt
      0
      1. Merci beaucoup pour votre aide. Un grand merci
        Cordialement

        François
        0