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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2010, 01:20   #1
levohotnik
Пользователь
 
Регистрация: 07.02.2010
Сообщений: 25
По умолчанию Работа с формой.

Господа, я чайник, помогите, пожалуйста, реализовать следующую задачу в Exel:
1. При нажатии ранее созданной кнопки на листе -> Появление формы с 4-мя текстбоксами
2. Вводим данных в форме в эти 4 тестбокса (одно целое число, одно дробное число, два остальных - текст)
3. После нажатия конпки "Ок" в форме -> Вывод этих данных в ячейки А1, А2, А3, А4.

Заранее спасибо.
levohotnik вне форума Ответить с цитированием
Старый 07.02.2010, 01:39   #2
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

См. приложенный файл
Вложения
Тип файла: rar TestForm.rar (9.3 Кб, 25 просмотров)
Pavel55 вне форума Ответить с цитированием
Старый 07.02.2010, 01:44   #3
levohotnik
Пользователь
 
Регистрация: 07.02.2010
Сообщений: 25
Хорошо

Цитата:
Сообщение от Pavel55 Посмотреть сообщение
См. приложенный файл
Спасаба!!!
levohotnik вне форума Ответить с цитированием
Старый 07.02.2010, 01:58   #4
levohotnik
Пользователь
 
Регистрация: 07.02.2010
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Pavel55 Посмотреть сообщение
См. приложенный файл
А как скрыть форму после нажатия кнопки "Ок"?
levohotnik вне форума Ответить с цитированием
Старый 07.02.2010, 02:08   #5
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

1. Нажать на крестик (справа сверху на форме)
2. Добавить ещё одну кнопку на форму, например, "Выход" и прописать ей код

Код:
Unload Me
Pavel55 вне форума Ответить с цитированием
Старый 07.02.2010, 08:45   #6
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию

Цитата:
Сообщение от Pavel55 Посмотреть сообщение
См. приложенный файл
А можно осуществить, чтобы данные не заменялись, а дописывались ниже и ниже каждый раз
kzld вне форума Ответить с цитированием
Старый 07.02.2010, 13:02   #7
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

можно. Для этого нужно определять последнюю заполненную строку в столбце А и прибавить к ней 1. Вот, например, так

Код:
'объявляем новую переменную iLastRow 
Dim iLastRow As Long
    
    'находим последнюю заполненную строку в столбец А
    iLastRow = Cells(Rows.Count, "A").End(xlUp).Row

    'вставляем данные на 1 строку ниже
    Range("A" & iLastRow + 1) = Me.TextBox1.Text 'или  Cells(iLastRow + 1, "A") = Me.TextBox1.Text

Последний раз редактировалось Pavel55; 07.02.2010 в 14:39.
Pavel55 вне форума Ответить с цитированием
Старый 07.02.2010, 14:20   #8
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию

Цитата:
Сообщение от Pavel55 Посмотреть сообщение
можно. Для этого нужно определять последнюю заполненную строку в столбце А и прибавить к ней 1. Вот, например, так
У меня не получилось.
Вы сможете написать полный текст макроса
kzld вне форума Ответить с цитированием
Старый 07.02.2010, 14:41   #9
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

Вот код формы

Код:
Private Sub CommandButton1_Click()
Dim iLastRow As Long
    
    'находим последнюю строку
    iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
    'вставляем данные на 1 строку ниже
    Range("A" & iLastRow + 1) = Me.TextBox1.Text 'или  Cells(iLastRow + 1, "A") = Me.TextBox1.Text
    

End Sub

Private Sub CommandButton2_Click()
    Unload Me
End Sub
Пример во вложенном файле
Вложения
Тип файла: rar TestForm2.rar (9.9 Кб, 27 просмотров)
Pavel55 вне форума Ответить с цитированием
Старый 07.02.2010, 14:56   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Ну или так:

Код:
Private Sub CommandButton1_Click()
    Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 4).Value = Array(Me.TextBox1, Me.TextBox2, Me.TextBox3, Me.TextBox4)
End Sub

Private Sub CommandButton2_Click(): Me.Hide: End Sub
Пример файла:

EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с формой! vakyla Помощь студентам 7 24.01.2010 20:47
Работа с формой Skydream Общие вопросы Delphi 10 24.11.2009 21:44
Работа с формой. S_Yevgeniy Общие вопросы Delphi 12 13.10.2009 21:23
Работа с формой! Lemo Помощь студентам 25 16.01.2009 11:49
Работа с формой dolphin705 Общие вопросы Delphi 5 23.08.2008 12:59