Я думаю, что названные диапазоны являются глобальными для рабочей книги, а не локальными для каждого листа.На что намекает полученное вами сообщение об ошибке:
DefinedName с таким же именем и областью действия уже существует
Таким образом, вам придется дать эти разные имена
wb = openpyxl.load_workbook(file.xlsx)
sheet1 = wb['sheet1']
sheet2 = wb['sheet2']
wb.create_named_range('sales1', sheet1 , '$B$11:$B$35')
wb.create_named_range('sales2', sheet2 , '$B$11:$B$35')
или более сухое решение:
wb = openpyxl.load_workbook(file.xlsx)
sheets = []
for sheet_no in range(1,3):
sheets[sheet_no] = wb[f'sheet{sheet_no}'] # note pre python 3.6 you should change f'sheet{sheet_no}' to 'sheet{}'.format(sheet_no)
wb.create_named_range(f'sales{sheet_no}', sheets[sheet_no], '$B$11:$B$35')