caloumaya
Messages postés2Date d'inscriptionlundi 10 mai 2004StatutMembreDernière intervention18 janvier 2008
-
18 janv. 2008 à 16:46
NHenry
Messages postés15117Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention10 mai 2024
-
18 janv. 2008 à 17:05
Bonjour,
Je craque complètement.
Je bidouille avec excel et vba un planning.
Sur ma feuille 1 j'ai un tableau avec les types d'absence (CA, CE, AT.....) dans ma colonne A, la case correspondante de la colonne B est en couleur (1 couleur par type d'absence).
Dans ma feuille 2 j'ai un planning avec en ligne les noms et en colonne les dates.les dates se calculent automatiquement dans excel (sans vba) en mettant le 1er janvier de l'année encours dans la case B2. Par contre quand je change la case B2 mon gentil code devrait me coloriser les Jours fériés. Et quand je mets CA,CE,AT..... il devrait me mettre la case en couleur.
Niet il ne se passe rien
Merci d'avance pour votre aide
Extrait de la feuille 1
A B
<colgroup><col style=\"WIDTH: 60pt\" span=\"2\" width=\"80\" /></colgroup>----
Code, Couleur, ----
, , ----
CA, CA, ----
CE, CE, ----
RECUP, RECUP, ----
01-01-1900, , ----
08-04-2007, , ----
09-04-2007, , ----
01-05-2007,
Extrait de la feuille 2
A B C D E
<colgroup><col style=\"WIDTH: 60pt\" span=\"5\" width=\"80\" /></colgroup>----
, , , Tartampion , Coucou, ----
lundi, 01-janv-07, AM, , , ----
lundi, 01-janv-07, PM, , , ----
mardi, 02-janv-07, AM, CE, , ----
mardi, 02-janv-07, PM, CA , , ----
mercredi, 03-janv-07, AM, CA,
J'ai écrit le code dans la feuille 2
<ol><li>Private Sub Worksheet_Change(ByVal Target As Range)
</li><li> If Range("B2").Activate Then
</li><li> ActiveSheet.Unprotect
</li><li> Joursferies Target
</li><li> Else
</li><li> Coloration Target
</li><li> End If
</li><li>End Sub
</li><li>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
</li><li> Coloration Target
</li><li>End Sub
</li><li>Sub Coloration(cellule)
</li><li>On Error GoTo Fin
</li><li> For Each Code In Application.Range("Code")
</li><li> If Code.Value = cellule.Value Then
</li><li> cellule.Interior.ColorIndex = Code.Offset(0, 1).Interior.ColorIndex
</li><li> Exit Sub
</li><li> End If
</li><li>Next
</li><li>Fin:
</li><li>End Sub
</li><li>
</li><li>Sub Joursferies(cellule)
</li><li>Application.ScreenUpdating = False
</li><li>Range("A1:B730").Interior.ColorIndex = 0
</li><li>For i = 1 To 730
</li><li>Range("A" & i).Activate
</li><li>Next i
</li><li>For j = 1 To 730
</li><li>Range("B" & j).Activate
</li><li>Next j
</li><li>Application.ScreenUpdating = True
</li><li>ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
</li><li>End Sub</li></ol>, ----
(Coloration syntaxique automatique par Kenji)