[RESOLU] Mettre cellule en gras si celle-ci commence par du texte

jiby

XLDnaute Nouveau
Bonjour à tous,

Ayant un niveau plus que basique en VBA j'aurais besoin d'un petit coup de main.

Je cherche à mettre en gras toutes les cellule de la colonne A qui commence par du texte.

Le code ci-dessous permet de mettre en gras la cellule A1 si elle commence par "M". Sachant que le chose doit être beaucoup plus complexe, il faut que ma macro soit capable de répéter ce code sur toute les cellules de la colonne A qui commence par une lettre en minuscule ou majuscule. (Faut-il, comme je le pense utiliser des variables ?)

Code:
If Range("A1").Value Like "M*" Then Range("A1").Font.Bold = True

Mon fichier en pièce jointe vous expliquera encore mieux.

Merci d'avance à tous ceux qui pourront m'aider,

Jiby
 

Pièces jointes

  • TexteGras.xlsx
    8.9 KB · Affichages: 65
Dernière édition:

jiby

XLDnaute Nouveau
Re : Mettre cellule en gras si celle-ci commence par du texte

J'ai été un peu trop vite !

Un problème se pose lorsque la cellule est généré par une formule ! La macro ne prend pas en compte ce type de cellule. Je dois surement rajouter un "value" quelque part mais où ?
 

Papou-net

XLDnaute Barbatruc
Re : Mettre cellule en gras si celle-ci commence par du texte

J'ai été un peu trop vite !

Un problème se pose lorsque la cellule est généré par une formule ! La macro ne prend pas en compte ce type de cellule. Je dois surement rajouter un "value" quelque part mais où ?

Re jiby,

Dans ce cas, modifie la macro comme ceci :

Code:
Private Sub CommandButton1_Click()
With ActiveSheet
  For lg = 1 To .Range("A" & Rows.Count).End(xlUp).Row
    If Not IsNumeric(Left(.Cells(lg, 1), 1)) Then .Cells(lg, 1).Font.Bold = True Else .Cells(lg, 1).Font.Bold = False
  Next
End With
End Sub
Cordialement.
 

jiby

XLDnaute Nouveau
Re : Mettre cellule en gras si celle-ci commence par du texte

re Papou-net,

Ta macro marche nickel, par contre sa lag, c'est peut-être du au fait que la macro doit analyser 600 lignes ?

Si tu as une solution je suis preneur !

Encore un grand merci à toi !
 

Papou-net

XLDnaute Barbatruc
Re : Mettre cellule en gras si celle-ci commence par du texte

re Papou-net,

Ta macro marche nickel, par contre sa lag, c'est peut-être du au fait que la macro doit analyser 600 lignes ?

Si tu as une solution je suis preneur !

Encore un grand merci à toi !

RE

Peut-être en ajoutant 2 lignes ?

Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdatint = False
With ActiveSheet
  For lg = 1 To .Range("A" & Rows.Count).End(xlUp).Row
    If Not IsNumeric(Left(.Cells(lg, 1), 1)) Then .Cells(lg, 1).Font.Bold = True Else .Cells(lg, 1).Font.Bold = False
  Next
End With
Application.ScreenUpdatint = True
End Sub
Cordialement.

Edit : j'ai mesuré 2,31 secondes pour 10000 lignes.
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Mettre cellule en gras si celle-ci commence par du texte

Bonjour jiby, Papou-net :)

Sur un très grand tableau ceci devrait être nettement plus rapide :

Code:
Private Sub CommandButton1_Click()
Dim plage As Range
Application.ScreenUpdating = False
On Error Resume Next
Set plage = Range("A1", Cells(Rows.Count, 1).End(xlUp))
With plage.Offset(, 255)
  .FormulaR1C1 = "=-LEFT(RC1)"
  plage.Font.Bold = False
  Intersect(plage, .SpecialCells(xlCellTypeFormulas, 16).EntireRow).Font.Bold = True
  .ClearContents
End With
End Sub
Edit : avec 10000 lignes sur Win7/Excel 2010 => 0,18 seconde.

A+
 
Dernière édition:

Discussions similaires

Réponses
22
Affichages
3 K

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG