Microsoft 365 Code VBA police de couleur

DR85

XLDnaute Junior
Bonjour,

Dans le fichier j’ai une colonne avec des nombres. Certains ne sont pas en police de couleur noire.
Si une cellule de la colonne G n’est pas en police de couleur noire alors renvoyer le texte « PROD » en colonne V (même ligne).
Précision: la colonne G se remplira au fil des jours.
pourriez vous svp m’aider?
cordialement
Damien
 

Pièces jointes

  • Copie de essai.xlsx
    9.2 KB · Affichages: 6

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Autre proposition avec une Sub :

VB:
Sub CheckTxtColor()
Dim DerL As Long, Rg As Range, R, L As Long

    With Feuil1
        DerL = .Cells(.Rows.Count, 7).End(xlUp).Row
        Set Rg = .Range("G1:G" & DerL)
        For Each R In Rg
            L = R.Row
            If R.Font.ColorIndex <> 1 Then
                .Range("V" & L).Value = "Prod"
            Else
                .Range("V" & L).Value = ""
            End If
        Next
    End With
    
    Set Rg = Nothing
    
End Sub
 

patricktoulon

XLDnaute Barbatruc
Mais lorsque la colonne G "s'agrandit" il faut penser à copier les formules de la colonne V.
Sinon le faire par macro avec un bouton de mise à jour, ou copier la formule en V sur plusieurs milliers de lignes pour que cela soit automatique.
bonjour

voilà le genre de choses a quoi on a à faire quand on travaille pas avec des tableaux structurés
;)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour,

Attention! Quand vous changez la couleur de police, les résultats des fonctions (ou procédures) ne sont pas recalculés. Le changement de couleur (police et/ou fond de la cellule) ne déclenche pas d'évènement au niveau d'Excel. Il faut actualiser manuellement. Utiliser le forçage du recalcul par la combinaison des trois touches Ctrl+Alt+F9 (touche de fonction F9).
 
Dernière édition:

DR85

XLDnaute Junior
Bonjour,

Attention! Quand vous changez la couleur de police, les résultats des fonctions (ou procédures) ne sont pas recalculés. Le changement de couleur (police et/ou fond de la cellule) ne déclenche pas d'évènement au niveau d'Excel. Il faut actualiser manuellement. UUtiliser le forçage du recalcul par la combinaison des trois touches Ctrl+Alt+F9 (touche de fonction F9).
Bonjour,
Effectivement il n’y a pas d’actualisation automatique. Dommage c’était mon objectif. 😩
Je vais essayer le forçage…
Ou peut être un bouton actualiser, ça peut fonctionner?
 

DR85

XLDnaute Junior
Autre proposition avec une Sub :

VB:
Sub CheckTxtColor()
Dim DerL As Long, Rg As Range, R, L As Long

    With Feuil1
        DerL = .Cells(.Rows.Count, 7).End(xlUp).Row
        Set Rg = .Range("G1:G" & DerL)
        For Each R In Rg
            L = R.Row
            If R.Font.ColorIndex <> 1 Then
                .Range("V" & L).Value = "Prod"
            Else
                .Range("V" & L).Value = ""
            End If
        Next
    End With
   
    Set Rg = Nothing
   
End Sub
Bonjour,
Je n’ai pas encore essayer car la premiere proposition fonctionne. Mais je garde votre proposition pour un prochain test. Merci
 

Discussions similaires

Réponses
6
Affichages
334

Statistiques des forums

Discussions
312 207
Messages
2 086 232
Membres
103 161
dernier inscrit
Rogombe bryan