What happens if someone sends me more bitcoins than I set in my public key?
How can I create a public key that lasts forever, that I can get receive all differents values?
There is a lot of confusion in your questions. It seems that the terms like "public key" is not fully understand by you.
There is no way you can restrict yourself to receive certain amount of btc. Anyone can send you any amount of bitcoins to your wallet address.
Creation of public key , i think you mean to say creation of wallet addresses ? An address associated with your wallets remains associated to your wallet always. However some wallets changes the receiving address on every transaction but you can still send the funds to your previous address and you will receive it.