macro VBA

  • Initiateur de la discussion uma
  • Date de début
U

uma

Guest
Bonjour,

j'ai un tableau sous Excel qui est généré automatiquement à partir d'Access et j'aimerais créer une macro pour mettre le fond des cellules en couleurs selon leur valeur. La taille du tableau n'est pas fixe, au fur et à mesure que l'on insère des éléments dans la base de données sous Access, le tableau s'agrandit en ligne et en colonne.
Ce que je dois faire, c'est comparer pour chaque lignes, les valeurs à partir de la colonne E jusqu'à .... avec celles des colonnes C et D si elles existent. Si la valeur est comprise entre C et D , on met la cellule en orange et si elle est supérieure à D, on met la cellule en rouge.
La dernière fois que j'ai utilisé VBA remonte à il y a cinq ans et je ne vois vraiment pas comment faire cela.
Merci d'avance pour votre aide
 

Pièces jointes

  • ana.zip
    35.4 KB · Affichages: 23
  • ana.zip
    35.4 KB · Affichages: 17
  • ana.zip
    35.4 KB · Affichages: 19
R

Robert

Guest
Salut Uma, salut le forum,

Voici le code d'une macro qui devrait fonctionner quel que soit le nombre de lignes et de colonnes rajoutées. Pense à supprimer les mises en formes conditionnelles !

Public Sub couleur()
'délimite le tableau
Dim lign As Integer
lign = Range("A65536").End(xlUp).Row
Dim col As Integer
col = Range("A6").End(xlToRight).Column
'couleur des cellules
For Each cel In Range(Cells(7, 5), Cells(lign, col))
'élimine les cellules vides
If cel.Value = "" Then GoTo fin
If Cells(cel.Row, 3).Value = "(vide)" Then GoTo fin
If Cells(cel.Row, 4).Value = "(vide)" Then GoTo fin
'orange
If cel.Value > Cells(cel.Row, 3).Value And cel.Value < Cells(cel.Row, 4).Value Then
cel.Interior.ColorIndex = 45
End If
'rouge
If cel.Value > Cells(cel.Row, 4).Value Then
cel.Interior.ColorIndex = 3
End If
fin:
Next
End Sub


À plus,

Robert
 

Discussions similaires

Réponses
17
Affichages
535
Réponses
7
Affichages
365

Statistiques des forums

Discussions
312 684
Messages
2 090 916
Membres
104 698
dernier inscrit
miespetico