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

  • Initiateur de la discussion Initiateur de la discussion jiby
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

Dernière édition:
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 : 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.
 
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 : 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:
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour