Mise en forme conditionnelle avec 14 conditions

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

FanExcel

XLDnaute Occasionnel
Bonjour à tout le forum !!

Une question MFC
Dans le fichier joint, onglet MFC, les MFC souhaitées
Dans l'onglet exemple les données

il s'agit d'un chronogramme destiné à analyser l'activité d'un parc de véhicules et sa répartition dans la journée

Ai essayé de résoudre ce besoin en cherchant dans les posts sur ce sujet mais n'ai pas réussi à adapter à mon chronogramme

d'avance merci pour votre aide !! 🙂
 

Pièces jointes

Re : Mise en forme conditionnelle avec 14 conditions

Bonjour FanExcel,
Mise en forme conditionnelle avec 14 conditions
avec une 15ème lorsque la cellule est vide !!

Ton fichier en retour

Il est nécessaire d'activer les macros
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G21:BN35")) Is Nothing Then
If Target.Value = "" Then
Target.Interior.ColorIndex = xlNone
Exit Sub
End If
Target.Interior.ColorIndex = Sheets("MFC").Cells(Asc(Target.Value) - 61, 1).Interior.ColorIndex
End If
If Not Intersect(Target, Range("D21:D35")) Is Nothing Then
If Target.Value = "" Then
Target.Interior.ColorIndex = xlNone
Exit Sub
End If
Select Case Target.Value
Case "Piéton"
ligne = 4
Case "Vélo"
ligne = 5
Case "2 RM"
ligne = 6
Case "4 RM"
ligne = 7
End Select
Target.Interior.ColorIndex = Sheets("MFC").Cells(ligne, 4).Interior.ColorIndex
End If
End Sub
à+
Philippe
 

Pièces jointes

Dernière édition:
Re : Mise en forme conditionnelle avec 14 conditions

Bonsoir Philippe

et merci de ton aide

Ai ouvert le fichier et activé les macros
Toutefois lorsque je choisi une donnée, la macro me plante là:
Target.Interior.ColorIndex = Sheets("MFC").Cells(ligne, 4).Interior.ColorIndex

Ai laissé le bug dans le fichier joint.
Peut être ai je fais une fausse manoeuvre

A bientôt te lire
Cdt 🙂
 

Pièces jointes

Re : Mise en forme conditionnelle avec 14 conditions

RE,
supprime le "d" qui est en trop

If Not Intersect(Target, Range("Dd21: D35")) Is Nothing Then

je commencerais Parkinson sur mon clavier que ça ne m'étonnerais pas 😡 😕

à+
Philippe

Édit: j'ai remis le fichier corrigé au post #2
 
Dernière édition:
Re : Mise en forme conditionnelle avec 14 conditions

Bonjour Philippe

Merci beaucoup, ça marche bien🙂

Ma maquette réèlle contient 120 véhicules
J'ai recopié les lignes afin d'avoir 120 véhicules et modifié le code de la zone Range jusqu'à la ligne 140

Pourrais tu juste me confirmer qu'il n'y a pas d'autres modifications à faire, stp
Ci dessous le code et ce que j'ai modifié

Encore merci Philippe !! 🙂🙂🙂

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G21:BN140")) Is Nothing Then
If Target.Value = "" Then
Target.Interior.ColorIndex = xlNone
Exit Sub
End If
Target.Interior.ColorIndex = Sheets("MFC").Cells(Asc(Target.Value) - 61, 1).Interior.ColorIndex
End If

If Not Intersect(Target, Range("D21:D140)) Is Nothing Then
If Target.Value = "" Then
Target.Interior.ColorIndex = xlNone
Exit Sub
End If
Select Case Target.Value
Case "Piéton"
ligne = 4
Case "Vélo"
ligne = 5
Case "2 RM"
ligne = 6
Case "4 RM"
ligne = 7
Case Else
Target.Interior.ColorIndex = xlNone
End Select
Target.Interior.ColorIndex = Sheets("MFC").Cells(ligne, 4).Interior.ColorIndex
End If
End Sub
 
Re : Mise en forme conditionnelle avec 14 conditions

Juste une observation en testant

Lorsque je fais un mauvais choix et que je fais suppr sur la cellule, ça marche. Par contre si je fais suppr sur une plage de cellules pour recommencer ou pour éliminer un véhicule , la macro s'arrête là:
If Target.Value = "" Then

Or, les gestionnaires de parc, s'ils doivent éliminer les données d'un véhicule (cas où le véhicule sort du parc par exemple) ne vont pas remettre à blanc les cellules une par une. Ils vont tenter de mettre à blanc toute la ligne

Est ce possible de permettre le suppr sur une plage? Sinon, je leur préciserai de suppr cellule par cellule dans la procédure.

Pour info, j'ai 25 gestionnaires de parc pour 1800 véhicules environ et ces chronogrammes devront être mis à jour à chaque mouvement de véhicule ou changement d'activité d'un véhicule.
Les gestionnaires m'enverront ensuite leur chronogramme mis à jour pour consolidation.

C'est un outil qui va vivre pour être représentatif du parc et de son activité.

Voila, voila, je te sollicite encore ....🙂🙂
 
Re : Mise en forme conditionnelle avec 14 conditions

Re,
Ma maquette réelle contient 120 véhicules
J'ai recopié les lignes afin d'avoir 120 véhicules et modifié le code de la zone Range jusqu'à la ligne 140

Pourrais tu juste me confirmer qu'il n'y a pas d'autres modifications à faire, stp
tu as tout compris, il suffisait de mettre 140

ton fichier en retour pour la suppression des véhicules et des couleurs (mais uniquement un à la fois)
avec explication sur la feuille

à+
Philippe
 

Pièces jointes

Dernière édition:
Re : Mise en forme conditionnelle avec 14 conditions

Hello Philippe,

Cela fonctionne !!! Super ! Merci beaucoup 🙂🙂
J'ai juste modifié la colonne de remise à blanc de B à C car, le plus souvent, les circuits restent et se sont les véhicules qui changent.


Il ne me reste plus qu'à protéger tout ça par un bout de macro, faire tester, un joli Modop et envoyer dans les bases.

C'est reparti !!
A bientôt pour de nouvelles Excelaventures !!🙂

Et encore merci de ton aide
 
Re : Mise en forme conditionnelle avec 14 conditions

Bonjour le forum!! 🙂
Bonjour Philippe!! 🙂

Je reviens sur ce post car démarrons la phase déploiement à toutes nos bases logistiques.
A partir d'un base contenant les 1200 immatriculations, je voudrais initier la base de chacun en copiant la plage des immatriculations des véhicules.

Je n'y arrive, la macro plante lorsque je copie une liste d'immatriculations dans la colonne C.
Aucun souci si je les saisie un par un mais plantage lorsque le copie une plage.

Ci dessous, en rouge, l'endroit où ça plante:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("B21:B140")) Is Nothing Then
Application.EnableEvents = False
If Target.Value = "" Then
Range(Cells(Target.Row, 3), Cells(Target.Row, 66)).ClearContents
Range(Cells(Target.Row, 3), Cells(Target.Row, 66)).Interior.ColorIndex = xlNone
End If
Application.EnableEvents = True
End If

Je ne sais pas si il y a une solution mais, si je pouvais éviter de les saisir un par un, cela m'arrangerait bien .

Voila, voila...

Très bonne journée à tous !!🙂
 
Re : Mise en forme conditionnelle avec 14 conditions

Re,
la macro plante lorsque je copie une liste d'immatriculations dans la colonne C.
je pense plutôt que tu parles de la colonne B

remplace:
If Not Intersect(Target, Range("B21:B140")) Is Nothing Then

par:
If Not Intersect(Target, Range("B21:B140")) Is Nothing And Target.Count = 1 Then

à+
Philippe
 
- 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

Réponses
25
Affichages
613
Réponses
8
Affichages
662
Retour