How can I withdraw ether balance from a contract to a personal account? İ tried but I couldn't do it on Ropsten. Could anybody tell me step by step how to test this? Thanks.
Indeed, contracts can hold ether balance. To withdraw funds, you just need to do:
msg.sender is the external account which calls the contract's function. You can find an example escrow contract written in Solidity here.