1 pièce(s) jointe(s)
VBA - Fonction Worksheet_Change() ne fonctionne pas
Bonjour le forum!
Débutant dans le monde vaste de la VBA, j'ai récupéré (rendons à César ce qui lui appartient) un code me permettant de colorer les cases d'une feuille appelée "calendrier" selon les dates des activités définies dans la feuille "Activités".
J'aimerais que la macro (reliée à la feuille "Calendrier") se mette à jour dès qu'une action (n'importe laquelle) s'opère sur la feuille "Activité".
La fonction Worksheet_Change() me semble alors toute trouvée. Mais je ne vois pas comment lui indiquer qu'elle doit se relancer lorsque qu'une action s'opère sur la feuille "Activités".
Y aurait une âme chaleureuse pour m'aiguiller et me permettre de débugger le reste de ma fonction? :?
Voici le code en question:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
debPlan = DateSerial(2020, 1, 1)
Set fActivités = Sheets("Activités")
Set fCalendrier = Sheets("Calendrier")
[D6:JUC32].ClearContents
[D6:JUC32].Interior.ColorIndex = xlNone
nbactivités = fActivités.[B1].CurrentRegion.Rows.Count
For i = 3 To nbactivités
Responsable = fActivités.Cells(i, 4)
Set Result = fCalendrier.[C:C].Find(What:=Responsable, LookIn:=xlValues)
If Not Result Is Nothing Then
If fActivités.Cells(i, 3) < DateSerial(2040, 1, 1) Then
ddébut = fActivités.Cells(i, 5)
dfin = fActivités.Cells(i, 7)
Libellé = fActivités.Cells(i, 2)
fCalendrier.Cells(Result.Row, ddébut) = Libellé
lig = Result.Row
For d = ddébut To dfin
fCalendrier.Cells(Result.Row, d).Interior.ColorIndex = 6
Next d
End If
End If
Next i
End Sub |
Et le fichier Excel:
Pièce jointe 579670