Еще раз Доброго всем вечера! Во-первых, не знаю создавать одну тему или несколько? Далее, в прилагаемом примере имеется календарик . Что нужнол поправить или добавить. 1) Нужно, чтобы при вызове календарика с определенного столбца, в шапке самого календаря, появлярлось название колонки. Например, так, как при вводе дат в колонку 2 «Дата видачі картки», появляется надпись «Введите дату выдачи карточки». Можна пока на русском, я потом поменяю на украинский. 2) Соответственно, при нажатии на ячейку в столбце 3 (справа), в шапке должно появиться «Введите дату возврата карточки» и так на всех листах книги. 3) И не знаю как сделать, чтобы все эти действия происходили на всех листах под названием : 05.2010, 06.2010 и так далее. 4) А вот лист «Списки» будет только один. 5) Почему то после ввода даты, ячейка остается активной (то есть, курсор не переходит на другую ячейку). С ув. Муля!.
Еще раз Доброго всем вечера! Во-первых, не знаю создавать одну тему или несколько? Далее, в прилагаемом примере имеется календарик . Что нужнол поправить или добавить. 1) Нужно, чтобы при вызове календарика с определенного столбца, в шапке самого календаря, появлярлось название колонки. Например, так, как при вводе дат в колонку 2 «Дата видачі картки», появляется надпись «Введите дату выдачи карточки». Можна пока на русском, я потом поменяю на украинский. 2) Соответственно, при нажатии на ячейку в столбце 3 (справа), в шапке должно появиться «Введите дату возврата карточки» и так на всех листах книги. 3) И не знаю как сделать, чтобы все эти действия происходили на всех листах под названием : 05.2010, 06.2010 и так далее. 4) А вот лист «Списки» будет только один. 5) Почему то после ввода даты, ячейка остается активной (то есть, курсор не переходит на другую ячейку). С ув. Муля!.Муля2010
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("Дата_выдачи, Дата_возврата, Дата_приема, Дата_увольнения, Дата_поступления,Дата_выбытия")) Is Nothing Then x = Target.Address Select Case Target.Column Case 2: frmCalendar.Caption = "Введите дату выдачи карточки" Case 3: frmCalendar.Caption = "Введите дату возврата карточки" Case 6: frmCalendar.Caption = "Введите дату приёма" Case 7: frmCalendar.Caption = "Введите дату увольнения" Case 10: frmCalendar.Caption = "Введите дату поступления" Case 11: frmCalendar.Caption = "Введите дату выбытия" End Select frmCalendar.Show Cancel = True End If End Sub
[/vba]
Правда по 5) - это делает строка Cancel = True, но перехода на другую ячейку нет, просто снимается даблклик. 3) Сделайте аналогично для одного листа. При копировании листа (если Вы копируете лист целиком) код скопируется вместе с листом.
1),2),5): для листа "Списки" [vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("Дата_выдачи, Дата_возврата, Дата_приема, Дата_увольнения, Дата_поступления,Дата_выбытия")) Is Nothing Then x = Target.Address Select Case Target.Column Case 2: frmCalendar.Caption = "Введите дату выдачи карточки" Case 3: frmCalendar.Caption = "Введите дату возврата карточки" Case 6: frmCalendar.Caption = "Введите дату приёма" Case 7: frmCalendar.Caption = "Введите дату увольнения" Case 10: frmCalendar.Caption = "Введите дату поступления" Case 11: frmCalendar.Caption = "Введите дату выбытия" End Select frmCalendar.Show Cancel = True End If End Sub
[/vba]
Правда по 5) - это делает строка Cancel = True, но перехода на другую ячейку нет, просто снимается даблклик. 3) Сделайте аналогично для одного листа. При копировании листа (если Вы копируете лист целиком) код скопируется вместе с листом.Hugo
Игорь доброй ночи, а может уже еще лучшего утрА! Че то я не пойму куда ваш код вставить. если в код формы, так у меня не работает. Может как то не так надо.А может зря я сменил frmCalendar на Calendar1. Но и с первым именем макрос тоже не заработал. Утром на свежую голову может че получится. А вы пожалуйста тоже гляньте на мои труды. С ув. Муля!
Игорь доброй ночи, а может уже еще лучшего утрА! Че то я не пойму куда ваш код вставить. если в код формы, так у меня не работает. Может как то не так надо.А может зря я сменил frmCalendar на Calendar1. Но и с первым именем макрос тоже не заработал. Утром на свежую голову может че получится. А вы пожалуйста тоже гляньте на мои труды. С ув. Муля!Муля2010
Муля, я думал, Вы сами коды писали... Там ведь есть уже код в листе "Списки" (Private Sub Worksheet_BeforeDoubleClick() ) - вот его и надо изменить, а не в форме. И аналогично изменить существующие коды в других листах (только другие номера колонок указывать и другие заглавия давать).
А в самой форме только чуть изменил - убрал попытки дать заглавие: [vba]
Код
Private Sub UserForm_Activate() Me.Calendar1.Value = Date End Sub
[/vba]
Муля, я думал, Вы сами коды писали... Там ведь есть уже код в листе "Списки" (Private Sub Worksheet_BeforeDoubleClick() ) - вот его и надо изменить, а не в форме. И аналогично изменить существующие коды в других листах (только другие номера колонок указывать и другие заглавия давать).
А в самой форме только чуть изменил - убрал попытки дать заглавие: [vba]
Код
Private Sub UserForm_Activate() Me.Calendar1.Value = Date End Sub