If I understand you correctly, the first language contains the words with the same number of occurrences of a's and e's; in b these numbers are different.

I would try something like this (I guess you can try to simplify it):

S->aE|Ea|eA|Ae|

E->eS|Se|EaE|aEE|EEa

A->aS|Sa|AeA|eAA|AAe

The basic idea is that whatever word you can derive from A, it will have one more a then e. The hard part is to prove that this can generate all words. (That's why I suggested that you should first think about simplifying this grammar.)

IMHO you can solve the part b in a similar fashion.

First you decide that you have say 4 more e's than a's.

You start like S => S1, where S1 is a symbol from which you can generate only words with more e's then a's. You do several steps to obtain something like S2eS2eS2eS2eS2 and then apply the rules for S2. You have to make the rules for S2 in a such way, that S2 generates only words with the same number of both symbols. (Again, you can try to simplify this or to make a completely different grammar, but the basic idea I gave you above should help you.)