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

  • Initiateur de la discussion Initiateur de la discussion marmotte18
  • 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 !

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

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

- 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

Retour