I can't tell which hotels have free shuttles but I used Priceline for our cruise last February.
I was able to get the Eurostar Marina, that is right on the port at the end of Las Ramblas, for $100. That is a great price for a 5* hotel.
The cab ride to the pier was less than $10.
I suggest using Priceline and bid $75 - $100 for a 5* in the Las Ramblas area. If that doesn't get accepted then add 4* and resubmit your bid. I don't suggest going to a lower star level than 4*.
Even with a cab ride to the port you won't pay more than $15 that will offset the price you will otherwise pay.