Déconcatener sous excel

- - Dernière réponse :  DarthLighter - 12 juil. 2019 à 12:58
Bonjour,

je cherche à séparer les informations dans une cellule de manière automatique grâce à une formule sans avoir à me faire l'action manuelle convertir

voici un exemple de données contenu dans une cellule
2019|Q2|NICO|NCA|NR|EP|Services_Full_SAP|NOR_TEST_SU|PAR|FRA

et j'aimerais avoir les données dans des colonnes séparées (en utilisant le "|" comme séparateur)

merci
nicolas
Afficher la suite 

5 réponses

Messages postés
50111
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
22 octobre 2019
10986
0
Merci


Bonjour.


Utiliser DONNÉES/Conversion.
Commenter la réponse de Raymond PENTIER
Messages postés
24615
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
21 octobre 2019
4842
0
Merci
Bonjour
créer une formule pour déconcaténer sans passer la fonction convertir va être particulièrement acrobatique vu la composition du texte
Mieux vaudrait passer par VBA avec un clic sur la cellule à traiter
crdlmnt
Commenter la réponse de Vaucluse
Messages postés
50111
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
22 octobre 2019
10986
0
Merci
Je m'excuse : j'avais survolé la première phrase de Nico, sans m'attarder sur "grâce à une formule" ...
Ma réponse #2 est donc hors-propos ; il faut prendre en compte le message de Vaucluse, à qui j'adresse mes amicales salutations.
Mais c'est vraiment dommage, Nico, de ne pas vouloir profiter d'un outil aussi performant et efficace que DONNÉES/Conversion, qui a certainement donné un travail fou d'analyse et de programmation aux développeurs de Microsoft !
Commenter la réponse de Raymond PENTIER
Messages postés
22976
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 octobre 2019
5712
0
Merci
Bonjour à tous,
une petite fonction personnalisée à mettre dans un module standard :
Function decouper(ch As String, Num As Long, sep As String)
    decouper = Split(ch, sep)(Num - 1)
End Function

Ex syntaxe sur feuille :
=decouper(A2;2;"|")
https://www.cjoint.com/c/IGmkXdpbJ3k
eric

Commenter la réponse de eriiic
0
Merci
Bonjour,

Voilà un petit code vba que tu peux utiliser
Il a été tiré de l'outil Excel Text to Columns

Sub deconcatene()

'Cellules que tu veux deconcatener
Range("A1").select

'Code de deconcatenation
'Adapter le B1 qui sert à localiser la cellules à partir de laquelle il va coller les données
 Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="|", FieldInfo:=Array(Array(1, 2), Array(2, 1), Array(3, 1)), _
        TrailingMinusNumbers:=True

End Sub
Commenter la réponse de DarthLighter