Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2013, 22:07   #1
uralshans
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 66
По умолчанию Возврат на предыдущую открытую форму

Имеем формы: FormDate, Zad1, Zad2, Zad3.
на формах Zad1, Zad2, Zad3 есть CommandButton для перехода к форме FormDate
и так..
допустим находимся на форме Zad1, кликаем CommandButton, открывается форма FormDate, на ней вводим значение в TextBox1, допустим "11.22.33"
кликаем кнопку "Добавить" и запись "11.22.33" дублируется в TextBox1 на форме Zad1
....
Необходимо чтоб тоже самое можно было проделать и на Zad2, Zad3

на форме DateForm, у кнопки "Добавить" такой вот код.
Zad1.TextBox1.Value = TextBox1.Value
Естественно данные дублируются только в форму Zad1.
Т.е. нужна команда возврата на предыдущую форму (я так думаю...)
..
Возврат_на_предыдущую_форму.TextBox 1.Value = TextBox1.Value
как то так наверное..
uralshans вне форума Ответить с цитированием
Старый 09.01.2013, 22:42   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
на форме DateForm, у кнопки "Добавить" такой вот код.
Zad1.TextBox1.Value = TextBox1.Value
хреновый код)

покажите файл со всеми этими формами - подправим код.

PS: Видели же у меня пример на сайте - там вызов формы выбора даты идет не напрямую (FormDate.show), а посредством ФУНКЦИИ Get_Date
Вызвали с формы Zad1 функцию - получили значение - добавили в зад (Zad1)

Вот и сделайте аналогично, чтобы FormDate взаимодействовала только с функцией,
а функция вызывалась уже из зада (Zad1, Zad2, Zad3)

PPS: Если сами не разберетесь - прикрепляйте файл
EducatedFool вне форума Ответить с цитированием
Старый 09.01.2013, 23:03   #3
uralshans
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 66
По умолчанию Думаю лучше сразу файл..

вот файлик... ........
Вложения
Тип файла: rar zad.rar (50.1 Кб, 12 просмотров)
uralshans вне форума Ответить с цитированием
Старый 09.01.2013, 23:23   #4
uralshans
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 66
По умолчанию Разобрался!!

На второй взгляд оказалось не так уж и сложно))

спасло
Me.TextBox1 = Get_Date(TextBox1, Now)

СПАСИБО за помощь!!
uralshans вне форума Ответить с цитированием
Старый 09.01.2013, 23:26   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вместо
Код:
Private Sub CommandButton1_Click()
    Form_SelectDate.Show
End Sub
надо написать
Код:
Private Sub CommandButton1_Click()
    Me.TextBox1 = Get_Date(Now)
End Sub


и на форме выбора даты, вернуть код к исходному виду (убрать добавление даты в зад)
Код:
Private Sub Cmd_Select_Click()
    'Команда - закончить выбор даты и закрыть форму
    SelectedDate = CStr(DateValue(dt_1))
    Unload Me
End Sub
PS: Зачем в файле три ОДИНАКОВЫЕ формы?
Или таблицы на разных листах, потом будут разные?
EducatedFool вне форума Ответить с цитированием
Старый 09.01.2013, 23:31   #6
uralshans
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 66
По умолчанию Одинаковые таблички (листы)

Листы зад1,2,3
Одинаковые для примера...

не подумайте что Zad = Зад..
подразумевалось Zad = Задание )
uralshans вне форума Ответить с цитированием
Старый 09.01.2013, 23:36   #7
uralshans
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 66
По умолчанию Может быть сможете помоч и в таком случае:

На листе1 таблица, в нее добавляю клиентов через форму..
По средствам макроса, при добавлении клиента, автоматом формируется новый лист с настроенными ячейками. И конечно в лист1 добавляется запись о клиенте.
Как сделать так, чтоб не только запись добавилась о клиенте, но и гиперссылка (на ячейке с названием клиента) на новый лист.

п.с.
новый лист создается с названием не лист2, а с названием клиента, которое вводим в TextBox1
uralshans вне форума Ответить с цитированием
Старый 10.01.2013, 00:09   #8
uralshans
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 66
По умолчанию С гиперссылкой разобрался

Оказалось не так сложно все..

Private Sub CommandButton1_Click()
'Заносим данные в таблицу
Dim lLastRow As Long
lLastRow = ActiveSheet.Cells(ActiveSheet.Rows. Count, "B").End(xlUp).Row + 1
ActiveSheet.Cells(lLastRow, "B").Value = Me.TextBox1.Value
'Добавляем гиперссылку на лист с название листа из TextBox1
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"'" & Me.TextBox1.Text & "'" & "!A1"
ActiveSheet.Cells(lLastRow, "C").Value = Me.TextBox2.Value
ActiveSheet.Cells(lLastRow, "D").Value = Me.TextBox3.Value
ActiveSheet.Cells(lLastRow, "E").Value = Me.TextBox4.Value & "-" & Me.TextBox5.Value & "-" & Me.TextBox6.Value
'Создаем новый лист с названием из TextBox1
Sheets.Add After:=Worksheets(Sheets.Count)
Sheets(Sheets.Count).Name = Me.TextBox1.Value
uralshans вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический возврат на предыдущую страницу. viscas PHP 4 12.08.2019 10:08
Возврат на главную форму antisportik228 Общие вопросы Delphi 4 05.01.2013 22:34
Как создать форму в ручную и освободить из памяти предыдущую форму, на С++Builder 2009? AndreyK Общие вопросы C/C++ 1 18.01.2012 20:54
форматированный ввод-вывод Си (возврат на предыдущую строку) kozaby Visual C++ 3 28.01.2011 17:31
форматированный ввод-вывод Си (возврат на предыдущую строку) kozaby Помощь студентам 0 28.01.2011 12:06