There could be two reasons why the limit order doesn’t get executed even though the price shows on the screen:
1. The last traded price (LTP) is better than the limit price, however the available Bid/Ask in the order book is beyond the limit price
You might have seen that the last traded price in the market was within the limit price, however, it is quite possible that it was the last available counter offer in the order book which got matched against someone else’s bid. There is no offer available in the order book now to match the bid price that you defined in your limit order. The order will not get executed until you see the matching bid/ask within your defined limit price.
2. Your order is queued behind in the order book
The orders are executed on a 'first come, first serve' basis, i.e. queue system on the exchange. If your buy order is queued behind in the order book, and there are more bids than asks in that price range, your order will not get executed unless there are additional asks to match your buy order. Same is the case with your sell order, if there are more asks than bids in that price range, and your order is queued behind.