bonjour,

J'ai encore besoin d'un petit conseil :


J'ai réalisé une petite macro qui prend des informations stockées dans un tableau dans une feuille, et qui insère ces informations dans une seule case dans une feuille2.

Exemple : le tableau en feuille1 contient la civilité du client (M., Mme), son nom, son prénom, adresse, n° de tél etc.
Le rendu se trouve en feuille 2 : on va grouper ces informations sur une même case (1 case = 1 client), pour constituer des "mini fiches clients".

Ma question : je dois mettre en forme ces données (la première ligne de la case en gras, la seconde en rouge etc.), et je ne sais pas comment faire.

Pour l'instant, voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
Sub Macro1()
 
Dim Message As String
 
    Worksheets("Rendu").Select
    Range("A1").Select
    Worksheets("Saisie").Select
    Range("A2").Select
    While ActiveCell.Value <> ""
        Message = ActiveCell.Value & " " & ActiveCell.Offset(0, 1).Value & " " & ActiveCell.Offset(0, 2).Value & _
        Chr(10) & ActiveCell.Offset(0, 3).Value & Chr(10)
        If ActiveCell.Offset(0, 4).Value <> "" Then
            Message = Message & ActiveCell.Offset(0, 4).Value & Chr(10)
        End If
        Message = Message & ActiveCell.Offset(0, 5).Value & " " & ActiveCell.Offset(0, 6).Value & Chr(10) & Chr(10) & ActiveCell.Offset(0, 7).Value & " " & ActiveCell.Offset(0, 8).Value & Chr(10)
        If ActiveCell.Offset(0, 9).Value <> "" Then
            Message = Message & ActiveCell.Offset(0, 9).Value & Chr(10)
        End If
        If ActiveCell.Offset(0, 10).Value <> "" Then
            Message = Message & ActiveCell.Offset(0, 10).Value & Chr(10)
        End If
        Message = Message & Chr(10) & Chr(10) & ActiveCell.Offset(0, 11).Value & Chr(10) & ActiveCell.Offset(0, 12).Value
        Worksheets("Rendu").Select
        ActiveCell.Value = Message
        ActiveCell.Offset(1).Select
        Worksheets("Saisie").Select
        ActiveCell.Offset(1).Select
    Wend
 
End Sub
Comment puis-je faire pour "découper" mon message et mettre certaines zones en forme? J'ai essayé avec l'éditeur de macro, et il me donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
    Range("A1").Select
    ActiveCell.FormulaR1C1 = _
        "M. MONFORT Dimitri" & Chr(10) & "20, Résidence de Kervihan" & Chr(10) & "29170 FOUESNANT" & Chr(10) & "" & Chr(10) & "OF Ed 354 Suppl : OUI" & Chr(10) & "Non livré hier" & Chr(10) & "" & Chr(10) & "" & Chr(10) & "Boîte au fond du hall" & Chr(10) & ""
    With ActiveCell.Characters(Start:=1, Length:=18).Font
        .Name = "Arial"
        .FontStyle = "Gras"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    With ActiveCell.Characters(Start:=19, Length:=105).Font
        .Name = "Arial"
        .FontStyle = "Italique"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 3
    End With
Mais ça ne me convient pas : le problème est que je ne connais pas d'avance la taille des informations rentrées dans le tableau, je ne peux donc pas donner un point de départ et un point d'arrivé (ça serait trop facile, hein!).

Si vous ne vous êtes pas laissés découragés par la longueur de mon message et que vous pouvez me donner un coup de pouce, d'avance, merci.