Retour à la ligne

Bonjour,

Ci joint un fichier excel T1:

1/ En rouge le point de départ

2/ En vert le résultat attendu

Ce que je cherche, c'est qu'à chaque caractère (en l'occurenca "a" dans mon fichier), je puisse obtenir le retour à la ligne.

Merci bien

70t1.zip (6.57 Ko)

Bonjour,

pour un retour à la ligne si la valeur de la cellule = "a",

à copier sur la page code de la feuille "F1"

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column >= 3 Then
 If Target.Value = "a" Then
   Target.Value = ""
   Application.Goto Cells(Target.Row + 1, 2)
   ActiveCell = "a"
 End If
End If
End Sub

Merci bien,

Y aurait il une solution avec la fonction chercher remplacer svp? ou une formule?

Merci

pour remplacer le caractère "a" dans chaque cellule par un retour à la ligne,

Cells.Replace What:="a", Replacement:=Chr(10), LookAt:=xlPart, MatchCase:=False
Cells.WrapText = True

Pardon mais c'est une macro? si oui je fais comment worksheet?

Merci

Ce que je cherche, c'est qu'à chaque caractère (en l'occurenca "a" dans mon fichier), je puisse obtenir le retour à la ligne.

il n'est pas possible d'exécuter une macro lorsqu'une cellule est en mode édition,

les possibilités sont de faire la "job" par un bouton ou bien par un événement.

quel est ton choix sur ces 2 possibilités ?

si ton choix est "événement", quel événement voudrais-tu utiliser ?

Bonjour,

Je n'avais pas saisi!

J'ai exécuté la seconde macro mais il remplace le "a" par un "espace". je cherche à faire un retour à la ligne à chaque fois qu'il voit "a" avec les cellules restants de la ligne.

Au départ j'ai:

a b c d a b c d a b c d

Et je veux obtenir:

a b c d

a b c d

a b c d

Avec la seconde macro, j'obtiens:

b c d b c d b c d

Merci

Bonjour,

vérifier si le format de cellule "renvoyer à la ligne automatiquement" est bien coché

J'ai coché pour toutes les cellules mais idem (fichier joint)

14t1.zip (10.70 Ko)

en regardant votre fichier je comprend encore moins,

voulez-vous faire un retour à la ligne à l'intérieur d'une cellule ou bien un change de ligne par exemple de la ligne 1 à la ligne 2 ?

Bonjour,

Merci de votre patience

Je reprends le sujet posté(plus haut):

Ci joint un fichier excel T111:

1/ En rouge le point de départ

2/ En vert le résultat attendu

Ce que je cherche, c'est qu'à chaque caractère (en l'occurenca "a" dans mon fichier), je puisse obtenir le retour à la ligne.

Pour répondre a votre question: je veux passer d'une ligne à la suivante pour obtenir le tableau en vert (à la place de celui en rouge svp)

Merci bien


Mon objectif est de mettre en colonne un champ bien précis pour faire des modifications globales sur la colonne concernée! merci

Bonjour,

J'ai pas tellement compris ou tu voulais en venir. Mais c'est pas grave, ci dessous une macro qui fait ce que tu veux. A coller dans un module simple, et a utiliser telle quelle.

Tu as quelques commentaires pour adapter selon tes besoins!

Yann

Sub retour_ligne()

Dim plageTableaudeBase As Range
Dim tabPlage() As Variant

Dim tabsortie() As String
Dim i As Long, j As Long
Dim lignesortie As Long, colsortie As Long
Dim conca As String
Dim TB() As String
Dim nbCell As Long

conca = ""

'A faire varier en fonction du caratere / de la chaine de caractere qui marque le retour à la ligne
Const caractereRetourLigne As String = "a"

'A faire varier selon tes besoin : Nom de feuille (ici F1) et delimitation de la plage de cellule (ici B4:M4)
Set plageTableaudeBase = ThisWorkbook.Sheets("F1").Range("B4:M4")

'=> Ne fonctionne que pour des plages horizontales

nbCell = plageTableaudeBase.Cells.Count
tabPlage = plageTableaudeBase.Value

For i = 1 To nbCell
conca = conca & tabPlage(1, i)
Next i

If InStr(conca, caractereRetourLigne) = 0 Then MsgBox "Caractere introuvable": Exit Sub

TB = Split(conca, caractereRetourLigne)

lignesortie = UBound(TB())
colsortie = 0
For i = 0 To UBound(TB())
    If Len(TB(i)) + 1 > colsortie Then colsortie = Len(TB(i)) + 1
Next i

ReDim tabsortie(lignesortie, colsortie) As String

For i = 0 To lignesortie

If Len(TB(i)) > 0 Then tabsortie(i, 0) = caractereRetourLigne

    For j = 1 To Len(TB(i))

    tabsortie(i, j) = Mid(TB(i), j, 1)

    Next j

Next i

'On colle (a adapter)
ThisWorkbook.Sheets("F1").Range(Cells(12, 2), Cells(12 + lignesortie, 2 + colsortie)).Value = tabsortie

End Sub

Merci Bien, super!

Pour continuer, une fois que j'ai modifié, comment remettre en ligne ?

(mon objectif est de pouvoir réimporter ensuite dans une application)!!!

Merci

Rechercher des sujets similaires à "retour ligne"