• Initiateur de la discussion Initiateur de la discussion Alain
  • 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 !

A

Alain

Guest
j'ai un tableau de prix de différents transporteurs par catégorie de poids.
J'ai attribué a chaque transporteur une couleur.
Je voudrais que le prix le plus faible prenne la couleur attribuée au transporteur concerné.

je travaille avec office xp.

Merci pour votre aide.
 
Salut Alain,

Si tu as un maximum de 3 transporteurs, tu peux le faire aisément par une mise en forme conditionnelle, au cas contraire il faut passer par une macro.

Mais la couleur doi-elle nécessairement être celle attribuée au transporteur le moins cher ?

Précise, et on te mettra sur la voie.

Ândré.
 
Bonjour Alain,

Tu trouveras en pièce jointe un petit exemple qui devrait t'aider à résoudre ton problème.

=====================================================
Private Sub Worksheet_Change(ByVal Target As Range)

Set TableauPrix = Range("B2:F10") 'Tableau des prix
ColonneTransporteurs = "A" 'Colonne des transporteurs

If Intersect(Target, TableauPrix) Is Nothing Then Exit Sub
For Each Col In TableauPrix.Columns
Minval = ""
For Each Cel In Intersect(Col, TableauPrix)
If Minval = "" And IsNumeric(Cel) And Cel <> "" Then Minval = Cel
If Cel <> "" And Cel < Minval Then Minval = Cel
Next Cel
For Each Cel In Intersect(Col, TableauPrix)
If IsNumeric(Cel) And Cel = Minval Then _
Cel.Interior.ColorIndex = _
Cel.EntireRow.Cells(1, ColonneTransporteurs).Interior.ColorIndex
Next Cel
Next Col

End Sub

=====================================================

Cordialement.

Omicron
 

Pièces jointes

Re Bonjour Alain,

Petit correctif à mon précédent message. Il manquait une instruction pour réinitialiser toutes les couleurs à chaque réévaluation :

TableauPrix.Interior.ColorIndex = xlNone '<<<< instruction à rajouter

=====================================================

Private Sub Worksheet_Change(ByVal Target As Range)

Set TableauPrix = Range("B2:F10") 'Tableau des prix
ColonneTransporteurs = "A" 'Colonne des transporteurs

If Intersect(Target, TableauPrix) Is Nothing Then Exit Sub
TableauPrix.Interior.ColorIndex = xlNone '<<<< instruction à rajouter
For Each Col In TableauPrix.Columns
Minval = ""
For Each Cel In Intersect(Col, TableauPrix)
If Minval = "" And IsNumeric(Cel) And Cel <> "" Then Minval = Cel
If Cel <> "" And Cel < Minval Then Minval = Cel
Next Cel
For Each Cel In Intersect(Col, TableauPrix)
If IsNumeric(Cel) And Cel = Minval Then _
Cel.Interior.ColorIndex = _
Cel.EntireRow.Cells(1, ColonneTransporteurs).Interior.ColorIndex
Next Cel
Next Col

End Sub

=====================================================

Mes excuses pour cette omission.

Omicron
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
37
Affichages
717
Réponses
5
Affichages
452
Réponses
7
Affichages
198
Réponses
18
Affichages
221
Retour