Extraire chaîne de caractères
Résolu
Gabmont
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Gyrus Messages postés 3334 Date d'inscription Statut Membre Dernière intervention -
Gyrus Messages postés 3334 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- Extraire chaîne de caractères
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
1 réponse
Bonjour,
Essaie comme cela :
A+
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+
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
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+
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
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
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+