Séparation chaine caractères ts les X caracteres avec retour à la ligne suivante

antiphot

XLDnaute Occasionnel
Bonjour à toutes et à tous


J'utilise une macro de Job75 adaptée à mes besoins, qui me permet de séparer une chaine de caractères trop longue tous les X caractères avec retour à la ligne suivante. Actuellement les modifications se font de la feuille original vers la feuille Découpe.

Je ne souhaite pas passer par une feuille intermédiaire et effectuer directement les modifs sur la feuille "Original"

Je joint le fichier exemple

Merci par avance
Philippe
 

Pièces jointes

  • DecoupeLigne.xls
    39 KB · Affichages: 120

antiphot

XLDnaute Occasionnel
Re : Séparation chaine caractères ts les X caracteres avec retour à la ligne suivante

Personne n'a une petite idée ? J'ai bien pensé à passer par une feuille intermédiaire que je détruit ensuite, mais je souhaiterais plutôt passer par une variable de type tableau. Et là je bloque et j'aurais besoin de vos lumières.

Si vous désirez des renseignements complémentaires, je suis à votre disposition

Philippe
 

eretyk_1er

XLDnaute Nouveau
Re : Séparation chaine caractères ts les X caracteres avec retour à la ligne suivante

Bonjour,

J'ai trouvé le code un peu confu, j'ai essayé de le simplifier.
Bon courage.

Option Explicit
' Macro adaptée d'un code de Job75
Sub DecoupeLigne(max As Integer)
Dim cel As Range, Txt$, Txt2$
Dim i As Integer, Iterations As Integer

With Sheets("original") 'à adapter

max = 60
For Each cel In Range("B1", [B65536].End(xlUp))

Txt = cel 'texte à découper
Txt2 = cel.Offset(0, -1) 'indice

'***on insère le bon nombre de lignes
Iterations = Int((Len(Txt) - 1) / max)
If Iterations > 0 Then
Rows(cel.Row + 1 & ":" & (cel.Row + Iterations)).Insert shift:=xlUp
End If

'*** on écrit le texte
For i = 0 To Iterations
cel.Offset(i, 0).Value = Mid(Txt, (i * max) + 1, max)
Next i

Next cel
End With

End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Séparation chaine caractères ts les X caracteres avec retour à la ligne suivante

Bonjour voisin

Voici ma proposition puisque mon ami job :) :) ne s'est pas encore manifesté
J'ai compris (mais je peux me tromper qu'il s'agissait de ne pas couper n'importe ou mais sur un espace)
Pour ne pas brouiller les données j'ai mis le resultat en colonnes F et G
Pour le remplacement il suffit de mettre en commentaires la derniere ligne de la macro et la remplacer par celle actuellement en commentaires
 

Pièces jointes

  • DecoupeLigne(1).zip
    17.1 KB · Affichages: 68
  • DecoupeLigne(1).zip
    17.1 KB · Affichages: 67
  • DecoupeLigne(1).zip
    17.1 KB · Affichages: 64

JCGL

XLDnaute Barbatruc
Re : Séparation chaine caractères ts les X caracteres avec retour à la ligne suivante

Bonjour à tous,

N'apporte rien à la discussion

Juste pour saluer l'ami PJ que je n'avais "vu" depuis quelques temps et encore moins croiser.

A++ PJ
A + à tous
 

antiphot

XLDnaute Occasionnel
Re : Séparation chaine caractères ts les X caracteres avec retour à la ligne suivante

bonsoir eretyk_1er, pierrejean, JCGL

eretyk_1er : Effectivement ton code est beaucoup plus simple mais le problème c'est que l'on insère des lignes. Ce que je ne veux pas (j'avoue que je ne l'ai pas explicitement spécifié). Néanmoins je garde ta proposition sous le coude et te remercie pour ton aide.

pierrejean : Ta proposition me convient donc parfaitement. La seule petite modif qu'il y aurait à faire c'est que l'on répète le chiffre de la colonne A. Ce chiffre correspond dans la vraie vie à une quantité et il importe qu'il soit donc unique et lié à la première ligne de la chaîne de caractères tronquée.
par ailleurs la virtuosité avec laquelle tu manies les variables tableau me laisse définitivement rêveur.
 

pierrejean

XLDnaute Barbatruc
Re : Séparation chaine caractères ts les X caracteres avec retour à la ligne suivante

Re

Salut a mon ami JC :) :)

Voici une seconde proposition dont j'espere qu'eretyk_1er ne la trouvera pas trop confuse
Elle donne le même resultat que la precedente et resoud ton problème
Les tableaux sont un peu complexes à 'digerer' mais quelle efficacité !!!
 

Pièces jointes

  • DecoupeLigne(1).zip
    17.2 KB · Affichages: 54
  • DecoupeLigne(1).zip
    17.2 KB · Affichages: 61
  • DecoupeLigne(1).zip
    17.2 KB · Affichages: 57

eretyk_1er

XLDnaute Nouveau
Re : Séparation chaine caractères ts les X caracteres avec retour à la ligne suivante

Indeed, ma méthode était un peu brute...
J'aime beaucoup la dernière ligne qui affiche la découpe d'un coup :) Ca fait très magicien qui sort le lapin du chapeau.

bonne continuation!
 

pierrejean

XLDnaute Barbatruc
Re : Séparation chaine caractères ts les X caracteres avec retour à la ligne suivante

Re

Avec toutes mes excuses
Merci eretyk_1er
 

Pièces jointes

  • DecoupeLigne(1).zip
    19.8 KB · Affichages: 71
  • DecoupeLigne(1).zip
    19.8 KB · Affichages: 71
  • DecoupeLigne(1).zip
    19.8 KB · Affichages: 66

C@thy

XLDnaute Barbatruc
Re : Séparation chaine caractères ts les X caracteres avec retour à la ligne suivante

Un essai avec des formules... j'y suis presque, si un superformuliste passe par là...
 

Pièces jointes

  • Saucissonnage Tests.xls
    45 KB · Affichages: 172

antiphot

XLDnaute Occasionnel
Re : Séparation chaine caractères ts les X caracteres avec retour à la ligne suivante

Bonjour eretyk_1er, C@thy

Merci pierrejean c'est parfait. Je suis comme eretyk_1er, c'est effectivement magique. Mais je tire aussi mon chapeau à cathy car avec des formules c'est tout simplement .... Fou !!
 

C@thy

XLDnaute Barbatruc
Formule magique

Je corrige ma formule en D51:
Code:
=SI(D$49=0;"";GAUCHE(STXT($B51&" ";NbreCaract;SomCaract);CHERCHE("#";SUBSTITUE(GAUCHE(STXT($B51&" ";NbreCaract;SomCaract);D$49);" ";"#";NBCAR(GAUCHE(STXT($B51&" ";NbreCaract;SomCaract);D$49))-NBCAR(SUBSTITUE(GAUCHE(STXT($B51&" ";NbreCaract;SomCaract);D$49);" ";""))))))

à recopier vers la droite et vers le bas
En fait je rajoute un espace à la fin de la chaîne de caractères à découper.
Bises à toutes et tous et bonne journée

C@thy
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 194
Messages
2 086 069
Membres
103 110
dernier inscrit
Privé