Mettre dans des colonnes les caractères d'une cellule séparés par "_"

bindou

XLDnaute Nouveau
Bonjour à tous ;
Je débute avec ce très bon outil qu'est Excel, et je cherche actuellement une solution pour le problème suivant :

J'ai plusieurs cellules sous ce format :
blabla_3456_brrrrr_456ezrez
Et j'aimerais obtenir une colonne pour "blabla", une autre pour "3456", etc.

Si une personne pouvait m'offrir un peu de temps et de savoir, ça serait sympa :)

Cordialement.
 

bindou

XLDnaute Nouveau
J'ai fini par trouvé une solution avec :
Colonne 1 =STXT(A67;1;MIN(CHERCHE("_";A67)))
Colonne 2 =STXT(SUBSTITUE(A67;B67;);1;CHERCHE("_";SUBSTITUE(A67;B67;)))
Colonne 3 =STXT(SUBSTITUE(A67;B67&C67;);1;CHERCHE("_";SUBSTITUE(A67;B67&C67;"")))
Colonne 4 =SUBSTITUE(A67;B67&C67&D67;"")

De cette manière ça semble fonctionner ; néanmoins, il m'affiche les "_", mais pour mon usage ça ne devrait pas poser problem.
 

bindou

XLDnaute Nouveau
En effet c'est tellement plus simple :/
Par contre, de cette manière il supprime/remplace la cellule originelle. Peut-on conserver la cellule de base et choisir ou afficher les colonnes ?

Edit, ok, je viens de voir qu'on peut choisir la destination ; c'est donc parfait ! Merci beaucoup.

Edit2, finalement ça ne va pas, car il faut que cela soit automatique. et je viens de voir qu'il faut faire la manip après chaque insertion de données. Il me faut donc une formule.
 
Dernière édition:

Dugenou

XLDnaute Barbatruc
Re,
Alors par formule (un peu bourrin mais ça fonctionne) avec une donnée texte en A5 :
emplacement du premier _ : CHERCHE("_";A5)
emplacement du second _ : CHERCHE("_";A5;CHERCHE("_";A5)+1)
emplacement du troisième _ : CHERCHE("_";A5;CHERCHE("_";A5;CHERCHE("_";A5)+1)+1)

du coup
colonne 1 : =GAUCHE(A5;CHERCHE("_";A5)-1)
colonne2 : =STXT(A5;CHERCHE("_";A5)+1;CHERCHE("_";A5;CHERCHE("_";A5)+1)-CHERCHE("_";A5)-1)
colonne3 : =STXT(A5;CHERCHE("_";A5;CHERCHE("_";A5)+1)+1;E4-CHERCHE("_";A5;CHERCHE("_";A5)+1)-1)
colonne 4 : =DROITE(A5;NBCAR(A5)-CHERCHE("_";A5;CHERCHE("_";A5;CHERCHE("_";A5)+1)+1))

Cordialement
 

gosselien

XLDnaute Barbatruc
ScreenShot116.jpg


Bonjour,

une manière avec fonction perso:
Option Explicit

Function EXTRACTENTRE(txt As String, s As String, rg As Integer) ' M.FERRAND
Dim ttx
Application.Volatile
ttx = Split(txt, s)
EXTRACTENTRE = Trim(ttx(rg - 1))
End Function
 

Pièces jointes

  • ScreenShot117.jpg
    ScreenShot117.jpg
    32.3 KB · Affichages: 25

bindou

XLDnaute Nouveau
Re,
du coup
colonne 1 : =GAUCHE(A5;CHERCHE("_";A5)-1)
colonne2 : =STXT(A5;CHERCHE("_";A5)+1;CHERCHE("_";A5;CHERCHE("_";A5)+1)-CHERCHE("_";A5)-1)
colonne3 : =STXT(A5;CHERCHE("_";A5;CHERCHE("_";A5)+1)+1;E4-CHERCHE("_";A5;CHERCHE("_";A5)+1)-1)
colonne 4 : =DROITE(A5;NBCAR(A5)-CHERCHE("_";A5;CHERCHE("_";A5;CHERCHE("_";A5)+1)+1))

Cordialement
Au cas ou cela interesserait qulqu'un, je signale une petite coquille avec cette solution pour la colonne 3
Elle fonctionnera mieux avec cette formule (je ne sais pas si on peut faire plus simple)
=STXT(A5;CHERCHE("_";A5;CHERCHE("_";A5)+1)+1;(CHERCHE("_";A5;CHERCHE("_";A5;CHERCHE("_";A5)+1)+1))-(CHERCHE("_";A5;CHERCHE("_";A5)+1)+1))
 

Discussions similaires

Statistiques des forums

Discussions
312 115
Messages
2 085 451
Membres
102 889
dernier inscrit
monsef JABBOUR