Dispatcher le texte d'une cellule dans plusieurs cellules

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

MJ13

XLDnaute Barbatruc
Bonjour à tous

Je cherche à dispatcher en VBA le texte d'une cellule qui contient des retours chariot chr(13) dans plusieurs cellules les unes au dessus des autres 😕.

Connaissez vous une méthode?

Merci d'avance 🙂.
 
Re : Dispatcher le texte d'une cellule dans plusieurs cellules

Bonjour MJ13,

est-ce que
Code:
Cells(coord. de ta cellule à remplir).Value = Mid(Trim(chr(13)), caractère de départ, nombre de caractère à extraire à partir de celui de départ)

ne pourrait pas t'aider?
 
Re : Dispatcher le texte d'une cellule dans plusieurs cellules

Bonjour Michel🙂

essaye ceci, décompose la cellule A1, dans la colonne B
Code:
Range("B1").Resize(UBound(Split(Range("A1"), vblf)) + 1).Value = Application.Transpose(Split(Range("A1"), vbLf))

bon après midi
@+

Edition : remplacé un vbcr par vblf...
 
Dernière édition:
Re : Dispatcher le texte d'une cellule dans plusieurs cellules

Bonjour Vénitien, Pierrot (oups pas vu, je regarde 🙂)

Merci, mais ton code ne m'aide pas beaucoup.

Voici un fichier avec un exemple. Le but est d'avoir chaque ligne de la cellule dans la colonne 2 soit 6 lignes. Il doit s'agir de car(10) qui sépare les lignes de la cellule.

Merci 🙂.
 

Pièces jointes

Re : Dispatcher le texte d'une cellule dans plusieurs cellules

Re , bonjour Jean-Noël

Merci beaucoup Pierrot 🙂

En mettant mon texte dans la cellule B1, on obtient les lignes en A1 et suivantes. Quel talent 😱.


Code:
Range("A1").Resize(UBound(Split(Range("B1"), vbLf)) + 1).Value = Application.Transpose(Split(Range("B1"), vbLf))

Jean-Noël: il a du arriver maintenant 😀.
 
Re : Dispatcher le texte d'une cellule dans plusieurs cellules

Re 🙂,
Oui, il est arrivé 😛...
Juste pour le fun, une petite fonction personnalisée avec un RegExp 😉
Code:
Function Découpe(ADécouper As String, Position As Integer) As String
Dim Matches
Application.Volatile
With CreateObject("vbscript.regexp")
    .Global = True
    .Pattern = "[^" & Chr(10) & Chr(13) & "]+"
    Set Matches = .Execute(ADécouper)
    If Matches.Count > Position Then Découpe = Matches(Position)
End With
End Function
Position part de 0 à incrémenter pour chaque ligne 😉.
Seul avantage par rapport au code de Pierrot, peut traiter en même temps Chr(10) et Chr(13) 🙄...
Bonne suite 😎
 
Re : Dispatcher le texte d'une cellule dans plusieurs cellules

Re 🙂,
J'avoue 😛...
Mais bon, vu que je te l'avais concocté, cela aurait été dommage de ne pas le poster 🙄...
La pluralité n'est pas un problème en soi, vu qu'il suffirait d'utiliser un Replace pour transformer les Chr(10) en Chr(13) avant le Split 😉...
Par contre, pour ceux qui souhaiterait faire le même type de manip avec du langage balisé type HTML ou XML afin de passer à la ligne suivante à chaque début de balise par exemple, là, le Pattern RegExp prendrait toute sa dimension 🙂.
Bonne soiré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

Réponses
5
Affichages
169
Retour