Re,
Avec la deuxième demande
(Je précise que j’ai laissé ma première macro, qui contrairement à mettre des MFC sur toutes les feuilles (là c’est 5 feuilles * 7 couleurs = 35 MFC), active la MFC directement par macro depuis le ThisWorkbook (qui n’est autre que le classeur)
Le fait de changer la muminosité de ton PC par ALT et la touche F11, vient d’un raccourci que tu as créé (ou alors, comme je suppose que c’est un portable, tu n’aurais pas confondu avec la touche Fonction ??)
Bref
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Déclaration des variables
Dim couleurs(), Ligne%, Dl%, Couleur%
'
Dl = Range("A" & Rows.Count).End(xlUp).Row 'Derniére ligne remplie
If Not Application.Intersect(Target, Range("B12:B" & Dl)) Is Nothing Then 'Sur changement d'une cellue en colonne B (de la ligne 12 à la dernière)
Ligne = Target.Row 'N° de la ligne concernée
Couleur = Cells(Ligne, 2)
Select Case Couleur 'Choix de la couleur
Case Is = 1
Range(Cells(Ligne, 1), Cells(Ligne, 20)).Interior.color = RGB(146, 208, 80)
Case Is = 2
Range(Cells(Ligne, 1), Cells(Ligne, 20)).Interior.color = RGB(183, 222, 232)
Case Is = 3
Range(Cells(Ligne, 1), Cells(Ligne, 20)).Interior.color = RGB(252, 213, 180)
Case Is = 4
Range(Cells(Ligne, 1), Cells(Ligne, 20)).Interior.color = RGB(255, 255, 183)
Case Is = 5
Range(Cells(Ligne, 1), Cells(Ligne, 20)).Interior.color = RGB(255, 255, 255)
Case Is = 6
Range(Cells(Ligne, 1), Cells(Ligne, 20)).Interior.color = RGB(217, 217, 217)
Case Is = 7
Range(Cells(Ligne, 1), Cells(Ligne, 20)).Interior.color = RGB(230, 184, 183)
Case Else
Range(Cells(Ligne, 1), Cells(Ligne, 20)).Interior.color = RGB(255, 255, 255)
End Select
Exit Sub
End If
' Je place une date ou autre sur la colonne T (Ligne 12 à la dernière remplie par rapport à la colonne A)
If Not Application.Intersect(Target, Range("T12:T" & Dl)) Is Nothing Then 'Sur changement d'une cellue en colonne T (de la ligne 12 à la dernière)
If ActiveSheet.Name = "SORTIES" Then Exit Sub 'Si c'est sur la feuille SORTIES, je sort de la procèdure
Dl = Sheets("SORTIES").Range("A65").End(xlUp).Row + 1 'n° de la première ligne vide de la colonne A avant la 66 de la feuilles Sorties
If Cells(Target.Row, 20) <> "" Then 'Si la cellule colonne T est remplie
Application.EnableEvents = False 'Je désactive les évenements pour le changement de couleur
Range(Cells(Target.Row, 1), Cells(Target.Row, 20)).Copy Sheets("SORTIES").Cells(Dl, 1) 'je copie la ligne concernée dans la 1ère ligne vide de la feuille SORTIE
Range(Cells(Target.Row, 1), Cells(Target.Row, 20)).Delete Shift:=xlUp 'J'efface la ligne de la feuille concernée vers le haut
Application.EnableEvents = True 'Je résactive les évenements pour le changement de couleur
End If
End If
End Sub
TAB COM Héberg essai 15.11.18.xlsm (352,2 Ko)