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

Вход

Регистрация

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

 

= Мир MS Excel/Последовательный ввод данных посредством диалоговых окон - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Последовательный ввод данных посредством диалоговых окон (Макросы/Sub)
Последовательный ввод данных посредством диалоговых окон
red_tea Дата: Вторник, 28.07.2015, 13:06 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, господа!

Прошу помочь, не хватает знаний, очень хочется разобраться, но по учебным материалам не могу понять как реализовать, а готового примера нет.

Есть таблица-отчет. Необходимо, чтобы она заполнялась посредством диалоговых окон.
В идеале:
1) чтоб была кнопка "Новое обращение".
При нажатии на неё появлялось диалоговое окно с возможностью ввода "Укажите время обращения". - и внесенные данные попадали в стоблец "время"
2) После закрытия первого окна, появлялось следующее, уже не со вводом, а с вариантами выбора: "Мужчина/Женщина", и выбранное значение попадало в М и Ж соответственно цифрой 1.

Ну и так далее, по той же логике

Почитал, поизучал, но не могу понять вот какие моменты:
- как сделать, чтобы данные попадали в следующую строку после заполненной, и следовали по столбцам этой строки
- как сделать диалоговое окно с вариантами? в стандартном варианте можно ведь выбирать только уже готовые значение Да/Нет, Отмена и тд

Таблицу прикладываю.
Буду очень благодарен за комментарии!
К сообщению приложен файл: ______2015_08.xlsx (32.3 Kb)
 
Ответить
СообщениеДобрый день, господа!

Прошу помочь, не хватает знаний, очень хочется разобраться, но по учебным материалам не могу понять как реализовать, а готового примера нет.

Есть таблица-отчет. Необходимо, чтобы она заполнялась посредством диалоговых окон.
В идеале:
1) чтоб была кнопка "Новое обращение".
При нажатии на неё появлялось диалоговое окно с возможностью ввода "Укажите время обращения". - и внесенные данные попадали в стоблец "время"
2) После закрытия первого окна, появлялось следующее, уже не со вводом, а с вариантами выбора: "Мужчина/Женщина", и выбранное значение попадало в М и Ж соответственно цифрой 1.

Ну и так далее, по той же логике

Почитал, поизучал, но не могу понять вот какие моменты:
- как сделать, чтобы данные попадали в следующую строку после заполненной, и следовали по столбцам этой строки
- как сделать диалоговое окно с вариантами? в стандартном варианте можно ведь выбирать только уже готовые значение Да/Нет, Отмена и тд

Таблицу прикладываю.
Буду очень благодарен за комментарии!

Автор - red_tea
Дата добавления - 28.07.2015 в 13:06
SLAVICK Дата: Вторник, 28.07.2015, 13:23 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Смотрите UserForm:
Посмотрите видео, или больше Здесь
Или почитайте здесь - и можете спросить у Гугла "UserForm"- он знает :D

Сделал простенький пример для М/Ж, чтоб было с чего начать ^_^
К сообщению приложен файл: _2015_08.xlsm (40.9 Kb)


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Вторник, 28.07.2015, 13:31
 
Ответить
СообщениеСмотрите UserForm:
Посмотрите видео, или больше Здесь
Или почитайте здесь - и можете спросить у Гугла "UserForm"- он знает :D

Сделал простенький пример для М/Ж, чтоб было с чего начать ^_^

Автор - SLAVICK
Дата добавления - 28.07.2015 в 13:23
red_tea Дата: Вторник, 28.07.2015, 14:04 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
SLAVICK, спасибо! Это самое простое, что есть в моем варианте, уже разобрался))
А как насчет последовательного появления окон? И ввода именно в строку, следующую за заполненной?)
Получается, что мне нужно несколько штук inputbox объединить с userform в определенной последовательности, и чтоб при выполнении одного следовало другое. В этом вся сложность для меня!
 
Ответить
СообщениеSLAVICK, спасибо! Это самое простое, что есть в моем варианте, уже разобрался))
А как насчет последовательного появления окон? И ввода именно в строку, следующую за заполненной?)
Получается, что мне нужно несколько штук inputbox объединить с userform в определенной последовательности, и чтоб при выполнении одного следовало другое. В этом вся сложность для меня!

Автор - red_tea
Дата добавления - 28.07.2015 в 14:04
SLAVICK Дата: Вторник, 28.07.2015, 14:09 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Получается, что мне нужно несколько штук inputbox объединить с userform в определенной последовательности, и чтоб при выполнении одного следовало другое

Можно так, но я бы сделал БОльшую форму, с всеми нужными полями - посмотрите видео по ссылкам - там вроде доступно показано создание формы и работа с ней. :D


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
Получается, что мне нужно несколько штук inputbox объединить с userform в определенной последовательности, и чтоб при выполнении одного следовало другое

Можно так, но я бы сделал БОльшую форму, с всеми нужными полями - посмотрите видео по ссылкам - там вроде доступно показано создание формы и работа с ней. :D

Автор - SLAVICK
Дата добавления - 28.07.2015 в 14:09
red_tea Дата: Вторник, 28.07.2015, 14:30 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Тогда какой в ней смысл, таблица и есть форма по сути)
 
Ответить
СообщениеТогда какой в ней смысл, таблица и есть форма по сути)

Автор - red_tea
Дата добавления - 28.07.2015 в 14:30
SLAVICK Дата: Вторник, 28.07.2015, 14:59 | Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Тогда какой в ней смысл, таблица и есть форма по сути)

Смысл в том, что при правильном построении в форму можно добавить намного больше информации, которая будет визуально читабельной, и удобной, без лишней информации.

или

А в таблице Вы сможете сделать несколько вкладок?

Если скрывать группировкой - совсем не то.
Я не настаиваю, но думаю если сделать кучу всплывающих окон - через несколько часов работник, который заполняет таблицу "улетит", или наделает ошибок (я бы точно %) )
Посмотрите как можно примерно реализовать формы.


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Вторник, 28.07.2015, 15:02
 
Ответить
Сообщение
Тогда какой в ней смысл, таблица и есть форма по сути)

Смысл в том, что при правильном построении в форму можно добавить намного больше информации, которая будет визуально читабельной, и удобной, без лишней информации.

или

А в таблице Вы сможете сделать несколько вкладок?

Если скрывать группировкой - совсем не то.
Я не настаиваю, но думаю если сделать кучу всплывающих окон - через несколько часов работник, который заполняет таблицу "улетит", или наделает ошибок (я бы точно %) )
Посмотрите как можно примерно реализовать формы.

Автор - SLAVICK
Дата добавления - 28.07.2015 в 14:59
red_tea Дата: Вторник, 28.07.2015, 15:36 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Соглашусь, тоже вариант!
Спасибо за мысль, посмотрю
 
Ответить
СообщениеСоглашусь, тоже вариант!
Спасибо за мысль, посмотрю

Автор - red_tea
Дата добавления - 28.07.2015 в 15:36
red_tea Дата: Среда, 29.07.2015, 09:00 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Единственно, до сих пор сохранился вопрос - как сделать так, чтобы данные заполнялись в строку, следующую за заполненной?
 
Ответить
СообщениеЕдинственно, до сих пор сохранился вопрос - как сделать так, чтобы данные заполнялись в строку, следующую за заполненной?

Автор - red_tea
Дата добавления - 29.07.2015 в 09:00
SLAVICK Дата: Среда, 29.07.2015, 09:18 | Сообщение № 9
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Это смотря что Вы предпочтете... способов масса. :D
Например у меня в примере заполнение М/Ж :
[vba]
Код
Cells(Selection.Row, 5) = 1
[/vba]
Это значит, что заполняется ячейка со строкой выделенной ячейки, в 5-м столбце.
Тут можно в конце заполнения всех данных строки выделить ячейку строкой ниже:
[vba]
Код
Selection.Offset(1).Select
[/vba]
Можно завести переменную, например I, и вносить данные в ячейку так:
[vba]
Код
Cells(i, 5) = ....
[/vba]
а переменную увеличивать в конце заполнения на 1:
[vba]
Код
i =  i + 1
[/vba]
:D


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Среда, 29.07.2015, 09:22
 
Ответить
СообщениеЭто смотря что Вы предпочтете... способов масса. :D
Например у меня в примере заполнение М/Ж :
[vba]
Код
Cells(Selection.Row, 5) = 1
[/vba]
Это значит, что заполняется ячейка со строкой выделенной ячейки, в 5-м столбце.
Тут можно в конце заполнения всех данных строки выделить ячейку строкой ниже:
[vba]
Код
Selection.Offset(1).Select
[/vba]
Можно завести переменную, например I, и вносить данные в ячейку так:
[vba]
Код
Cells(i, 5) = ....
[/vba]
а переменную увеличивать в конце заполнения на 1:
[vba]
Код
i =  i + 1
[/vba]
:D

Автор - SLAVICK
Дата добавления - 29.07.2015 в 09:18
_Boroda_ Дата: Среда, 29.07.2015, 09:21 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Вы про это?
[vba]
Код
    r_ = Range("B" & Rows.Count).End(xlUp).Row + 1' номер строки первой пустой ячейки столбца В
       Range("C" & r_) = "что-то"'это для примера заполнения в столбце С
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВы про это?
[vba]
Код
    r_ = Range("B" & Rows.Count).End(xlUp).Row + 1' номер строки первой пустой ячейки столбца В
       Range("C" & r_) = "что-то"'это для примера заполнения в столбце С
[/vba]

Автор - _Boroda_
Дата добавления - 29.07.2015 в 09:21
SLAVICK Дата: Среда, 29.07.2015, 09:34 | Сообщение № 11
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
red_tea, с позволения _Boroda_ - прокомментирую немного подробней:
[vba]
Код
r_ = Range("B" & Rows.Count).End(xlUp).Row+1
[/vba]
Находит не:
номер строки первой пустой ячейки столбца В

а последнюю непустую ячейку в столбце "B", и добавляет +1. Так например если первая пустая ячейка будет В2, но после нее будут данные в В100, то этот макрос покажет 100+1=101

Вы про это?

_Boroda_, на сколько я понял - нужно вносить данные в лист - последовательно строка за строкой. При этом, наверное, не обязательно находить последнюю строку, главное, чтобы переход был на следующую строку после заполнения всех данных.


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Среда, 29.07.2015, 09:35
 
Ответить
Сообщениеred_tea, с позволения _Boroda_ - прокомментирую немного подробней:
[vba]
Код
r_ = Range("B" & Rows.Count).End(xlUp).Row+1
[/vba]
Находит не:
номер строки первой пустой ячейки столбца В

а последнюю непустую ячейку в столбце "B", и добавляет +1. Так например если первая пустая ячейка будет В2, но после нее будут данные в В100, то этот макрос покажет 100+1=101

Вы про это?

_Boroda_, на сколько я понял - нужно вносить данные в лист - последовательно строка за строкой. При этом, наверное, не обязательно находить последнюю строку, главное, чтобы переход был на следующую строку после заполнения всех данных.

Автор - SLAVICK
Дата добавления - 29.07.2015 в 09:34
red_tea Дата: Четверг, 30.07.2015, 21:49 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Ребята, помогите добить!

Сделал все по инструкции, http://www.excel-easy.com/vba/userform.html
однако неверно работаю следующие вещи:
1. Комбобокс "Откуда клиент узнал о нас" не показывается изначально, а только когда нажмешь "Очистить", т.е. почему то при открытии формы не происходит initialize
2. Данные не хотят вставать в место, куда им следует - встают в строку 2 и все тут, и не следуют дальше по строкам, а все время в строке 2 зависают.

Все перепроверил, не пойму где я ошибся..
К сообщению приложен файл: ___11.xlsm (51.3 Kb)
 
Ответить
СообщениеРебята, помогите добить!

Сделал все по инструкции, http://www.excel-easy.com/vba/userform.html
однако неверно работаю следующие вещи:
1. Комбобокс "Откуда клиент узнал о нас" не показывается изначально, а только когда нажмешь "Очистить", т.е. почему то при открытии формы не происходит initialize
2. Данные не хотят вставать в место, куда им следует - встают в строку 2 и все тут, и не следуют дальше по строкам, а все время в строке 2 зависают.

Все перепроверил, не пойму где я ошибся..

Автор - red_tea
Дата добавления - 30.07.2015 в 21:49
RAN Дата: Четверг, 30.07.2015, 22:11 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub UserForm_Initialize()
[/vba]
и
[vba]
Код
Private Sub UserForm1_Initialize()
[/vba]
Есть разница?
Первое - событие формы, второе - погода в Африке.


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Четверг, 30.07.2015, 22:13
 
Ответить
Сообщение[vba]
Код
Private Sub UserForm_Initialize()
[/vba]
и
[vba]
Код
Private Sub UserForm1_Initialize()
[/vba]
Есть разница?
Первое - событие формы, второе - погода в Африке.

Автор - RAN
Дата добавления - 30.07.2015 в 22:11
_Boroda_ Дата: Четверг, 30.07.2015, 22:13 | Сообщение № 14
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Что дописал, выделил вот так
[vba]
Код
'=============
[/vba]

Андрей, точно, а я и не заметил.
Тогда еще проще
Файл перевложил

Добавлено
Как Ярослав подсказывает, забыл еще в одном месте единичку стереть.
Поправил и файл перевложил
К сообщению приложен файл: _11_3.xlsm (46.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Что дописал, выделил вот так
[vba]
Код
'=============
[/vba]

Андрей, точно, а я и не заметил.
Тогда еще проще
Файл перевложил

Добавлено
Как Ярослав подсказывает, забыл еще в одном месте единичку стереть.
Поправил и файл перевложил

Автор - _Boroda_
Дата добавления - 30.07.2015 в 22:13
RAN Дата: Четверг, 30.07.2015, 22:24 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Саш, подобные вещи так глаз замыливают...
Я недавно 3 часа ошибку в макросе искал.
Подсказали - ты сначала ищешь, а только после дату меняешь!
(при переносе из тестовой sub в функцию порядок строк попутал)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСаш, подобные вещи так глаз замыливают...
Я недавно 3 часа ошибку в макросе искал.
Подсказали - ты сначала ищешь, а только после дату меняешь!
(при переносе из тестовой sub в функцию порядок строк попутал)

Автор - RAN
Дата добавления - 30.07.2015 в 22:24
SLAVICK Дата: Пятница, 31.07.2015, 08:42 | Сообщение № 16
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
_Boroda_, Вы - забыли изменить CommandButton2_Click - там осталось UserForm1_Initialize: :D
red_tea, нужно немного изменить yes
[vba]
Код
Private Sub CommandButton2_Click()
Call UserForm_Initialize
End Sub
[/vba]
ЗЫ red_tea, смотрю Вы всё же решились на форму hands


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Пятница, 31.07.2015, 08:45
 
Ответить
Сообщение_Boroda_, Вы - забыли изменить CommandButton2_Click - там осталось UserForm1_Initialize: :D
red_tea, нужно немного изменить yes
[vba]
Код
Private Sub CommandButton2_Click()
Call UserForm_Initialize
End Sub
[/vba]
ЗЫ red_tea, смотрю Вы всё же решились на форму hands

Автор - SLAVICK
Дата добавления - 31.07.2015 в 08:42
red_tea Дата: Пятница, 31.07.2015, 09:13 | Сообщение № 17
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Огромнейшее спасибо всем! Без вас бы я не справился))
Всё работает! :D
 
Ответить
СообщениеОгромнейшее спасибо всем! Без вас бы я не справился))
Всё работает! :D

Автор - red_tea
Дата добавления - 31.07.2015 в 09:13
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Последовательный ввод данных посредством диалоговых окон (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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