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

Séparer texte dans plusieurs cellules

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

NCM

XLDnaute Nouveau
Bonjour à tous,

Voila mon problème, j'ai un texte d'environ 90 caractères avec seulement des espaces situé dans une cellule A1.

Je voudrai séparer ce texte dans 3 cellules ( A2; A3; A4 ) avec dans chaque cellules un maximun de 40 caractères.

Bien sur si au quarantième caractères on se trouve on milieu d'un mot, il faudrai couper le texte à l'espace juste avant ce mot.🙁

Malgrés plusieurs essais, je n'arrive pas a faire ce retour en arrière.
 
Re : Séparer texte dans plusieurs cellules

Cela dit, voici la fonction qui va bien :🙂

Function Deconcatene$(ByVal Texte$, ByVal Lg&, ByVal Ordre%)
'saucissonne un texte en respectant les mots et ne ne dépassant
'jamais la longueur maxi
Dim Fin&, Bcle&
For Bcle = 1 To Ordre
Fin = InStrRev(Texte, " ", Lg)
If Fin = 0 Or Lg - Fin > Lg / 2 Then Fin = Lg
If Bcle < Ordre Then
Texte = Mid$(Texte, Fin + 1)
Else
Deconcatene = Trim$(Mid$(Texte, 1, Fin))
End If
If Texte = "" Then Exit Function
Next Bcle
End Function

C@thy
 
Re : Séparer texte dans plusieurs cellules

Bonjour et bravo a vous pour ces fonctions.

Le sujet est un peu vieux mais mon problème est similaire au sujet.
J'ai une liste d'adresse (1 colonne) que je doit formater au format de la poste à savoir 3 champs de 40 caractères max.

En utilisant les fonctions postées sur ce forum (DeconcatenerMax40CaracteresV2.xls) je perds le dernier mot de chaque adresse.
ex: 12 avenue de la république -> 12 avenue de la

Quelqu'un peut-il m'aider à trouver ce qu'il ne va pas dans ces fonctions?

Merci
 
Re : Séparer texte dans plusieurs cellules

Bonjour arko.polo, et BIENVENUE SUR XLD

avec ma fonction, cela fonctionne... arf!!! une fonction c'est comme un fonctionnaire, ça fonctionne...
=Deconcatene(A1;40;1)

C@thy
 
Re : Séparer texte dans plusieurs cellules

Bonjour Cathy,

Je ne sais pas comment utiliser ta fonction! C'est du VB?

Moi je me suis servi des fonctions utilisées dans le doc "DeconcatenerMax40CaracteresV2.xls" et ça me perds le dernier mot.
Je m'en suis sorti simplement en ajoutant (concatener) un caractère à la fin de chaque adresse
=concatener(A1;" *")
puis appliquer les fonction du fichier.
Et là ça me sort mes 3 colonnes de 40 caractères max sans le caractère ajouté.

Si ca peut aider ceux qui, comme moi, ne savent pas créer de nouvelles fonctions.

Merci

PS: super forum
 
Re : Séparer texte dans plusieurs cellules

voici le fichier,
la fonction c'est du vba, mais elle s'utilise dans une cellule comme une fonction d'excel
les paramètres sont : cellule à déconcaténer, nb de caractères, n° d'ordre (ex. déconcaténer A1 les 40 premiers aractères s'écrira
=Deconcatene($A$1;40;1)
les 40 suivants : =Deconcatene($A$1;40;2)
mais pour utiliser la même formule partout en trirant il faut utiliser ligne ou colonne, selon que l'on tire vers le bas ou vers la droite
 

Pièces jointes

Bonjour
Voila mon problème, j'ai une colonne avec du texte dépassant 25 caractères

Je voudrai séparer ce texte dans différentes colonnes avec dans chaque cellules un maximum de 25 caractères.

Bien sur si au 25ème caractères se trouve on milieu d'un mot, il faudrait couper le texte à l'espace juste avant ce mot.

Malgré plusieurs essais, je n'arrive pas a faire ce retour en arrière. J'ai environ 21000 lignes à séparer ci-joint un échantillon de mon fichier. Quelqu'un peut m'aider?
 

Pièces jointes



Bonjour C@thy,
Bonjour
Voila mon problème, j'ai une colonne avec du texte dépassant 25 caractères

Je voudrai séparer ce texte dans différentes colonnes avec dans chaque cellules un maximum de 25 caractères.

Bien sur si au 25ème caractères se trouve on milieu d'un mot, il faudrait couper le texte à l'espace juste avant ce mot.

Malgré plusieurs essais, je n'arrive pas a faire ce retour en arrière. J'ai environ 21000 lignes à séparer ci-joint un échantillon de mon fichier. Quelqu'un peut m'aider?
 

Pièces jointes

Bonsoir @Karla , bienvenue sur XLD,

Un essai via une macro en VBA.
  • cliquez sur le bouton Hop! pour lancer la macro.
  • la macro agit sur la feuille active et la colonne A
  • la cellule A1 est un intitulé de colonne et doit être présent
  • si un mot dépasse le nombre de caractères max (on peut le modifier dans le code via la constante : Taillemax), alors le message d'information final l'indique. Dans les colonnes résultats, les cellules dont le mot dépasse le nombre de caractères max contiennent le texte "Err-Taille". Il suffira de rechercher ces termes sur la feuille, pour voir les lignes en cause.
  • le code est dans module1
  • environ 0.7 secondes pour 22 000 lignes
 

Pièces jointes


Merci infiniment, j'avais pas pensé a ça. J'ai tellement eu de essaies infructueux. Au plaisir. 🙂 Vous me sauvez la vie.
 
Bonjour @Karla, à tous,

En relisant le code de la v1, j'ai vu une petite coquille. Juste avant la ligne comportant Next i, il faut remplacer Mid(s, 1) par Mid(s, 2).
La séparation reste identique mais peut éviter l'insertion non justifiée d'une cellule vide en cas de présence d'un mot trop long (dont le nombre de caractères est supérieur à Taillemax. Je joins le fichier sans la coquille.
 

Pièces jointes



Ma pomme merci beaucoup de prendre le temps de m'aider et d'avoir trouvé la petite coquillle. Bonne journée.
 
- 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…