Mise en forme conditionnelle avec 14 conditions

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

  • Chronogramme_Véhicules.xls
    45 KB · Affichages: 111

phlaurent55

Nous a quittés en 2020
Repose en paix
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

  • 111.xls
    67 KB · Affichages: 141
  • 111.xls
    67 KB · Affichages: 134
  • 111.xls
    67 KB · Affichages: 139
Dernière édition:

FanExcel

XLDnaute Occasionnel
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

  • 111(1).xls
    64 KB · Affichages: 93
  • 111(1).xls
    64 KB · Affichages: 90
  • 111(1).xls
    64 KB · Affichages: 94

phlaurent55

Nous a quittés en 2020
Repose en paix
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 :mad: :confused:

à+
Philippe

Édit: j'ai remis le fichier corrigé au post #2
 
Dernière édition:

FanExcel

XLDnaute Occasionnel
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
 

FanExcel

XLDnaute Occasionnel
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 ....:):)
 

phlaurent55

Nous a quittés en 2020
Repose en paix
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

  • 111.xls
    72.5 KB · Affichages: 132
  • 111.xls
    72.5 KB · Affichages: 137
  • 111.xls
    72.5 KB · Affichages: 137
Dernière édition:

FanExcel

XLDnaute Occasionnel
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
 

FanExcel

XLDnaute Occasionnel
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 !!:)
 

phlaurent55

Nous a quittés en 2020
Repose en paix
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
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87