Extraire chaîne de caractères

Résolu/Fermé
Gabmont Messages postés 4 Date d'inscription mardi 31 mai 2016 Statut Membre Dernière intervention 1 juin 2016 - 31 mai 2016 à 15:43
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 1 juin 2016 à 11:43
Bonjour dans une cellule A1 j’ai le texte suivant :
Claudel (Paul), auteur ;
Denis (Maurice), illustrateur ;
Je souhaite obtenir :
dans une cellule B1 le nom de de l’auteur 1 ;
dans une cellule C1, obtenir le prénom de l’auteur 1,
dans une cellule D1, obtenir la fonction de l’auteur
Puis dans une cellule E1 le nom de l’auteur 2,
et ainsi de suite.
Comment puis-je procéder ? J'ai parfois un troisième auteur dont il faut extraire les mêmes informations
Précision : Dans ma cellule A1 chaque "auteur (prénom), fonction;" est séparé d'un autre auteur par un point virgule et un passage à la ligne.
J'utilise Excel 2013

Merci pour votre aide.

A voir également:

1 réponse

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
31 mai 2016 à 16:10
Bonjour,

Essaie comme cela :
Sub Scinder()
Dim T As String
Dim Col As Integer, i As Integer
Col = 2
For i = 1 To Len(Range("A1"))
T = Range("A1").Characters(i, 1).Text
If T = ";" Or T = "(" Or T = "," Then
Col = Col + 1
Else
If T <> ")" And T <> Chr(10) Then
Cells(1, Col) = Cells(1, Col) & T
End If
End If
Next i
End Sub


A+
0
Gabmont Messages postés 4 Date d'inscription mardi 31 mai 2016 Statut Membre Dernière intervention 1 juin 2016
Modifié par Gabmont le 31/05/2016 à 16:26
Merci de ta réponse mais j'avoue être trop novice pour comprendre.

En fait mon problème consiste surtout à savoir comment extraire le terme "auteur" et le terme "illustrateur", à savoir la fonction des auteurs
car j'arrive à extraire les données entre parenthèse et avant la parenthèse
Merci pour votre aide
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > Gabmont Messages postés 4 Date d'inscription mardi 31 mai 2016 Statut Membre Dernière intervention 1 juin 2016
31 mai 2016 à 16:32
C'est une macro qu'il faut placer dans un module standard.
Tu peux la visualiser dans l'exemple joint.
Alt + F11 pour ouvrir l'éditeur VBA,
puis CTRL + R pour ouvrir l'Explorateur de projets.
Le code se trouve sous Modules / Module 1
https://www.cjoint.com/c/FEFoF38jtAA

A+
0
Gabmont Messages postés 4 Date d'inscription mardi 31 mai 2016 Statut Membre Dernière intervention 1 juin 2016 > Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016
31 mai 2016 à 16:56
Merci mais Je ne comprends pas ce qu'est l'éditeur VBA et l'explorateur de projets. J'ai ouvert le fichier et je trouve seulement l'exemple
Claudel (Paul), auteur ;
Denis (Maurice), illustrateur ;

Est-ce que vous pourriez seulement me donner la formule?

Entre temps j'ai réussi à faire cela:

en supposant que ma cellule de départ est en A3

Pour extraire le Nom (Prénom) auteur ; 1
=GAUCHE(A3;CHERCHE(",";A3)-1)

puis pour auteur ; Nom 1
=SUPPRESPACE(GAUCHE(B3;CHERCHE(" ";B3))&STXT(B3;CHERCHE(")";B3)+1;255))

puis pour auteur; prénom 1
=STXT(A3;CHERCHE(CAR(40);A3)+1;CHERCHE(CAR(41);A3)-CHERCHE(CAR(40);A3)-1)

A PARTIR DE LA CA SE COMPLIQUE POUR MOI

puis pour Nom (Prénom) auteur 2
=DROITE(A3;NBCAR(A3)-CHERCHE(",";A3))

puis pour Nom auteur 2
=GAUCHE(F3;CHERCHE(",";F3)-1)

puis pour Prénom auteur 2
=STXT(G4;CHERCHE(CAR(40);G4)+1;CHERCHE(CAR(41);G4)-CHERCHE(CAR(40);G4)-1)

LE PROBLEME c'est que je n'arrive pas à extraire le terme "auteur" et que je perd le terme illustrateur

Je ne sais pas si je suis claire.

Merci en tout cas
0
Gabmont Messages postés 4 Date d'inscription mardi 31 mai 2016 Statut Membre Dernière intervention 1 juin 2016 > Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016
1 juin 2016 à 11:27
Bonjour,
J'ai réussi à ouvrir ton fichier et à voir la macro mais je n'arrive pas à l'appliquer à d'autres lignes et je ne sais pas comment l'insérer dans mon propre fichier pour qu'elle s'applique aux autres lignes
. J'ai copié dans l'éditeur VBA le code mais je n'arrive pas à l'appliquer à ma propre liste pour l'exécuter à toutes les lignes.
Merci de ton aide
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > Gabmont Messages postés 4 Date d'inscription mardi 31 mai 2016 Statut Membre Dernière intervention 1 juin 2016
Modifié par Gyrus le 1/06/2016 à 11:45
Bonjour,

Il n'est pas étonnant que la procédure s'applique uniquement à A1 puisque cela correspond à ta demande initiale.
Il faut donc que tu expliques précisément quelles sont les cellules à traiter.
Le mieux est de proposer un fichier exemple.
Pour cela, tu peux utiliser https://www.cjoint.com/

A+
0