Extraire les numéros des lignes de texte

centurion

XLDnaute Junior
Bonjour les amis,

J'ai 1550 lignes sur la colonne "A" cette mise en forme de texte:

Quand j'ai le nom de l'auteur et plus d'une page:
Le titre du livre 23 Le nom de l'auteur 20-26

Quand j'ai le nom de l'auteur et une seule page:
Le titre du livre 23 Le nom de l'auteur 20

Quand je n'ai pas le nom de l'auteur et et plus d'une page:
Le titre du livre 23 20-26

Quand je n'ai pas le nom de l'auteur et une seule page:
Le titre du livre 23 20

J'aimerais avoir ça en colonnes séparées ?
23 ¦ Le titre du livre ¦ Le nom de l'auteur ¦ 20-26

En vous remerciant par avance
Cordialement
Centurion
 

centurion

XLDnaute Junior
Bonjour Kan3pz,

C'est presque ce que je voulais.
J'ai téléversé un fichier, pour que vous puissiez mieux comprendre.
En resumé : j'ai un index avec tout sur une colonne et je voudrais des colonnes séparées.

Avec mes remercîments
Cordialement
Centurion
 

Fichiers joints

Dernière édition:

zebanx

XLDnaute Accro
Bonsoir,

C'est assez coriace de trouver des réponses à cette demande.

Bon, en cherchant, parce que c'est intéressant à conserver, un fichier qui doit correspondre mais :
- la macro traite les "-" comme des lettres donc les derniers caractères doivent faire l'objet d'un traitement particuliers pour aller rechercher le dernier espace.

Avant d'appuyer sur le rectangle, prévoir de sélectionner la zone svp sinon il y aura un message d'erreur (fonctionne avec une SELECTION).

Il y aura donc un peu de manip" à faire, mais ce n'est franchement plus long !
(à moins de substituer le caractère "-" par " " avant le lancement de la macro).

Bonne soirée
thierry
 

Fichiers joints

Dernière édition:

eriiiic

XLDnaute Barbatruc
Bonjour,

sélectionner la plage à traiter et clic bouton.
J'ai fait comme ça pour ne pas écraser d'éventuelles retouches manuelles, mais on peut changer pour traiter toute la colonne directement.
eric
 

Fichiers joints

job75

XLDnaute Barbatruc
Bonsoir centurion, zebanx, eriiiic, [edit] kan3pz,

Cette fonction VBA (matricielle) est relativement simple :
Code:
Function Eclater(t$)
Dim i%, s
t = Application.Trim(t) 'SUPPRESPACE
For i = 1 To Len(t)
  If Mid(t, i, 2) Like " #" Then t = Left(t, i - 1) & Chr(1) & Mid(t, i + 1)
  If Mid(t, i, 2) Like "# " Then t = Left(t, i) & Chr(1) & Mid(t, i + 2)
Next
If t = "" Then s = "" Else s = Split(t, Chr(1)): t = s(1): s(1) = s(2): s(2) = t
Eclater = s 'vecteur ligne
End Function
A entrer sur la plage C2:F2 et à valider matriciellement par Ctrl+Maj+Entrée.

Fichier joint.

Bonne fin de soirée.
 

Fichiers joints

Dernière édition:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas