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

Texte trop long : limite taille et decaler celulle

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

fredh

XLDnaute Occasionnel
Texte trop long : limiter taille et decaler celulle

Bonjour

J'ai un fichier excell avec du textes en colonne A.

J'aimerai limiter la "longueur" du texte en A1 a 80 charatére et le copier en B1, puis le reste du texte (A1 caractere 81 a 160) le copier en B2; B3; B4 etc jusqu'a la fin du texte.

Puis faire de meme avec A2 MAIS le copier a la suite des celulles utiliser pour la premiere etape (par exemple a partir de A4)

Puis de meme avec A3


Merci de votre aide
 
Dernière édition:
Re : Texte trop long : limiter taille et decaler celulle

Salut

Normalement tu peux faire ca avec des fonctions LEN, RIGHT, SUBSTR,...

Dans du code il te suffit de connaitre la longueur de texte pour savoir comment le couper

Il faut aussi savoir si tu veux que le texte de A2 complete les 80 caracteres de A1 si la derniere decoupe ne fait pas 80 caracteres

Attention cependant car le nombre de colonnes est limité

Bon courage
 
Re : Texte trop long : limite taille et decaler celulle

Salut

Tu peux essayer ce petit code, ca te donneras un point de depart. Bien sur tu peux l'ameliorer mais il te permettra deja de repondre a ta question

Sub Test()
x1 = 1 'premiere ligne a decortiquer
x2 = 1 'ligne de la cellule ou poser les 5 caracteres

Do While Cells(x1, 1).Value <> ""
For y = 1 To Len(Cells(x1, 1).Value) 'pour tous les caracteres de la cellule
Cells(x2, 5).Value = Cells(x2, 5).Value & Mid(Cells(x1, 1).Value, y, 1)
If y Mod 5 = 0 Then x2 = x2 + 1 'si le nb de caractere =5 incremente la ligne de destination
Next y
x2 = x2 + 1
x1 = x1 + 1
Loop
End Sub
 
Re : Texte trop long : limite taille et decaler celulle

Salut lapix

Bravo c'est exactement ce que je cherchait.
Je n'y serait pas arriver tout seul vu la complexité du code.
quelque chose qui me gene pourtant : ton code fait bien sont boulot mais il "s'arrete" dés que lq ligne a tester est vide (j'ai de temps en temps des lignes vide pour des questions d'hestetisme).
Si cela peut arranger je peut mettre le mot "fin" (avec les guillemet car je l'aurais sans doute le mot fin dans le texte a couper) comme indicateur de fin de detection.

Peut on rajouter un message box pour demander le nombre de caractére de limite
 
Re : Texte trop long : limite taille et decaler celulle

Salut

On peut on peut
Sub Test()
x1 = 1 'premiere ligne a decortiquer
x2 = 1 'ligne de la cellule ou poser les 5 caracteres

Caractere = Val(InputBox("Indiquez le nombre de caractères à isoler :", "Choix..."))
If Caractere = 0 Then Exit Sub

MaxLigneVide = 5'defini apres combien de lignes trouvees vide la procédure s'arrete
Compteur = 0

Do While Compteur < MaxLigneVide
If Cells(x1, 1).Value = "" Then Compteur = Compteur + 1 Else Compteur = 0
For y = 1 To Len(Cells(x1, 1).Value) 'pour tous les caracteres de la cellule
Cells(x2, 5).Value = Cells(x2, 5).Value & Mid(Cells(x1, 1).Value, y, 1)
If y Mod Caractere = 0 Then x2 = x2 + 1 'si le nb de caractere =5 incremente la ligne de destination
Next y
x2 = x2 + 1
x1 = x1 + 1
Loop
End Sub

Bonne soiree
 
- 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…