Страницы: 1
RSS
Объединение календарей
 
Доброго всем дня .
У меня есть форма на которой 16 текстбоксов, а рядом с ними кнопки которые по макросу вызывают форму календаря.
При выборе даты в календаре это значение должно вставиться в текстбокс находящийся рядом с той кнопкой которую активировал пользователь.
Не хочется плодить формы календаря и делать их 16 штук что бы в каждой прописать конкретный текстбокс куда нужно вставить дату.
Вопрос.....Можно ограничиться одной формой календаря, а номер текстбокса сделать переменной...при нажатии кнопки создавалась бы константа с номером текстбокса и она использовалась бы потом в форме календаря для определения куда потом вставлять дату...
Немного сумбурно описал за что прошу прощения..
Уверен знатоки этого форума подскажут как это реализовать..
Заранее спасибо всем кто откликнется на мою просьбу.

Кусок кода:
Код
касса.TextBox2 = Calendar1.Value
касса.TextBox2 = Format(Me.Calendar1, "dd/mmmm/yyyy")
Изменено: kviona - 13.01.2017 11:29:57
 
Вы бы накидали файл-пример с формой на 2-3 текстбокса с календарем. Оно как-то поудобнее чем просто на листочке с карандашем
Согласие есть продукт при полном непротивлении сторон
 
Прикладываю пример, а то описание получилось совсем не понятным...:)
В примере видно что какой бы кнопкой не вызывалась форма с календарем выбранная дата вставляется в ТекстБокс1 так как он прописан в форме календаря.
А нужно что бы дата вставлялась в текстбокс рядом с кнопкой которой активировали форму календаря.
 
В файле админы макросы режут, так что формы/кода не вижу, но думаю целевой текстбокс можно передавать в параметре (доработать), или загонять в публичную переменную.
Ну а понятие "рядом" не видя формы - очень расплывчато :) Понимаете о чём я? Код тоже форму не видит...
Изменено: Hugo - 13.01.2017 10:29:47
 
Hugo если честно не совсем понял....что значит режут?...я скачал пример и открыв его вижу и формы и макросы...
Если не сложно поясните пожалуйста о чем речь.
 
kviona, Hugo говорит о том, что не может скачивать файлы с макросами )
По вопросу: не нужно 16 календарей - используйте один для всех нужд )
Дополню: я обычно вызываю календарь для Текст Бокса не кнопкой, а кликом по самому ТекстБоксу - тогда и контролов меньше и проще определить, в какой ТекстБокс вносить данные из календаря.
 
Посмотрите вариант.
 
Юрий М, Спасибо...мысль интересная...я не подумал что можно вызвать календарь через текстбокс. Все гениальное просто :))
Так будет безусловно проще...не плодить кучу кнопок ..
Единственно я не понял каким способом определить в какой текст бокс вставлять выбранную дату ??
Если не трудно поясните пожалуйста..
 
ActiveControl
 
Юрий М,я понял ...думал об этом, но не понятно другое..при активации формы календаря основная форма становиться не активной...как дать понять что считать активным контролом...?
 
Logistic,Спасибо огромное....решение хорошее...но не совсем удобное в плане того что на каждый текстбокс приходиться прописывать условие..а если их 40 так вообще смерть :)) Я не в коем образе не хочу вас обидеть...правда большое спасибо...просто хочу понять возможно обойтись в данном случае меньшей кровью..
 
Для вызова календаря я использую событие ТекстБокса MouseUp. В этот момент на основной форме активен именно тот ТекстБокс, по которому кликнули. А после выбора даты в форме с календарём следует указать: ГлавнаяФорма.ActiveControl = Календарь.value
P.S. Ваш файл не смотрел...
 
Юрий М,кажется понял...только если можно одно уточнение..?
если вместо события ТекстБокса MouseUp использовать TextBox1_DblClick....будет работать?
 
А если снача попробовать?
 
Вариант через модули классов
http://www.excel-vba.ru/chto-umeet-excel/rabota-s-modulyami-klassov/д
Изменено: Logistic - 13.01.2017 17:15:09 (добавлена ссылка)
 
vikttur,и то верно...прошу прощения.Удачных всем выходных.
Logistic,спасибо Вам огромное. Полезная ссылка. Сегодня уже поздно но завтра почитаю...
Удачных Вам выходныи и спасибо что не остались равнодушным :)) Удачи Вам.
 
Юрий М,Спасибо вам еще раз . Со всем разобрался. Все работает даже лучше чем я того ожидал.
Удачных Вам выходных и спасибо за помощь.
 
Юрий М,Доброе утро.
Рано я вчера порадовался :)
Перенес все в свой проект и столкнулся с ошибкой.
У меня все текстбоксы разбиты для удобства на смысловые группы (выезд 1, выезд 2....и так далее) и объеденены с помощью Frame1,Frame2,...и так далее.и все это объеденено одним общим Frame который имеет скролл так как не все данные помещаются на экране.
И здесь видимо начинается конфликт...теряется понятие ActiveControl....календарь открывается но выбрав дату макрос не может понять куда её вставить.
Я понял что нужно перед ActiveControl. вставить Frame в котором лежит текстбокс. и если бы все текстбоксы были объеденены одним Frame проблем не было бы но как быть в моем случае ?...не ужели придеться делать столько форм с календарем сколько Frame ????
Подскажите что можно сделать. Обидно если в моем проекте это не возможно будет использовать.
Прикладываю принт с ошибкой...Если нужно могу приложить примерчик..
Изменено: kviona - 14.01.2017 11:56:34
 
Покажите файл. Если большой, то создайте небольшой аналог.
 
Обходной маневр: замените Frame на Label с рамочкой ))
 
Юрий М,спасибо. Я попытался произвести замену Frame на Label с прозрачным фоном и спец.рамкой (получилось визуально как и в случае использования Frame)...все работает...одно не удобно....переход кнопкой Tab не совсем корректно работает...выходит за границы блока... Да и если понадобиться переместить блок объединенный Frame перемещается вместе с содержимым....а Label сам по себе...если только с группировать все командой "сгруппировать" но не пробовал будет работать или нет :))
Файл примера  я так понял уже не нужен?
 
Но ведь переход по Tab можно настроить по своему вкусу: правый клик по форме - Tab Order. И перемещайте контролы в нужной последовательности.
Перемещать можно сразу группу контролов: кликаем по ним, удерживая Ctrl - собрали группу, а потом таскаем её по форме )
 
Юрий М, думаю Вы правы...Пытаюсь найти проблему там где её нет :)
Спасибо Вам огромное. Удачных выходных.
 
kviona, посмотрите как реализовано здесь. Передача объекта через переменную. И еще определение координат control'a выводится не зависимо от глубины вложенности во fram'ы, например. Можете этот принцип использовать. Если не понятно спрашивайте.
 
AAF, Благодарю...Сегодня уже не успею а завтра обязательно посмотрю.
Если возникнут вопросы побеспокою с Вашего позволения :)
Страницы: 1
Читают тему
Наверх