Assuming that you are referring to the RF12 modules from http://www.hoperf.com/pro/rfm12.html, and that you don't have lots of data from each transmitter, the low cost way to accomplish what you want is to use a single receiver and have the transmitters transmit at intervals, using a protocol that identifies each transmitter and that will allow you to detect collisions. That's the way most wireless alarm systems work. While 40 transmitters are a bit more than the typical alarm system, you should be able to make it work. See the PBP code that I link to at http://davehouston.org/RFTipsTricks.htm. Use the first byte pair for the ID and the second byte pair for data. The built-in error detection will catch any collisions. X-10 and most wireless alarm systems have used this or similar techniques for 30+ years. If you use the internal oscillators, slight variations will prevent any two transmitters from synchronous transmissions - while they might collide for a few consecutive transmissions, they will slowly drift apart. Most countries/regions specify that any single transmitter can only transmit for some small fraction of the total time available.

If you have a lot of data and/or cannot afford to miss a trasmission, you'll need to use more costly methods and hardware. If you can provide more details about your application, you'll likely receive more detailed responses.

BTW, Hope Microelectronics has a nice range of products. Where do you buy them?