Страницы: 1
RSS
Как привязать форму с календарем для ввода в другие формы?
 
Есть книга с листами, пользовательскими формами. На многих формах есть текстбоксы для ввода даты. К ним я прикрутил форму с календарем. Как сделать чтобы дата из формы-календаря заносилась в нужную форму. Повесил на кнопку ОК календаря такой макрос, но при удаленных листах макрос выдает ошибку.
Код
Private Sub Cmd_Select_Click()
    'Команда - закончить выбор даты и закрыть форму
    If Форма_АВК_МТР.Visible = True Then
        Форма_АВК_МТР.tbx_дата = Форма_Выбор_даты_АВК.TextBox_Дата
    End If
    If Форма_АВК_ВСН.Visible = True Then
        Форма_АВК_ВСН.tbx_date = Форма_Выбор_даты_АВК.TextBox_Дата
    End If
    If ActiveSheet.Name = учет_мат.Name Then
        ActiveCell = Форма_Выбор_даты_АВК.TextBox_Дата
    End If
    If Форма_проверка_электродов.Visible = True Then
        Форма_проверка_электродов.tbx_дата_эл = Форма_Выбор_даты_АВК.TextBox_Дата
    End If
    If ActiveSheet.Name = уч_труб.Name Then
        ActiveCell = Форма_Выбор_даты_АВК.TextBox_Дата
    End If
    Unload Me
End Sub
 
создаете глобальную переменную - ей присваиваите значение даты и потом используете где надо.
 
Dima S, а кодом не поможете, хотя бы дать направление))
 
Код
Option Explicit

Public pDate As Date

Sub test1()
    pDate = Date
    Call test2
End Sub

Sub test2()
    MsgBox "Сегодня " & pDate, 64, ""
End Sub
 
vikttur,  записал дату в глобальную переменную, но проблема в том, когда перебирается оператор If Then чтобы понять в какую форму записать дату, то выдается ошибка, если один из листов к которому привязана одна из форм удалена. Не уж то для каждой пользовательской формы делать свою форму-календарь?
 
Нет, проблема в другом. Вы не показываете пример, демонстрирующий проблему. Формы пользователя могут жить сами по себе. Как удаление листа влияет на форму? Лист передает туда данные? В таком случае почему удаляются листы? Ведь нет листа - форма бесполезна...
 
Цитата
Сергей Хатюшин написал:
выдается ошибка
Что бы ошибка не выдавалась :D  нужно приложить файл пример,согласно правил форума.
 
Цитата
Сергей Хатюшин написал:
если один из листов к которому привязана одна из форм удалена
так добавьте проверку на наличие листа с формой: Как узнать существует ли лист в книге?
Изменено: Дмитрий(The_Prist) Щербаков - 09.08.2019 20:53:27
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Сергей Хатюшин написал:
Как сделать чтобы дата из формы-календаря заносилась в нужную форму
Не очень понятна проблема: из какого ТекстБокса вызвали календарь - тому ТекстБоксу и присваивайте его значение. В общем случае это может выглядеть так:
Код
Me.ActiveControl = Calendar.Value
 
Слепил пример, но он работает при удалении листа а в моем файле не работает и выдает ошибку когда перебирает If Then c которым связан удаленный лист, а свой пример не могу загрузить в связи с ограничением по размеру файла(((
 
UserForm1, 2, 3 - зачем три формы? С разных листов вызывать одну...
Вы видите только тот путь, которым сами пошли. Но правильный ли? Задача конечная какая?
 
vikttur,есть более трех форм и в каждом есть ввод даты, такого разве не может быть ?)))
 
Цитата
Сергей Хатюшин написал:
более трех форм и в каждом есть ввод даты
И вводите в ОДНУ форму даты. Зачем их три?
 
На одном листе есть одна пользовательская форма с кучей элементов, которая решает свою задачу и к ней прикручена форма-календарик, на втором листе другая пользовательская форма, которая решает другую задачу и к ней тоже прикручена эта же форма-календарик, потому что там тоже надо вводить дату и так далее
 
Но у Вас же в примере формы одинаковые. В реальности это не так?
Цитата
vikttur написал:
Задача конечная какая?
 
Юрий М,в реальности не так, значит плохой пример я сделал, формы разные, назначение разное, а форма-календарь для них одна
 
Хорошо - разные. Ввели в каждую форму даты. Дальше что? В чём проблема? Задач какая? Что не получается?
 
Юрий М, но проблема в том, что если удалить любой из листов то, когда перебирается оператор If Then чтобы понять в какую форму записать дату выдается ошибка. Но я сейчас ее уже решил, блогодаря совету Дмитрия(The_Prist) Щербакова.  Повесил проверку на наличие нужных листов в книге. Спасибо! Сам бы еще очень долго думал
 
Цитата
Сергей Хатюшин написал:
чтобы понять в какую форму записать дату
А мне совсем непонятно, чего тут ещё нужно понимать: из какой формы вызвали календарь - в ту дата и запишется.
Но, раз решили,- уже хорошо )
P.S. А задачу Вы так и не описали...
 
Цитата
Dima S написал:
создаете глобальную переменную
, только ей присвоить объект текстбокса формы и в него вернуть значение из формы календаря. Уже на основании того что за форма, делать выбор на какой лист вставлять дату. Минус только один, хотя это не предусмотрено, это вызов сразу всех форм и из них кучу календарей :-)
Изменено: БМВ - 10.08.2019 09:01:10
По вопросам из тем форума, личку не читаю.
 
Цитата
Сергей Хатюшин написал: если удалить любой из листов... выдается ошибка
Цитата
vikttur написал: нет листа - форма бесполезна...
Зачем такие формы? Да и привязка календаря ну никак не связана с проверкой наличия листа.
 
то ли лыжи не едут...
зачем так усложнять все?
вот, пробуйте - добавляйте, удаляйте листы сколько влезет.
Страницы: 1
Наверх