Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> макрос во всех книгах 
V
    Опции темы
llrr4343
Дата 4.12.2007, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 4.12.2007

Репутация: нет
Всего: нет



Добрый день!!!
Народ как решить такую траблу.
В одной книге был написан макрос, вызывающий форму. К листу этой книги было приписано событие: при выборе ячейки в текстбокс вставлялось значение этой ячейки, все работает великолепно. Подскажите плиз, как сделать так чтобы вышеописанное работало во всех книгах?
Единственное что из вышеописанного работает во всех книгах это показ формы, а надо еще чтобы работало онклик по ячейке.

Заранее спасибо...
PM MAIL   Вверх
kapbepucm
Дата 4.12.2007, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: 3
Всего: 12



Посмотри, все ли модули соответствуют исходнику


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Naghual
Дата 4.12.2007, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Проверьте в модуле ИМЕНА книг и листов.



--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
llrr4343
Дата 4.12.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 4.12.2007

Репутация: нет
Всего: нет



если с примером то так:
на панель инструментов добавлена кнопка с вызовом этого макроса 
в исходном файле в module1:
 
Sub qwe()
    UserForm1.Show (nomodal)
End Sub

в personal.xls там тоже самое (кнопка на панели инструментов, название макроса в модуле), при запуске данного макроса форма появляется (кстати при нажатии на кнопку на панели инструментов он обращается к модулю personal.xls и оттуда происходит onshow),

в общем на этом все заканчивается, что должно работать как надо

далее в исходном файле, где слева в дереве объектов лист1(прайс)есть процедура 
(краткое описание которой: если форма видна и кликнул по столбику В, то записать первое слово выбранной ячейки в текстбокс):

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

On Error Resume Next
Set r = Application.Intersect(Range("B:B"), Target)
If Not r Is Nothing Then 
    Do While UserForm1.Visible  
     If InStr(ActiveCell, " ") <> 0 Then
       UserForm1.TextBox1.Text = Left(ActiveCell, InStr(ActiveCell, " ") - 1)
       Exit Do
      Else
        UserForm1.TextBox1.Text = ActiveCell
        Exit Do
      End If
    Loop
End If

End Sub

в исходном файле это работает, этот же самый код переношу в лист1(лист1) personal.xls, он даже не заходит в Worksheet_SelectionChange, 

даже самая простая процедура в лист1(лист1) personal.xls не работает

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

MsgBox Target.Address (как ни пытался он сюда не заходит)

End Sub

как заставить эксел делать то что находится здесь Worksheet_SelectionChange из любой книги


PM MAIL   Вверх
Akina
Дата 4.12.2007, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Почему бы не разместить это все в XLStart.XLA?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kapbepucm
Дата 4.12.2007, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: 3
Всего: 12



А если оставлять как есть, наверно справидливо одно из решений:
В исходном файле:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
меняешь на
Код
Public Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Module1 дополняешь
Код
Public Sub CallW_SC(ByVal Target As Range)
  Sheet1.Worksheet_SelectionChange Target
End Sub
Ну, и, в принципе, в любой книге пишешь
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Workbooks.Open "путь\personal.xls"
    Application.Run "personal.xls!CallW_SC", Target
End Sub
Если я правильно задание понял.


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
mihanik
Дата 7.12.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Кроме того!!!
Есть папочка такая.
C:\Program Files\Microsoft Office\OFFICE11\XLSTART называется. (у меня стоит 2003 офис)
Все книги из этой папочки открываются, когда ехель запускается.
Можно с этим что-либо попробовать


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0496 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.