If you want to set LATB6 and then wait until RB14 is high before continuing then you don't want a do-while loop. You would want something like this:
LATBbits.LATB6 = 1; //set LATB6
while(PORTBbits.RB14 == 0); //wait until RB14 is HIGH
LATBbits.LATB6 = 0; //execute other code
I don't quite understand why you have LATBbits.LATB6 = 1
inside a do-while loop. While theoretically it does the same thing, it just wastes time and resources. It keeps setting LATB6 over and over again until RB14 is HIGH, but there is no need to keep setting LATB6 to the same value -- It keeps its previous state.
This probably isn't your problem though. I expect your issue is that you have not disabled the ADC (analog-digital converter). RB14 shares a pin with AN10 (analog input 10). Some pics default to analog input, which is not what you want. you need to actively disable the ADC in order for RB14 to be a digital input.
do ... while
wait loop. That construction is simple but ties up the processor and prevents it doing anything else. \$\endgroup\$