I have set up a virtual machine with Virtual Box. But I cant ping the virtual machine from the host Windows 7 if I have NAT on the virtual machine.
I know it works with bridged but I would like it to work with NAT, is that possible?
Not really as with NAT, you are only pinging the actual host/router that is performing NAT (in this case, the virtual network interface/similar of your machine).
Whilst you can usually port forward from the NAT interface to the virtual IP behind it (this is basically a virtual router), ICMP packets (which are needed for ping) will not forward as it sort of goes against the whole purpose of providing NAT.
If you need a direct IP connection from one machine to another, you really need to bridge/have a routed IP... I am not sure/can't remember, but, I don't think it is possible to forward ICMP packets using Virtual Boxe's NAT.