XL 2016 Extraire une chaine de caractère (aléatoire) jusqu'à une occurence

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

VincentA

XLDnaute Nouveau
Bonjour,

J'ai un fichier avec dans une colonne (A) les titres de film et le (ou les réalisateurs associés). Je souhaiterai scinder cette colonne en deux :
Colonne A les films
Colonne B les réalisateurs
Je n'arrive pas à trouver la bonne formule, j'ai pioché à droite et à gauche dans le forum mais rien ne fonctionne.

Pourriez-vous m'aider s'il vous plait ?

Vincent
 

Pièces jointes

Solution
Re,
En fait l'espace après le "de" du réalisateur est un CAR(160) et non un CAR(32) donc on différencie bien le " de " du titre et celui du réalisateur. par contre pour le d' pas de solution.

Voir pj à base de substitue ou j'ai copié collé le " de " du réalisateur

Cordialement
Bonjour,
Le problème est de trouver le séparateur film/réalisateur. On peut faire avec de et d' mais cela demandera une correction manuelle si il y a de ou d' dans le titre du film
Cordialement
Effectivement, la formule que j'utilisais fonctionne bien s'il n'y a pas d'autres "de" que celui devant le réalisateur, sinon cela renvoie une chaine de caractères derrière le premier "de" rencontré.
=DROITE(A4;NBCAR(A4)-TROUVE("de";A4)-2)
 
Bonjour Vincent, Dugenou,
Avec plusieurs "de" dans la phrase plus à choisir entre "de" et "d'", une fonction perso semble plus adaptée :
VB:
Function Scinde(Chaine, T)
N = Len(Chaine)
For i = N - 1 To 1 Step -1
    If Mid(Chaine, i, 2) = "de" Or Mid(Chaine, i, 2) = "d'" Then
        If T = 1 Then
            Scinde = Mid(Chaine, 1, i - 2)
        Else
            Scinde = Mid(Chaine, i + 3)
        End If
        Exit Function
    End If
Next i
End Function
La syntaxe est Scinde(Titre;0) pour le réalisateur et Scinde(Titre,1) pour le titre.
 

Pièces jointes

Bonjour Vincent, Dugenou, Roblochon,
Après réflexion, il me semble que vous trouverez toujours un exemple qui ne marche pas.
J'ai essayé ce film :

De Athos à d' Artagnan de François de Dumont d' Urville

Le VBA se mélange les pinceaux car trop d’occurrences.
N'ayant pas Power Query, pourriez vous tester ce titre ?
 
Re,
En fait l'espace après le "de" du réalisateur est un CAR(160) et non un CAR(32) donc on différencie bien le " de " du titre et celui du réalisateur. par contre pour le d' pas de solution.

Voir pj à base de substitue ou j'ai copié collé le " de " du réalisateur

Cordialement
 

Pièces jointes

Re,
En fait l'espace après le "de" du réalisateur est un CAR(160) et non un CAR(32) donc on différencie bien le " de " du titre et celui du réalisateur. par contre pour le d' pas de solution.

Voir pj à base de substitue ou j'ai copié collé le " de " du réalisateur

Cordialement
Bonjour Dugenou,

J'ai testé ta fonction et je ne sais pas pourquoi, mais elle renvoie dans certaines cellules des #VALEUR! (cf fichier joint)
Cordialement, Vincent
 

Pièces jointes

Bonjour
de toute facon tu ne pourra avoir un résultat 100% c'est impossible
vba ne fait la différence entre le "de la chose " et le "corde "
au mieux tu prévois un espace logique avant et après mais même là tu n'aura pas de 100%

et je ne parle même pas d'un éventuel" de " dans le titre ou même plusieurs dans la partie réalisateur
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour