I just talked about this in another thread, actually.
What I have (always) done to teach a dog not to jump has been to IGNORE them. Basically, if the dog starts to jump, I will cross my arms and turn my back to the dog, looking anywhere but at the dog. If the dog keeps jumping, I will step one step away, or keep turning away, looking everywhere but the dog.
Happy, excited dogs jump because they're happy and excited and because it gets them attention. You might think you are correcting the dog by shoving her away or yelling NO or telling her things to do, but you ARE reinforcing the behavior by giving her attention and making her even more excited with the shoving and the yelling.
When you ignore them in return for the attention-seeking jumping, they will figure out before long that jumping = no attention but offering a good behavior, such as sitting or standing with all four paws on the ground = attention. But you have to really reinforce both by being consistent with turning away and ignoring when she jumps and praising and rewarding when she has calmed down.
Also, another thing I recommend is coming up with one consistent word that you'll use to keep her off the table, furniture, counter, etc. I've found that lots of people use DOWN for many different things - getting off the table, getting off the couch, not jumping on people, and laying down. You need to use one command for one thing, not different things if that's what you're currently doing. If your word for the dog to lay down is "down", then your word to tell her to stay off things needs to be something different, like "off".