VBA - Mettre en gras une partie de la cellule

Bonsoir,

Malgré toutes les méthodes proposées sur les différents forums que j'ai parcouru, j'ai l'impression qu'aucune des propositions faite ne convienne à ma problématique.

Dans mon document Excel, j'ai une colonne dans laquelle viennent s'inscrire plusieurs informations.

Nom d'un lieu Type nomenclature : Code

Et j'aimerais que mes données se présentent ainsi :

Nom d'un lieu Type nomenclature : Code

Mon problème est que je ne peux pas compter le nombre de caractères avant car le nom de lieu varie toujours. Je ne peux pas indiquer quoi mettre en gras car le code varie toujours également.

Ces deux problèmes soulevés, je me retrouve déjà à ne plus pouvoir utiliser la plupart des propositions faites sur internet.

Qui sont :

Mafeuille.Cells(plage de données).Characters(Start:=X, Length:=Y).Font.FontStyle = "Bold"

Ce qui revient à faire ça :

Range(X).Characters(Y, Z).Font.Bold = True
Range(X).Characters(InStr(1, Range(X).Value, "Y"), Len("Y")).Font.Bold = True

Une solution serait de compter le nombre d'espaces à partir de la gauche, ainsi, on pourrait demander à Excel de mettre en gras uniquement les caractères à partir du 4ème espace en partant de la gauche (car, en théorie, ce nombre d'espaces ne devrait pas varier.

Avez-vous une idée ?

Faudrait-il un document en guise d'exemple ?

Merci de votre attention !

Bonne soirée

Bonjour,

à tester,

n = Application.Find("T", Cells(1, 1))
k = Len(Cells(1, 1)) - n
Cells(1, 1).Characters(Start:=n, Length:=k).Font.Bold = True

Salut Le Drosophile,

Salut Isa,

quelques lignes de tes données, peut-être ?

Depuis le temps, tu devrais savoir qu'on ne peut travailler sérieusement sans cela !!!

A+

re,

@Isa ()

Sur la cellule A1 de la feuil1, j'ai effectué le test, j'avais soit le T pas en gras ainsi que la dernière lettre 'e'

j'ai placé un bouton de commande sur la feuil1

est ajouté n à -1 et k +2 comme cela:

Option Explicit
Dim n, k

Sub Bouton1_Cliquer()
With Sheets("Feuil1")
On Error Resume Next
n = Application.Find("T", Cells(1, 1))
k = Len(Cells(1, 1)) - n
Cells(1, 1).Characters(Start:=n - 1, Length:=k + 2).Font.Bold = True
End With
End Sub
ztestdede1

Bonsoir,

J'ai testé, ça marche pas tout à fait comme espéré.

Ça semble prendre pour exemple la première cellule pour appliquer le "gras" aux autres cellules, qui ne sont pas composées pareil.

Je n'ai pas jugé très utile d'ajouter un exemple au départ, mais je le joins donc à ce message !

Dans le document il y a le code proposé par i20100.

Merci

Edit : Je vais tester la solution de Andre13 !

Edit 2 : Certaines valeurs avant "code" sont mises en gras haha.

57test01.xlsm (20.31 Ko)

re,

à tester,

correction:

Private Sub CommandButton1_Click()
Dim n As Integer, k As Integer, rw As Long
With Sheets("A")
    rw = .Cells(Rows.Count, 1).End(xlUp).Row
    For i = 3 To rw
        n = Application.Find(":", .Cells(i, 1)) - 5
        k = Len(.Cells(i, 1)) - n + 1
        Cells(i, 1).Characters(Start:=n, Length:=k).Font.Bold = True
    Next i
End With
End Sub

Salut l'équipe,

Private Sub CommandButton1_Click()
'
Dim iStep%
'
For x = 3 To Range("A" & Rows.Count).End(xlUp).Row
    iStep = InStr(Cells(x, 1), "Code")
    If iStep > 0 Then Cells(x, 1).Characters(iStep, Len(Cells(x, 1)) - (iStep - 1)).Font.Bold = True
Next
'
End Sub

A+

Re, Isa^^,

chez moi cela fonctionne en mettant

Dim i '(pour la déclaration de la variable)

' et

' +4 à K

Cells(i, 1).Characters(Start:=n, Length:=k + 4).Font.Bold = True

@Curiculis57

j'ai déclaré la variable x (Dim x)

et cela fonctionne également de mon côté ^^

merci à vous deux

La solution proposée par curulis57 fonctionne très bien pour l'exemple. Une fois appliquée à mon document qui comporte beaucoup de variantes de codes, points, virgules ou autres, ça fonctionne également parfaitement !

Je ne savais pas qu'on pouvait dimensionner sans précision Dim iStep% C'est pas étrange ? En tout cas ça fonctione

Merci beaucoup pour votre aide ! Ce petit bout de code va ENFIN me permettre de finaliser mon gros document !

Salut Droso,

% est le "diminutif" de as integer !

A+

Rechercher des sujets similaires à "vba mettre gras partie"