Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
29.03.2024, 12:28:05

Войти
Интересные и полезные статьи по работе с Excel и VBA можно найти в разделе ХИТРОСТИ
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Word и VBA
| | |-+  самообновляемое поле дата - MS Word
Страниц: [1]   Вниз
Печать
Автор Тема: самообновляемое поле дата - MS Word  (Прочитано 10259 раз)
0 Пользователей и 1 Гость смотрят эту тему.
anton-diz
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 10


Просмотр профиля E-mail
« : 08.06.2018, 13:43:20 »

Приветсвую уважаемые форумучане!!! Обращаюсь к Вам Гуру MS Word!!!

Подскажите как можно связать поля между собой поле с переменными, а именно поле элемент управления содержимым "выбор даты" (расположенный панель управления > Разработчик > Элемент управления содержимым "выбор даты") т.е. хотелось бы иметь следующие при изменении даты в одном из полей, чтоб дата изменялась во всех аналогичных полях.


P.S. мне знакомы функция поля которые самообновляються при изменении поля (Вставка > Свойства документа > Автор и др... )


Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #1 : 08.06.2018, 15:03:40 »

Не понял, если честно. В приложенном примере одно поле дата и два поля Автор. Какие еще поля должны обновляться при изменении даты выбором из календаря? Вообще все, что ли?
Ну и без макросов это вряд ли получится сделать. Можно поле с выбором даты сделать закладной, в остальных полях использовать формулу и ссылку на эту закладку. А кодом обновлять. Только вроде как события нет никакого, которое бы отслеживало изменение в полях, что несколько усложняет задачу или делает инструмент обновления не очень удобным.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
anton-diz
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 10


Просмотр профиля E-mail
« Ответ #2 : 08.06.2018, 18:04:03 »

Не понял, если честно. В приложенном примере одно поле дата и два поля Автор.
чтоб поле Дата  обновлялась во всех частях документа, т.к.  предполагаеться использовать ее в многостраничном документе, а наличие встроенного контекстного календаря  делает ее использование очень удобной
 
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #3 : 08.06.2018, 18:23:07 »

поле Дата  обновлялась во всех частях документа
теперь скачайте свой файл и найдите там хотя бы два поля дата. Там одно поле дата и два поля Автор. Об этом речь. Что еще-то надо обновлять, если поле только одно и совершенно неясно какие даты еще надо обновлять. Может Вы не поля дат имеете ввиду, а что-то другое?
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
anton-diz
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 10


Просмотр профиля E-mail
« Ответ #4 : 08.06.2018, 18:49:21 »

суть чтоб  при изменении поля Y изменялись поля X ,Z и тд.  то есть Y=X=Z
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #5 : 08.06.2018, 19:13:31 »

И еще раз, прям в лоб: какого типа все эти поля? Это все даты или это может быть поле любого типа? Может ли быть в документе поле, которое не должно изменяться при изменении поля Y?
Для чего я все это выясняю: как уже писал, сделать зависимые друг от друга поля стандартно не получится, только написанием кода. Код должен будет тоже запускаться вручную, скорее всего. И чтобы он работал правильно необходимо точно знать, какие поля должны быть изменены, а какие трогать нельзя.
« Последнее редактирование: 08.06.2018, 19:17:04 от Дмитрий Щербаков(The_Prist) » Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
anton-diz
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 10


Просмотр профиля E-mail
« Ответ #6 : 09.06.2018, 10:54:34 »

поле типа ДАТА и обновляться должны все поля Y,X,Z ...... n`ое в документе
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #7 : 09.06.2018, 11:29:08 »

Тогда можно в модуль ThisDocument записать такой код:
Код: (vb)
'---------------------------------------------------------------------------------------
' Author : The_Prist(Щербаков Дмитрий)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
'          http://www.excel-vba.ru
'          info@excel-vba.ru
'          WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
' Purpose:
'---------------------------------------------------------------------------------------
Option Explicit
Dim IsNonEvents As Boolean
Private Sub Document_ContentControlOnExit(ByVal ChangedContentControl As ContentControl, Cancel As Boolean)
    If ChangedContentControl.Type <> wdContentControlDate Then
        Exit Sub
    End If
    
    Dim oCCtrl As ContentControl
    Dim v
    If IsNonEvents Then Exit Sub
    v = ChangedContentControl.Range.Text
    IsNonEvents = True
    For Each oCCtrl In ThisDocument.ContentControls
        If oCCtrl.Type = wdContentControlDate Then
            If oCCtrl.Range.Text <> v Then
                oCCtrl.Range.Text = v
            End If
        End If
    Next
    IsNonEvents = False
End Sub

и при изменении любого поля с датой остальным будет назначена та же дата сразу после того, как Вы выйдете из режима редактирования поля.
Во вложении файл с реализацией. Желтые поля - это поля даты, взаимоизменяемые. Макросы должны быть разрешены.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru