Firstly, try changing your comma , to a semicolon ;.
=AND($B3>=45; $B3<=54)
As pointed out by IQV, you will also need to use the Portugese version of AND() which is E():
=E($B3>=45; $B3<=54)
Here is a source for translating English functions to Portugese functions:
http://dolf.trieschnigg.nl/excel/index.php?langids=en+po
Your regional settings determine whether you need to use a comma or semicolon as a separator. So, when you find formulas with commas in future you'll need to make the same changes again.
You could also change your list separator in your control panel. Go to Clock, Language and Region > Region and Language > Additional settings > List separator and change it from ; to ,.
For more details, see here:
http://datapigtechnologies.com/blog/index.php/why-your-version-of-excel-only-accept-semicolons-in-formulas-instead-of-commas/.
$B3have actual numerical data in it? Please post a reproducible question.=AND(TRUE, TRUE)into any cell. Do you still get an error?TRUEwhere you expect it to?