Since Part doesn't have attribute HoldAll, you either 1) wrap the commands in Hold or Unevaluated, 2) redefine Part, or 3) add via UpSet a new definition to Part to handle held input (wrapped in e.g. hold) differently.
–
István ZacharDec 13 '13 at 8:06

Yes, I was aware of the Attributes. This is the way too. I'm just thinking if I don't miss anything. I mean, I want to avoid reinventing the solution which might be there. Switch seems to be ok but there is unecessary 1, 2... for each case :) too much work ;P
–
KubaDec 13 '13 at 8:21

Mathematica is a registered trademark of Wolfram Research, Inc. While the mark is used herein with the limited permission of Wolfram Research, Stack Exchange and this site disclaim all affiliation therewith.