XL 2019 mettre la taille de police du 1er mot à 13 2 ème mot à 11

dindin

XLDnaute Occasionnel
bonjour le Forum
j'ai dans la colonne A des mots
la colonne B des chiffres entre parenthèse.
j'ai réussi à les assembler dans la colonne C en utilisant un code VBa
par contre je n'arrive pas à mettre la taille de police du 1er mot à 13 2 ème mot à 11
voir capture
Merci d'avance
j'aurais besoin de votre aide.
Capture.JPG
 

Jacky67

XLDnaute Barbatruc
bonjour le Forum
j'ai dans la colonne A des mots
la colonne B des chiffres entre parenthèse.
j'ai réussi à les assembler dans la colonne C en utilisant un code VBa
par contre je n'arrive pas à mettre la taille de police du 1er mot à 13 2 ème mot à 11
voir capture
Merci d'avance
j'aurais besoin de votre aide.Regarde la pièce jointe 1050010
Bonjour,
Une piste
Avec mot en A1, chiffre en B1 le tout concatener en C1
VB:
Sub format()
[c1] = [a1] & [b1]
[c1].Characters(1, Len([a1])).Font.Size = 13
[c1].Characters(Len([a1]) + 1, Len([b1])).Font.Size = 11
End Sub
 
Dernière édition:

dindin

XLDnaute Occasionnel
Bonjour,
Une piste
Avec mot en A1, chiffre en B1 le tout concatener en C1
VB:
Sub format()
[c1] = [a1] & [b1]
[c1].Characters(1, Len([a1])).Font.Size = 13
[c1].Characters(Len([a1]) + 1, Len([b1])).Font.Size = 11
End Sub


j'arrive pas à l'adapter à lacolonne C
VB:
Sub CONCAT()
For i = 1 To Range("C" & Rows.Count).End(xlUp).Row
On Error Resume Next
'Cells(i, 4).Value = Cells(i, 1) & " " & Range("A1").Value & Cells(i, 2) & Range("B1").Value
'Cells(i, 4).Value = Cells(i, 1) & vbCrLf & Range("A1").Value & Cells(i, 2) & Range("B1").Value
'Cells(i, 4).Value = Cells(i, 4).Characters(1, Len(Cells(i, 4)).Font.Size = 18 & Cells(i, 4).Characters(Len(Cells(i, 4)) + 1, Len(Cells(i, 4))).Font.Size = 10
Cells(i, 3).Characters(1, Len([C])).Font.Size = 18
Cells(i, 3).Characters(Len([C]) + 1, Len([C])).Font.Size = 10
Next
End Sub
 

Jacky67

XLDnaute Barbatruc
j'arrive pas à l'adapter à lacolonne C
VB:
Sub CONCAT()
For i = 1 To Range("C" & Rows.Count).End(xlUp).Row
On Error Resume Next
'Cells(i, 4).Value = Cells(i, 1) & " " & Range("A1").Value & Cells(i, 2) & Range("B1").Value
'Cells(i, 4).Value = Cells(i, 1) & vbCrLf & Range("A1").Value & Cells(i, 2) & Range("B1").Value
'Cells(i, 4).Value = Cells(i, 4).Characters(1, Len(Cells(i, 4)).Font.Size = 18 & Cells(i, 4).Characters(Len(Cells(i, 4)) + 1, Len(Cells(i, 4))).Font.Size = 10
Cells(i, 3).Characters(1, Len([C])).Font.Size = 18
Cells(i, 3).Characters(Len([C]) + 1, Len([C])).Font.Size = 10
Next
End Sub
Re..
Essaye comme ceci
Dans l'exemple les noms sont en colonne A, les chiffres (sans parenthèse) en colonne B, le résultat en colonne C
VB:
Sub CONCAT()
    Dim C As Range
    For Each C In Range("c1:c" & Cells.Find("*", , , , xlByRows, xlPrevious).Row)
        C = C.Offset(, -2) & " (" & C.Offset(, -1) & ")"
        C.Characters(1, Len(C.Offset(, -2))).Font.Size = 18
        C.Characters(Len(C.Offset(, -2)) + 1, Len(C.Offset(, -1)) + 3).Font.Size = 10
    Next
End Sub
 

Pièces jointes

  • format.xlsm
    16.6 KB · Affichages: 8

dindin

XLDnaute Occasionnel
Re..
Essaye comme ceci
Dans l'exemple les noms sont en colonne A, les chiffres (sans parenthèse) en colonne B, le résultat en colonne C
VB:
Sub CONCAT()
    Dim C As Range
    For Each C In Range("c1:c" & Cells.Find("*", , , , xlByRows, xlPrevious).Row)
        C = C.Offset(, -2) & " (" & C.Offset(, -1) & ")"
        C.Characters(1, Len(C.Offset(, -2))).Font.Size = 18
        C.Characters(Len(C.Offset(, -2)) + 1, Len(C.Offset(, -1)) + 3).Font.Size = 10
    Next
End Sub
Merci jacky67
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour a tous les deux
faite moi plaisir précisez le parent ; sait on jamais que ce soit pas le sheets actif qui est concerné ;) dans un with par exemple
VB:
Sub CONCAT()
    Dim C As Range
    with sheets("toto")
        For Each C In .Range("c1:c" & .Cells.Find("*", , , , xlByRows, xlPrevious).Row)
        C = C.Offset(, -2) & " (" & C.Offset(, -1) & ")"
        C.Characters(1, Len(C.Offset(, -2))).Font.Size = 18
        C.Characters(Len(C.Offset(, -2)) + 1, Len(C.Offset(, -1)) + 3).Font.Size = 10
        Next
end with

End Sub

après le find previous!!!???? je vois pas trop pourquoi sortir l'artillerie lourde mais bon ???o_O
sachant que quand un find est lancé on ne l’arrête pas il s’arrête tout seul quand il trouve et génère une erreur quand il trouve rien c'est ballo !!! o_O:confused:il est de toute maniere plus lourd car il part de tout en bas

donc
For Each C In .Range("c1", .Cells(rows.count,"C").end(xlup))

;)
 

dindin

XLDnaute Occasionnel
re
Bonjour a tous les deux
faite moi plaisir précisez le parent ; sait on jamais que ce soit pas le sheets actif qui est concerné ;) dans un with par exemple
VB:
Sub CONCAT()
    Dim C As Range
    with sheets("toto")
        For Each C In .Range("c1:c" & .Cells.Find("*", , , , xlByRows, xlPrevious).Row)
        C = C.Offset(, -2) & " (" & C.Offset(, -1) & ")"
        C.Characters(1, Len(C.Offset(, -2))).Font.Size = 18
        C.Characters(Len(C.Offset(, -2)) + 1, Len(C.Offset(, -1)) + 3).Font.Size = 10
        Next
end with

End Sub

après le find previous!!!???? je vois pas trop pourquoi sortir l'artillerie lourde mais bon ???o_O
sachant que quand un find est lancé on ne l’arrête pas il s’arrête tout seul quand il trouve et génère une erreur quand il trouve rien c'est ballo !!! o_O:confused:il est de toute maniere plus lourd car il part de tout en bas

donc
For Each C In .Range("c1", .Cells(rows.count,"C").end(xlup))

;)

Merci
patricktoulon

le coude fonctionne très bien ainsi que les autres.
par contre j'ai fais une bêtise après avoir posté mon message .
j'ai supprimé les donné des colonnes A et B .
j'essaye depuis hier de modifier le code pour qu'il fasse la changement directement sur la colonne C sans grouper les mots ensemble.
c'est dire mettre le 1 er mot en 14 et le 2 ème en 11
voici ce que j'ai pu faire
VB:
Sub CONCAT()
    Dim C As Range
    For Each C In Range("c1:c" & Cells.Find("*", , , , xlByRows, xlPrevious).Row)
        C = C.Offset(, 0) & " (" & C.Offset(, 0) & ")"
        C.Characters(1, Len(C.Offset(, 0))).Font.Size = 18
        C.Characters(Len(C.Offset(, 0)) + 1, Len(C.Offset(, 0)) + 3).Font.Size = 10
    Next
End Sub
je n'arrive pas à l'adapter pour qu'il fasse le chabgment directement sur la colonne C
Capture.PNG
 

patricktoulon

XLDnaute Barbatruc
re
ben il faut simplement déterminer la longueur du 1 er mot
donc direct en travaillant sur colonne "C" sans passer par une concaténation de "A" et "B"
et en prime on gère les cellules éventuellement vides et ou celles qui n'ont pas le format "abcdef....(xx...)

VB:
Sub grosetpetit()
    Dim C As Range, x&
    With ActiveSheet    ' ou sheets("toto")
        For Each C In .Range("c1", .Cells(Rows.Count, "C").End(xlUp))
            If C.Value <> "" Then
                 x = Len(Split(C, "(")(0))
                If x < Len(C.Text) Then C.Font.Size = 10: C.Characters(1, x).Font.Size = 18
            End If
        Next
    End With
End Sub

;)
 

dindin

XLDnaute Occasionnel
re
ben il faut simplement déterminer la longueur du 1 er mot
donc direct en travaillant sur colonne "C" sans passer par une concaténation de "A" et "B"
et en prime on gère les cellules éventuellement vides et ou celles qui n'ont pas le format "abcdef....(xx...)

VB:
Sub grosetpetit()
    Dim C As Range, x&
    With ActiveSheet    ' ou sheets("toto")
        For Each C In .Range("c1", .Cells(Rows.Count, "C").End(xlUp))
            If C.Value <> "" Then
                 x = Len(Split(C, "(")(0))
                If x < Len(C.Text) Then C.Font.Size = 10: C.Characters(1, x).Font.Size = 18
            End If
        Next
    End With
End Sub

;)
Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 207
Membres
103 158
dernier inscrit
laufin