Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

retour chariot

5 réponses
Avatar
Gildo
Bonjour,

Comment faire pour générer un saut de ligne (retour chariot) dès qu’il y a
plus de trois blancs dans une cellule, ce dans une colonne précise ?
En clair je reçois mes données ainsi dans la cellule :
Toto toto toto
je veux les ordonner comme suit dans la cellule :
Toto
toto
toto
si vous avez une idée je suis preneur par avance merci.

5 réponses

Avatar
Philippe.R
Bonsoir,
Cette petite procédure, à copier dans un module ordinaire :

Sub revoiligne()
For Each c In Selection
c.Value = Application.WorksheetFunction _
.Substitute(c.Value, " ", Chr(10))
Next c
End Sub

qui remplace les groupes de 3 espaces par un retour à la ligne, conviendrait
il ?
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Gildo" a écrit dans le message de
news:
Bonjour,

Comment faire pour générer un saut de ligne (retour chariot) dès qu’il y a
plus de trois blancs dans une cellule, ce dans une colonne précise ?
En clair je reçois mes données ainsi dans la cellule :
Toto toto toto
je veux les ordonner comme suit dans la cellule :
Toto
toto
toto
si vous avez une idée je suis preneur par avance merci.



Avatar
JB
Bonsoir,

For Each c In Selection
c.Value = Replace(Application.Trim(c), " ", vbLf)
Next c

JB
http://boisgontierjacques.free.fr

On 25 fév, 20:04, "Philippe.R" <AS_rauphil_chez_wanadoo.fr> wrote:
Bonsoir,
Cette petite procédure, à copier dans un module ordinaire :

Sub revoiligne()
For Each c In Selection
c.Value = Application.WorksheetFunction _
.Substitute(c.Value, " ", Chr(10))
Next c
End Sub

qui remplace les groupes de 3 espaces par un retour à la ligne, conviend rait
il ?
--
Avec plaisirhttp://dj.joss.free.fr/trombine.htmhttp://jacxl.free.fr/mpfe/t rombino.html
Philippe.R
Pour se connecter au forum :http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Gildo" a écrit dans le message denews :



Bonjour,

Comment faire pour générer un saut de ligne (retour chariot) dès q u'il y a
plus de trois blancs dans une cellule, ce dans une colonne précise ?
En clair je reçois mes données ainsi dans la cellule :
Toto toto toto
je veux les ordonner comme suit dans la cellule :
Toto
toto
toto
si vous avez une idée je suis preneur par avance merci.- Masquer le te xte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
francois.forcet
Bonjours Gildo

Soit la colonne A à traiter ce code devrait convenir :

Do While Range("A1").Offset(i, 0).Address <>
Range("A65535").End(xlUp).Offset(1, 0).Address
If UBound(Split(Range("A1").Offset(i, 0), " ")) >= 2 Then
For j = 1 To UBound(Split(" " & Range("A1").Offset(i, 0), " "))
A = A & Split(" " & Range("A1").Offset(i, 0), " ")(j) & vbLf
Next
Range("A1").Offset(i, 0) = Mid(A, 1, Len(A) - 1)
End If
i = i + 1
Loop

Dis moi !!!!!
Avatar
Gildo
Bonjour et merci pour vos réponses,

Toutes les solutions fonctionnent mais j’ai sans doute mal rédigé mon post.
En fait dans vos soluces les séries de mots qu’elles soient séparées par un
ou n caractères se voient affectées d’un retour chariot. Ce que je cherche à
faire c’est à partir de trois blancs à n blancs 1 seul retour chariot ex :

Toto toto (7 blancs) toto

donne :

Toto toto
toto

merci en tout cas pour vos posts précédents
Ps : j’ai oublié mes lunettes aujourd’hui donc gaffe à l’orthographe


"" wrote:

Bonjours Gildo

Soit la colonne A à traiter ce code devrait convenir :

Do While Range("A1").Offset(i, 0).Address <>
Range("A65535").End(xlUp).Offset(1, 0).Address
If UBound(Split(Range("A1").Offset(i, 0), " ")) >= 2 Then
For j = 1 To UBound(Split(" " & Range("A1").Offset(i, 0), " "))
A = A & Split(" " & Range("A1").Offset(i, 0), " ")(j) & vbLf
Next
Range("A1").Offset(i, 0) = Mid(A, 1, Len(A) - 1)
End If
i = i + 1
Loop

Dis moi !!!!!



Avatar
Gildo
J’ai fini par faire ça … c’est pas beau mais ça marche.
Je joue sur les impairs et les paires et passe 5 fois la routine

Intersect(Range("k1", Range("k" & Range("k:k").Find("*", , , , xlByRows,
xlPrevious).Row)), _
Selection.CurrentRegion).Select
For i = 1 To 5
For Each c In Selection
c.Value = Application.WorksheetFunction _
.Substitute(c.Value, " ", Chr(10))
c.Value = Replace(Application.Trim(c), " ", vbLf)
Next c
For Each c In Selection
c.Value = Application.WorksheetFunction _
.Substitute(c.Value, Chr(10) & Chr(10), vbLf)
c.Value = Replace(Application.Trim(c), vbLf & vbLf, vbLf)
Next c

Next i


MERCI ENCORE A TOUS


"Gildo" wrote:

Bonjour et merci pour vos réponses,

Toutes les solutions fonctionnent mais j’ai sans doute mal rédigé mon post.
En fait dans vos soluces les séries de mots qu’elles soient séparées par un
ou n caractères se voient affectées d’un retour chariot. Ce que je cherche à
faire c’est à partir de trois blancs à n blancs 1 seul retour chariot ex :

Toto toto (7 blancs) toto

donne :

Toto toto
toto

merci en tout cas pour vos posts précédents
Ps : j’ai oublié mes lunettes aujourd’hui donc gaffe à l’orthographe


"" wrote:

Bonjours Gildo

Soit la colonne A à traiter ce code devrait convenir :

Do While Range("A1").Offset(i, 0).Address <>
Range("A65535").End(xlUp).Offset(1, 0).Address
If UBound(Split(Range("A1").Offset(i, 0), " ")) >= 2 Then
For j = 1 To UBound(Split(" " & Range("A1").Offset(i, 0), " "))
A = A & Split(" " & Range("A1").Offset(i, 0), " ")(j) & vbLf
Next
Range("A1").Offset(i, 0) = Mid(A, 1, Len(A) - 1)
End If
i = i + 1
Loop

Dis moi !!!!!