18-60yr if unrelated. Bone marrow donation programs look for healthy persons ages 18-60 years to be potential "unrelated" donors. Young donors lead to better transplantation results than older donors. Some programs have their maximum donor age set at 55 years. Donors planning to donate to "related" persons (such as siblings, parents, cousins) can be children. I am not aware of a donor being under 4 years old.
No formal limit. In general a donor less than 70 years of age is preferred, but this is not a hard limit. Depends on the availability of alternative donor options, the health of the donor, and the need of the recipient.