=substitue(b15;car(10)&car(10);car(10))
A noter : il est possible d'insérer un retour chariot dans un format personnalisé comme le seconde onglet de la pièce jointe pour une date (taper mmmm puis CTRL J puis aaaa)).
Selection.Replace What:=Chr(10) & Chr(10), Replacement:=Chr(10)
If Right(Selection, 1) = Chr(10) Then Selection = Left(Selection, Len(Selection) - 1)
Sub Synthese()
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
t = Selection.Rows.Count
Range(Cells(3, 2), Cells(t + 2, 2)).Select
For Each i In Selection
If i <> "" Then
s = InStr(i, Chr(10))
p1 = Left(i, s - 1)
p2 = Right(i, Len(i) - s)
phrase = phrase & p1 & Chr(10) & p2 & Chr(10)
End If
Next
Cells(t + 3, 2) = Left(phrase, Len(phrase) - 1)
Cells(t + 3, 2).Select
Gras
End Sub
Sub Gras()
Dim col$, C As Range, s, i%, n%
col = "B"
Columns(col).Cells.Font.Bold = False
On Error Resume Next 'à cause de la cellule fusionnée
For Each C In Columns(col).SpecialCells(xlCellTypeConstants)
s = Split(C, vbLf)
For n = 0 To UBound(s) Step 2
For i = 0 To n
decal = decal + Len(s(i)) + 1
Next
decal = decal - Len(s(0))
C.Characters(decal, Len(s(n))).Font.Bold = True
decal = 0
Next
Next
End Sub
Re,
je n'avais vu les macros existantes Synthese() et Gras(). plutôt que de rajouter une troisième macro, mieux vaut adapter les premières:
Code:Sub Synthese() Range("A2").Select Range(Selection, Selection.End(xlDown)).Select t = Selection.Rows.Count Range(Cells(3, 2), Cells(t + 2, 2)).Select For Each i In Selection If i <> "" Then s = InStr(i, Chr(10)) p1 = Left(i, s - 1) p2 = Right(i, Len(i) - s) phrase = phrase & p1 & Chr(10) & p2 & Chr(10) End If Next Cells(t + 3, 2) = Left(phrase, Len(phrase) - 1) Cells(t + 3, 2).Select Gras End Sub
Code:Sub Gras() Dim col$, C As Range, s, i%, n% col = "B" Columns(col).Cells.Font.Bold = False On Error Resume Next 'à cause de la cellule fusionnée For Each C In Columns(col).SpecialCells(xlCellTypeConstants) s = Split(C, vbLf) For n = 0 To UBound(s) Step 2 For i = 0 To n decal = decal + Len(s(i)) + 1 Next decal = decal - Len(s(0)) C.Characters(decal, Len(s(n))).Font.Bold = True decal = 0 Next Next End Sub
A+
je crois qu'il y a un décalage dans la mise en forme où une partie des caractères se met en gras.
Re,
a priori la macro Gras() mettait en gras, dans toutes les cellules de la colonne B, une ligne sur deux.
La modification apportée ne change pas cette règle, et il n'y avait aucun décalage lors des essais sur le classeur joint.
Reprécisez donc la règle de mise en forme, ainsi que le décalage constaté.
A+
Re et bonjour Si...,
J'avais bien pensé à cette astuce sur V*..., mais je crains que cette donnée ne soit qu'un exemple, et qu'au final on ait des noms de ville réels. Et là .... ?
A+