Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

можно ли при наличии файла в папке перекрасить текст?

248
13 декабря 2007 года
Dmitry2064
590 / / 06.12.2006
Вот такая задачка (хотя явно перекликается с предыдущими вопросами про поле со списком файлов). Хочется, чтобы не поле со списком висело дополнительно к клеточкам моей таблицы учета документа, а шрифт названий этих документов перекрашивался из серого в черный. Т.е. пока документ "там" (в сетевой папке) не появился, он как бы затемнен (серым шрифтом отображается), а как его в сеть выложили, так стал "радикально" черным. И сразу видно, что его можно брать в работу.

И такой подвопрос. Из-за того что мышиными событиями могут быть только правый клик и двойной клик (у меня им присвоены действия "открыть для правки" и "копировать в сетевую папку"), т.е. все событийные нажатия исчерпаны, а запускать док в работу хотелось бы тоже с этого же листа Екселя. Поэтому придется рисовать кнопку напротив каждого дока и по ней запускать этот док в первичную обработку. И вот какой вопрос. Кнопок будет 30-35 (по числу доков), но могу ли я каждой кнопке присвоить одну и ту же процедуру (а в ней уже по тексту в соответствующей ячейке будет определяться название дока) и запускаться соответсв. макрос на обработку. Т.е. можно ли будет избежать 30-кратного появления:
 
Код:
Public Sub CommandButton1_Click()
'открываем 1-й док и его обрабатываем
End Sub
...
...
...
Public Sub CommandButton30_Click()
'открываем 30-й док и его обрабатываем
...
End Sub

Короче, можно ли разными командными кнопками всегда вызывать одну и туже процедуру?Или как минимум конструкции CommandButton30_Click не избежать?
(скорее всего эту часть вопроса надо было бы вынести в отдельное сообщение, но боюсь, что без связи с первой частью будет непонятно, что "чудак" :eek: хочет от компа).
5.9K
14 декабря 2007 года
SPB-667
119 / / 23.06.2007
Конечно, можно вызывать одну и туже процедуру разными кнопками.
на твоём месте я бы сделал массив кнопок, то есть всем тридцати присвоил одинаковое имя, но разные индексы (свойство Index).

 
Код:
Private Sub Command1_Click(Index As Integer)
  Select Case Index
    Case 1:
    Case 2:
    ........
    Case 30:
  End Select
End Sub


А может быть даже и ещё проще (без оператора Select Case), если действие над всеми документами одинаково, то эта процедура вообще будет в 3-4 строки! :)
405
14 декабря 2007 года
Dmitrii
554 / / 16.12.2004
Цитата: SPB-667
Конечно, можно вызывать одну и туже процедуру разными кнопками.
на твоём месте я бы сделал массив кнопок, то есть всем тридцати присвоил одинаковое имя, но разные индексы (свойство Index).


SPB-667, в VBA отсутствует возможность организовать массив элементов управления. Его (при определённых условиях) можно лишь имитировать.

[QUOTE=Dmitry2064]... можно ли разными командными кнопками всегда вызывать одну и туже процедуру?..[/QUOTE]
Dmitry2064, в Вашем случае можно поступать так: активировать ячейку, содержащую имя нужного документа, а затем вызывать макрос обработки. Пусть этот макрос перед началом обработки документа читает значение активной ячейки. Будет вполне достаточно одной процедуры на все документы.

[QUOTE=Dmitry2064]... Хочется, чтобы не поле со списком висело дополнительно к клеточкам моей таблицы учета документа, а шрифт названий этих документов перекрашивался из серого в черный. Т.е. пока документ "там" (в сетевой папке) не появился, он как бы затемнен (серым шрифтом отображается), а как его в сеть выложили, так стал "радикально" черным. И сразу видно, что его можно брать в работу...[/QUOTE]
Реализовать можно, организовав периодическую проверку содержимого сетевого каталога.

248
14 декабря 2007 года
Dmitry2064
590 / / 06.12.2006
Цитата: Dmitrii

Dmitry2064, в Вашем случае можно поступать так: активировать ячейку, содержащую имя нужного документа, а затем вызывать макрос обработки. Пусть этот макрос перед началом обработки документа читает значение активной ячейки. Будет вполне достаточно одной процедуры на все документы.



Да, действительно. Сам не сообразил почему-то. Просто вроде хотел все кнопками запускать или кликами. Но можно на этот макрос "навесить" горячую клавишу. Так даже быстрее получится запускать процедуру. Спасибо.

А проверку каталога попробую сделать.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог