Mise en forme cellule négative par vba

Résolu
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 - 22 sept. 2023 à 19:06
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 23 sept. 2023 à 09:46

Bonjour;

Actuellement j'utilise se code pour mettre en forme la dernière ligne de mon tableau mais j'aimerais ajouter une condition : si une cellule est négative sur la dernière ligne  j'aimerais que le fond

'permet de mettre en forme l'avant derniere ligne du tableau
deli = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
Rows("" & deli - 1 & ":" & deli - 1).Font.Bold = False 'Remet l'avant derniere ligne au format normale
Rows("" & deli - 1 & ":" & deli - 1).Font.Size = 9 'Remet l'avant derniere ligne au format 11
Rows("" & deli - 1 & ":" & deli - 1).Font.Color = vbBlack 'Remet l'avant derniere ligne au format noir
'************************************************************************************************
'permet de mettre en forme la derniere ligne du tableau
Rows("" & deli & ":" & deli).Font.Bold = True  ' Met la derniere ligne au format gras
Rows("" & deli & ":" & deli).Font.Size = 9 ' Met la derniere ligne au format 11
Rows("" & deli & ":" & deli).Font.Color = vbBlue ' Met la derniere ligne au format bleu

de la cellule passe en rouge et la police en gras blanc

3 réponses

Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
Modifié le 22 sept. 2023 à 20:28

Bonjour,

En fin de code juste avant ton End Sub colle ce code

Rows("" & deli & ":" & deli).Select
For Each Cellule In Selection 'plage à adapter
    If Cellule.Value < 0 Then
    Cellule.Interior.Color = vbRed
    Cellule.Font.Color = vbWhite
    End If
  Next
ActiveCell.Select


0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
22 sept. 2023 à 21:28

Re,

sur la base de ton code tu peux remplacer mon code proposé post 1 par

For Each Cellule In Range("" & deli & ":" & deli)
    If Cellule.Value < 0 Then
    Cellule.Interior.Color = vbRed
    Cellule.Font.Color = vbWhite
    End If
  Next
0
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 2
23 sept. 2023 à 09:04

Bonjour Mike-31

je viens de tester vos  codes et les deux fonctionnent parfaitement. Merci de votre réactivité

0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
23 sept. 2023 à 09:46

Re, 

par contre ce qui me dérange dans ton code, c'est que le formatage des cellules s'applique à la ligne entière soit sur 16384 colonne.

quel est le nombre de colonne concerné


0