Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion bindou
  • Date de début Date de début

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 !

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.
 
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.
 
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:
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
 


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
    32.3 KB · Affichages: 30
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))
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…