XL 2010 Conversion de texte mais avec des formules

fredd

XLDnaute Occasionnel
Bonjour j'ai encore une fois besoin d'aide et je suis un inconditionnel des formules et donc préfere éviter les macro.

J'expose mon problème.

Dans une colonne j'ai des désignations qui sont écrite avec des séparations pas des " - "
Je peux avoir en 1 et 5 texte séparé par ces tirets. (espace, tiret, espace)

Le plus simple est de faire une conversion délimité par - et j'aurais mon résultat.
Ça je sais faire mais ma liste est vivante et les résultats sont eux aussi compilé pour transformer une autre désignation ....

Donc en pièce jointe je donne un exemple
  • Colonne B, mon fameux texte à découper.
  • Colonne C est la première partie avant le 1er " - "
  • Colonne D est la deuxième partie entre le 1er " - " et le 2eme " - "
  • Colonne E est la troisième partie entre le 2eme " - " et le 3eme " - "
  • Colonne F est la quatrième partie entre le 3eme " - " et le 4eme " - "
  • Colonne G est la dernière partie après le 4eme " - "

Dans le premier tableau ce que j'ai construis mais qui me semble lourd.

Je donne dans le 2eme tableau ce que je souhaite.

Encore une fois je vous remercie pour votre aide.
 

Pièces jointes

  • Conversion de texte mais avec des formules.xlsx
    11.9 KB · Affichages: 53

Amilo

XLDnaute Accro
Bonsoir le forum, Fredd,

Si vous avez la version Excel 2010 Pro Plus, vous pouvez passer par le complément Power Query téléchargeable gratuitement sur le site de Microsoft.

Vous pourrez connecter votre tableau et extraire facilement en quelques étapes.
A voir si vous avez déjà la bonne version et si vous êtes éventuellement intéressés par cette solution sans formule à saisir et sans VBA.

Cordialement
 

fredd

XLDnaute Occasionnel
Bonsoir le forum, Fredd,

Si vous avez la version Excel 2010 Pro Plus, vous pouvez passer par le complément Power Query téléchargeable gratuitement sur le site de Microsoft.

Cordialement
Merci beaucoup. C'est juste énorme ce truc.
Effectivement, à la maison je peux installer et je verrai au travail pour la mise en oeuvre.
En quelques clique j'ai réussi à faire le découpage et la mise à jour ce fais par rafraichissement.
Ca laisse pas mal de possibilité cet outils.
 

Amilo

XLDnaute Accro
Re, effectivement assez pratique pour l'actualisation des données par connexion,
Sinon, personnellement, j'ai installé Power BI Desktop,
Il regroupe un ensemble de compléments : Power Query, Power View, Power Map,
Il y a beaucoup à connaître notamment le langage M avec Power Query et la langage Dax pour Power Pivot etc ....à essayer ou à découvrir

Cordialement
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

Données/Convertir peut pourtant faire l'affaire ;)
(en biasant un peu avant)
VB:
Sub Convertir()
Dim c As Range
Set c = Selection.Item(1).Offset(, 1)
Selection.Replace What:=" - ", Replacement:="$", LookAt:=xlPart, SearchOrder:=xlByRows
Selection.TextToColumns _
    Destination:=c, _
    DataType:=xlDelimited, Other:=True, OtherChar:="$", _
    FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1))
End Sub
Voir résultat ci-dessous (clique sur 'image pour l'afficher en taille réelle)
141017DonConv.jpg
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Juste pour le fun, une formule (certes un peu longue) mais analogue pour toutes les cellules. Elle fonctionne jusqu'à 100 termes (si plus de 100 termes, augmenter le 99 dans la formule par 999).
 

Pièces jointes

  • fredd- Conversion de texte par formule -v1.xlsx
    11.5 KB · Affichages: 35
Dernière édition:

Si...

XLDnaute Barbatruc
Bon_jour

Des formules ? Oui quand elles sont simples à écrire (par de formulistes) !

Avec une simple macro pour le Tableau nommé Tbo (même avec un nombre très élevé de colonnes) …

VB:
Private Sub CommandButton1_Click()
Dim c As Range, T, n As Byte
  [Tbo].Item(1, 2).Resize([Tbo].Rows.Count, [Tbo].Columns.Count) = ""  'fait le ménage
  For Each c In [Tbo[Texte]]                                                                             'boucle sur les textes
      T = Split(c, "-")                                                                                              'tableau des  mots (sans le -)
      For n = 0 To UBound(T): c(1, n + 2) = Trim(T(n)): Next                          'retour par colonne sans les espaces
  Next
End Sub

Nota : on peut aussi lancer la décomposition d'un nouveau texte saisi avec une
 

Pièces jointes

  • Split (VBA).xlsm
    20.8 KB · Affichages: 36

Staple1600

XLDnaute Barbatruc
Re, bonjour mapomme, Si...

@Si...
Vous avez un problème ;)
Te / xte 1 - Te/xte 2 - Texte- 3 - 4emme
Moi pas ;)

Voir ma jolie copie d'écran et ma macro de mon message précédent

PS:
[pj] Si... j'ai téléchargé et tester ton fichier avant de poster ce message qui n'a rien de frauduleux, nan mais!
[/pj]
 

Si...

XLDnaute Barbatruc
USER=162781]@Si...[/USER]
Vous avez un problème ;)
Te / xte 1 - Te/xte 2 - Texte- 3 - 4emme
Moi pas ;)
Voir ma jolie copie d'écran et ma macro de mon message précédent
upload_2017-10-14_12-19-48.png
Ce n'est pas moi mais le Demandeur qui a un problème : mettre des là où il ne faut pas c'est mettre les mains au mauvais endroit ;)!

J'aurais mis Texte / 3 mais n'ayant pas plus de renseignements je me dégage de tout responsabilité :cool: !
 

fredd

XLDnaute Occasionnel
Ouahouuu!
c'est cool, j'ai plein de matiere à regarder tester et comprendre.
Merci beaucoup.
Et oui les- sans espaces existe vraiments, moi je ne convertie que les données que l'on me donne.
Et là j'ai du tout venant.
:D

Bon week end.
 

Discussions similaires

Réponses
3
Affichages
776

Statistiques des forums

Discussions
314 656
Messages
2 111 612
Membres
111 225
dernier inscrit
arnaud3110