Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/МОДЕРНИЗАЦИЯ МАКРОСОВ - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » МОДЕРНИЗАЦИЯ МАКРОСОВ
МОДЕРНИЗАЦИЯ МАКРОСОВ
Муля2010 Дата: Понедельник, 04.10.2010, 20:12 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 290
Репутация: 12 ±
Замечаний: 0% ±

Еще раз Доброго всем вечера!
Во-первых, не знаю создавать одну тему или несколько?
Далее, в прилагаемом примере имеется календарик .
Что нужнол поправить или добавить.
1) Нужно, чтобы при вызове календарика с определенного столбца, в шапке самого календаря, появлярлось название колонки. Например, так, как при вводе дат в колонку 2 «Дата видачі картки», появляется надпись «Введите дату выдачи карточки». Можна пока на русском, я потом поменяю на украинский.
2) Соответственно, при нажатии на ячейку в столбце 3 (справа), в шапке должно появиться «Введите дату возврата карточки» и так на всех листах книги.
3) И не знаю как сделать, чтобы все эти действия происходили на всех листах под названием : 05.2010, 06.2010 и так далее.
4) А вот лист «Списки» будет только один.
5) Почему то после ввода даты, ячейка остается активной (то есть, курсор не переходит на другую ячейку).
С ув. Муля!.
К сообщению приложен файл: 0189198.rar (23.7 Kb)


С ув. Муля!
 
Ответить
СообщениеЕще раз Доброго всем вечера!
Во-первых, не знаю создавать одну тему или несколько?
Далее, в прилагаемом примере имеется календарик .
Что нужнол поправить или добавить.
1) Нужно, чтобы при вызове календарика с определенного столбца, в шапке самого календаря, появлярлось название колонки. Например, так, как при вводе дат в колонку 2 «Дата видачі картки», появляется надпись «Введите дату выдачи карточки». Можна пока на русском, я потом поменяю на украинский.
2) Соответственно, при нажатии на ячейку в столбце 3 (справа), в шапке должно появиться «Введите дату возврата карточки» и так на всех листах книги.
3) И не знаю как сделать, чтобы все эти действия происходили на всех листах под названием : 05.2010, 06.2010 и так далее.
4) А вот лист «Списки» будет только один.
5) Почему то после ввода даты, ячейка остается активной (то есть, курсор не переходит на другую ячейку).
С ув. Муля!.

Автор - Муля2010
Дата добавления - 04.10.2010 в 20:12
Hugo Дата: Понедельник, 04.10.2010, 22:45 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
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) Сделайте аналогично для одного листа. При копировании листа (если Вы копируете лист целиком) код скопируется вместе с листом.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение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
Дата добавления - 04.10.2010 в 22:45
Муля2010 Дата: Вторник, 05.10.2010, 01:30 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 290
Репутация: 12 ±
Замечаний: 0% ±

Игорь доброй ночи, а может уже еще лучшего утрА!
Че то я не пойму куда ваш код вставить. если в код формы, так у меня не работает. Может как то не так надо.А может зря я сменил frmCalendar на Calendar1. Но и с первым именем макрос тоже не заработал.
Утром на свежую голову может че получится. А вы пожалуйста тоже гляньте на мои труды.
С ув. Муля!
К сообщению приложен файл: _2.rar (24.7 Kb)


С ув. Муля!
 
Ответить
СообщениеИгорь доброй ночи, а может уже еще лучшего утрА!
Че то я не пойму куда ваш код вставить. если в код формы, так у меня не работает. Может как то не так надо.А может зря я сменил frmCalendar на Calendar1. Но и с первым именем макрос тоже не заработал.
Утром на свежую голову может че получится. А вы пожалуйста тоже гляньте на мои труды.
С ув. Муля!

Автор - Муля2010
Дата добавления - 05.10.2010 в 01:30
Hugo Дата: Вторник, 05.10.2010, 09:27 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Муля, я думал, Вы сами коды писали... Там ведь есть уже код в листе "Списки" (Private Sub Worksheet_BeforeDoubleClick() ) - вот его и надо изменить, а не в форме. И аналогично изменить существующие коды в других листах (только другие номера колонок указывать и другие заглавия давать).

А в самой форме только чуть изменил - убрал попытки дать заглавие:
[vba]
Код
Private Sub UserForm_Activate()
       Me.Calendar1.Value = Date
End Sub
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеМуля, я думал, Вы сами коды писали... Там ведь есть уже код в листе "Списки" (Private Sub Worksheet_BeforeDoubleClick() ) - вот его и надо изменить, а не в форме. И аналогично изменить существующие коды в других листах (только другие номера колонок указывать и другие заглавия давать).

А в самой форме только чуть изменил - убрал попытки дать заглавие:
[vba]
Код
Private Sub UserForm_Activate()
       Me.Calendar1.Value = Date
End Sub
[/vba]

Автор - Hugo
Дата добавления - 05.10.2010 в 09:27
Муля2010 Дата: Вторник, 05.10.2010, 12:40 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 290
Репутация: 12 ±
Замечаний: 0% ±

Доброго, доброго дня всем и иже с ними!
Игорь!
Сделал, все работает.
Большущее ВАМ СПАСИБО!!!!!


С ув. Муля!

Сообщение отредактировал Муля2010 - Вторник, 05.10.2010, 12:40
 
Ответить
СообщениеДоброго, доброго дня всем и иже с ними!
Игорь!
Сделал, все работает.
Большущее ВАМ СПАСИБО!!!!!

Автор - Муля2010
Дата добавления - 05.10.2010 в 12:40
Мир MS Excel » Вопросы и решения » Вопросы по VBA » МОДЕРНИЗАЦИЯ МАКРОСОВ
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!