If you "dim" the fan motor it
is going to buzz. That's a function of the fan motor. Most fan motors will buzz, a few will not.
The best solution is to run the extra wire and split the fan and light into separate switches. If there's an attic above, or basement below, this is pretty easy to do. You'll end up with a dimmable module on the light and a relay (appliance) module on the fan. Each switch manufacturer offers those switches so you'd pick the ones that match your existing switches.
If you can't access the wall/ceiling to run another wire you can get the same affect by putting in in-line modules such as these:
[Link: smarthome.com]With these you'd be bypassing the wall switch so you'd replace it will a simple wall mounted transmitter which would control the light and fan as well as any other X10 devices that you might want to control from that location. Here's the wall mounted transmitter:
[Link: smarthome.com]The cheapest thing to do is to put the whole light/fan combo on a single relay switch. It'll control both the light and fan but won't dim so you won't have any buzzing problems.