A VLAN is an Ethernet level concept, a subnet is an IP level concept. A VLAN splits an Ethernet network into multiple logically seperate Ethernet networks. A subnet defines which hosts a host will try to communicate with directly verses which hosts will need to go via a router. It also defines "network" and "broadcast" addresses. It is common practice to have a 1:1 mapping between subnets and VLANs but it is perfectly possible to have multiple subnets on the same VLAN. Equally it is possible to use proxy arp to split a subnet between multiple VLANs or even have two VLANs using the same IP subnet for different purposes.