Проверка на заполнение.

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Pavel55
Сообщения: 418
Зарегистрирован: 20 окт 2006, 11:40
Откуда: Moscow

Только, на сколько я знаю, её надо обязательно в конце макроса сбрасывать, т.е.

Код: Выделить всё

Application.StatusBar = False
Asya
Сообщения: 110
Зарегистрирован: 06 фев 2007, 14:33
Откуда: Киев
Контактная информация:

AlexZZZ писал(а):Asya, не будем Гуру по пустякам отвлекать. ;)
:( я этого не знала, простите за отвлечение по пустякам
Аватара пользователя
AlexZZZ
Сообщения: 237
Зарегистрирован: 01 июн 2007, 00:27
Откуда: Москва и область

&quot писал(а): я этого не знала, простите за отвлечение по пустякам
Я конечно же пошутил, имея Aenta в виду, извините! Признаю, что я самый малограмотный в этом топике (а может и на всём форуме)!
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

&quot писал(а):её надо обязательно в конце макроса сбрасывать
Не обязательно, но хороший тон ;)
И не забываем включать отображение StatusBar :) Юзер ведь может его отключить ...

Код: Выделить всё

Dim saveStatusBar as boolean
saveStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
............................................
Application.StatusBar = False 'Microsoft Excel has control of the status bar
Application.DisplayStatusBar = saveStatusBar 'Restore old state
Аватара пользователя
AlexZZZ
Сообщения: 237
Зарегистрирован: 01 июн 2007, 00:27
Откуда: Москва и область

Полезные советы, спасибо! Кстати, почему-то когда сделал так

Код: Выделить всё

    Application.DisplayFullScreen = True
    Application.DisplayStatusBar = True
, то панель задач Windows закрыла собой и строку состояния, и переключение между листами с полосой прокрутки. :( Может, нужно ещё какой-нибудь параметр задать?
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Во весь экран - это во весь экран. Если вы задаёте
Application.DisplayFullScreen = True
Режим отображения строки состояния не имеет значения. Её по определению не будет.
Как и остального ...
Аватара пользователя
AlexZZZ
Сообщения: 237
Зарегистрирован: 01 июн 2007, 00:27
Откуда: Москва и область

&quot писал(а):Режим отображения строки состояния не имеет значения. Её по определению не будет.
Ну как же не будет? Application.DisplayFullScreen = True убирает все, кроме меню, а Application.DisplayStatusBar = True как раз строку состояния выводит! Достаточно убрать панель задач мышкой и вот она родная под ней прячется! Кстати потом можно вернуть панель задач на место и размер окна Excel автоматически подгоняется под её верхнюю границу. Только почему-то автоматически это делать не хочет. Видимо, такой глюк с фуллскрином и панелью задач.
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

AlexZZZ, с FullScreen был неправ. Поторопился :(
Аватара пользователя
AlexZZZ
Сообщения: 237
Зарегистрирован: 01 июн 2007, 00:27
Откуда: Москва и область

:) Бывает... Обратная сторона медали: когда много знаешь, на мелочи иногда внимания не обращаешь. По себе знаю (я не про vba, конечно!).
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Кстати, вы можете для проверки на заполнение нужных ячеек использовать
валидацию данных (Данные-> Проверка).
Так для того что бы указать что в ячейку С1 можно вводить данные только когда
непусты ячейки A1 и B1 нужно:
1.Выбрать ячейку С1
2.Выбрать в меню Данные->Проверка
3.Выбрать тип данных Другой и ввести формулу: =(ДЛСТР(A1)*ДЛСТР(B1))>0
флаг "Выводить сообщение об ошибке" на одноимённой закладке лучше сбросить.
Проверка распространяется элементарным копированием содержащей её ячейки.
Excel автоматически модифицирует формулы.
Ответить