Well, since what your code changes Layer's property, which is not an AcadEntity, it does not have method Update. Rather, it would affect all entities, if the entities' color is set to ByLayer. So, yes, if you change layer's color, you should see color changes on affected entities, eventually, when your code is FINISHED.
But it depends how the code (the procedure Layer_CDS_PNI() runs and finish: if you call the shown code directly from an macro, as if it is a command, then you should see the effect after the code runs without having to do anything else, AutoCAD automatically update the screen for this kind of change once the code execution completes.
But from your question, it implies you run the code from a button. You DID not say what the button is from: a button on toolbar/ribbon menu? or from UserForm? My guess is a UserForm (please try describe your case as much as detail). If so, because the UserForm is a modal dialog, it means as long as the form is showing, your code execution is not complete. Once you closes the form, the screen will be updated automatically. Or, you need to force the update by calling Application.Update(), or ThisDrawing.Regen() if necessary. So, you code with the userform's button click would be like:
Private Sub CommandButton1_Click()
Layer_CDS_PNI()
Application.Update
End Sub
HTH