To stop my dogs from jumping up, I knee them in the chest when they jump up. When I first teach this approach I call my dog to me on purpose and when they jump give them the knee. As they are being knee'd I tell them "NO JUMP". After they kind of catch on then you can show them the knee before they jump. You will notice they think twice about jumping.

As far as company.... have someone willing to work with you on this problem come over to the house. Explain to them before they get there how to knee the dog in the chest when they jump. As they are getting knee'd you and your training partner need to tell them "NO JUMP". As in any training please know that consistency is the key. Never let your dog jump on you, even if you are playing if you don't want them to do it when you or company comes home!

Best of Luck