Découpe d'une cellule en mots (hors VBA)

marmotte18

XLDnaute Impliqué
Bonjour,

Supposons : A1 = "Je mange tous les jours"

Je souhaiterais trouver des formules de calcul (hors VBA) simples qui me découperaient le contenu de la cellule A1 en mots.

Mes 3 formules fonctionnent si j'ai plus de 3 mots, mais elles sont horriblement complexes. Imaginez la formule qu'il faudrait pour avoir le 20ème mot.

1er mot : (je)
A3=GAUCHE(A1;CHERCHE(" ";A1)-1)

2ème mot : (mange)
B3=STXT(A1;CHERCHE(" ";A1)+1;CHERCHE(" ";A1;CHERCHE(" ";A1)+1)-CHERCHE(" ";A1)-1)

3ème mot : (tous)
C3=STXT(A1;CHERCHE(" ";A1;CHERCHE(" ";A1)+1)+1;CHERCHE(" ";A1;CHERCHE(" ";A1;CHERCHE(" ";A1)+1)+1)-CHERCHE(" ";A1;CHERCHE(" ";A1)+1)-1)
 

Staple1600

XLDnaute Barbatruc
Re : Découpe d'une cellule en mots (hors VBA)

Bonjour

J'ai ca quelquepart

Une formule qui utilise STXT et COLONNE
et qui scinde le contenu d'une cellule dans les cellules adjacentes

pour info
cette formule a été publié dans Windows News

Peut-etre d'autres ici (lecteurs du magazine) s'en souviendront.

Mais autrement comme dit Catrice Données/Convertir est plus convivial à utiliser (et plus rapide)


Voila je l'ai retrouvé
Code:
=STXT($A10;COLONNE()-COLONNE($C10)+1;1)   formule matricielle
Et pour me faire plaisir (en vba) bien que tu n'en veuilles pas
Code:
Sub permutation()
'SOURCE:http://wiki.ittoolbox.com/index.php/Code:Split_a_word_letter_by_letter_into_the_corresponding_cells
Dim temp As String
Dim tempword As String
Dim word As String
Dim wordlen As Integer
Dim darray() As String

    word = ActiveCell
    wordlen = Len(ActiveCell)

    For i = 1 To wordlen
        temp = Mid(word, i, 1)
        
        ReDim Preserve darray(i)
        darray(i) = temp

        For j = i To i
            temp = Mid(word, i, 2)
            ReDim Preserve darray(i + i)
            darray(i + i) = temp
        Next j
    Next i

    For i = 1 To UBound(darray)
        ActiveCell.Offset(0, i) = darray(i)
    Next i

End Sub
 
Dernière édition:

wilfried_42

XLDnaute Barbatruc
Re : Découpe d'une cellule en mots (hors VBA)

bonjour marmotte

voici un fichier, avec je crois ce que tu demandes, il est limité à un certain nombre de mots (15) par phrase

les colonnes masques :
B-> Suppression des espaces (Substitue)
C-> Difference de longueur : ---> nombre d'espaces dans la phrase
D-> Posiion de départ : 0
E à R --> recherche des position des espaces
S à AF -> Découpage de la phrase en fonction des positions trouvées

edit: je suis toujours trop lent, pas de rafraichissement "d'écran" : bonjour catrice, staple
 

Pièces jointes

  • eclate_phrase.xls
    14.5 KB · Affichages: 97
  • eclate_phrase.xls
    14.5 KB · Affichages: 98
  • eclate_phrase.xls
    14.5 KB · Affichages: 96

marmotte18

XLDnaute Impliqué
Re : Découpe d'une cellule en mots (hors VBA)

Bonjour tout le monde,

Catrice :

Merci pour ce rappel intéressant, je le note dans le coin de mon cerveau. Cela me sera sûrement utile !

C'est une fonctionalité que j'utilise pour importer des fichiers texte mais je n'y avais pas pensé pour l'utilisation directe dans un fichier Excel !

wilfried_42 et Staple1600 :

Merci également pour vos réponses que je vais analysées. Je vous tiendrai au courant.
 
Dernière édition:

marmotte18

XLDnaute Impliqué
Re : Découpe d'une cellule en mots (hors VBA)

Bonjour Staple1600,

Ta formule matricielle est intéressante, de même que ta solution VBA, mais elle découpe la cellule A1 en lettres. Je conserve également ces systèmes dans ma mémoire.

Je pense qu'avec tout ce que vous me donnez, c'est une mémoire externe d'importante capacité qu'il me faudra !

Permets moi de rappeler cependant que je souhaite obtenir un découpage en mots par formules.
 
Dernière édition:

marmotte18

XLDnaute Impliqué
Re : Découpe d'une cellule en mots (hors VBA)

Bonjour wilfried_42,

Ta solution est très intéressante et elle approche du but.

J'ai trouvé 2 problèmes :
  • S'il n'y a qu'un mot, le décodage ne ramène pas ce mot
  • s'il y a des espaces multiples, le décodage ne fonctionne pas
J'ai adapté ta solution pour corriger ces 2 problèmes :

http://cjoint.com/?eglJXrIEjQ

De toute façon un grand merci pour le temps que tu as passé avec moi et pour la solution qui a finalement été trouvée grâce à toi
 

Monique

Nous a quitté
Repose en paix
Re : Découpe d'une cellule en mots (hors VBA)

Bonjour,

Par formule, avec les fonctions SommeProd et Colonnes().

La question a déjà été posée sur le forum XLD.
En octobre 2006 (je ne trouve pas le fil)
Une autre fois avant, en mai 2006, je crois (je ne trouve pas non plus)
Et une autre fois encore avant (pas cherché)

Dans le fichier joint, les données ont :
un espace entre les mots
ou bien un / entre les mots
ou bien 1 ou plusieurs espaces
 

Pièces jointes

  • DecouperMarmotte.zip
    13.9 KB · Affichages: 63

Discussions similaires

Statistiques des forums

Discussions
315 091
Messages
2 116 114
Membres
112 663
dernier inscrit
Pauline243