Добрый уважаемые форумчане. Имеется вот такая часть макроса
Код
'Формирование предупреждающего сообщения и переименование пробы
Dim SheetName As String
Do
SheetName = InputBox("Введите название новой пробы:")
Loop While SheetName = ""
ActiveSheet.Name = SheetName
Так это выглядит
которая предлагает дать название листу после выполнения макроса. Вопрос в следующем, можно ли дописать этот код таким образом, чтобы при заполнении названия листа происходило ограничение по кол-ву набранных символов? И пользователя возвращали снова к введению названия листа. В данный момент если все правильно и кол-во символом равно или меньше 31 макрос закрывается и листу присваивается это название, но если нет появляется такое окно после которого приходится закрыть сообщение об ошибке и уже потом обычными средставами переименовать лист в ексель.
Dim SheetName As String
Do
SheetName = InputBox("Введите название новой пробы:")
Loop While SheetName = "" Or Len(SheetName) > 10 'не более 10 знаков
ActiveSheet.Name = SheetName
Согласие есть продукт при полном непротивлении сторон
Нужно ещё проверять на недопустимые символы, на наличие уже такого листа, и на допустимость названия вообще. Проще вероятно проверять на ошибку, но сперва проверить количество символов как уже выше подсказали.
Sanja написал: Код ? 12345Dim SheetName As String Do SheetName = InputBox("Введите название новой пробы:") Loop While SheetName = "" Or Len(SheetName) > 10 'не более 10 знаков ActiveSheet.Name = SheetName
Дорогой друг, спасибо большое. Все прекрасно встало и работает без нареканий.
Dim SheetName As String
Do
SheetName = InputBox("Введите название новой пробы:" & vbCrLf & vbCrLf & _
"ограничения:" & vbCrLf & _
"- название не должно быть пустым" & vbCrLf & _
"- длина названия не более 10-ти знаков" & vbCrLf & _
"- названия не должны повторяться" & vbCrLf & _
"- не допустимо использовать знаки: \/?*[]", "Новая проба")
Loop While SheetName = "" Or Len(SheetName) > 10 'не более 10 знаков
ActiveSheet.Name = SheetName
Согласие есть продукт при полном непротивлении сторон
zaolog написал: недопустимо название "новая проба"
Код
Dim SheetName As String
Do
SheetName = InputBox("Введите название новой пробы:" & vbCrLf & vbCrLf & _
"ограничения:" & vbCrLf & _
"- название не должно быть пустым" & vbCrLf & _
"- длина названия не более 10-ти знаков" & vbCrLf & _
"- недопустимо название 'Новая проба'" & vbCrLf & _
"- названия не должны повторяться" & vbCrLf & _
"- не допустимо использовать знаки: \/?*[]", "Новая проба")
Loop While SheetName = "" Or Len(SheetName) > 10 'не более 10 знаков
ActiveSheet.Name = SheetName
Согласие есть продукт при полном непротивлении сторон