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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2013, 16:12   #1
multiki
 
Регистрация: 05.05.2013
Сообщений: 7
Восклицание Переходим от одиночных окон Inputbox к Userform'e.

1.
Добрый день! Столкнулся со следующей проблемой. Имеется простенький код:

Dim x, y

x = InputBox("число-месяц[-год] (ввод через дефис)", "Дата для фильтра", Format(Date, "dd-mm-yyyy"))

y = InputBox("число-месяц[-год] (ввод через дефис)", "Дата для фильтра", Format(Date-1, "dd-mm-yyyy"))

MsgBox x

Msgbox y



Тут как видите друг за другом следуют 2 диалоговых окна, каждое запрашивает ввести дату, и через Msgbox выводит наши даты.

Задание:
Сделать аналогичную картину с помощью UserForm. То есть на одной форме будем иметь 2 окна ввода даты (Textbox). и Кнопку чтобы выводила нам сообщение с заданными датами. (Главное не забывать что каждая введенная в бокс дата должна записываться в аргумент для дальнейшего её использования.)

Я изначально представлял себе это так:

Userform.Show

Userform.Textbox1 = InputBox("число-месяц[-год] (ввод через дефис)", "Дата для фильтра", Format(Date, "dd-mm-yyyy"))

Userform.Textbox2 = InputBox("число-месяц[-год] (ввод через дефис)", "Дата для фильтра", Format(Date-1, "dd-mm-yyyy"))


Но этот код конечно не работает) да и в аргумент у меня ничего не запишется.

2.
Второе задание можно только описать. Мне нужно создать в Userform область ввода, в которую я бы смог вставлять маленькую табличку (примерно 2 столбца и 4-5 строк.) и она бы в свою очередь копировалась на определенный лист книги и например по середине листа.


Жду ваших советов спасибо!
multiki вне форума Ответить с цитированием
Старый 05.05.2013, 22:39   #2
kalbasiatka
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 208
По умолчанию

Текстбоксы во вложении, а со вторым пунктом, что за "маленькая табличка? В ней будут вычисления, прямо на форме? Или просто куча текстбоксов из которых надо перенести данные на лист?
Вложения
Тип файла: rar Лист Microsoft Excel.rar (6.9 Кб, 44 просмотров)
kalbasiatka вне форума Ответить с цитированием
Старый 06.05.2013, 01:59   #3
multiki
 
Регистрация: 05.05.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от kalbasiatka Посмотреть сообщение
Текстбоксы во вложении, а со вторым пунктом, что за "маленькая табличка? В ней будут вычисления, прямо на форме? Или просто куча текстбоксов из которых надо перенести данные на лист?
Да необходимо будет перенести данные на лист. Давай я покажу еще раз пример:

1) Есть табличка:
Снимок666.JPG

2. Копирую её с базы данных.

3. Вставляю каким-то образом в текстбокс Юзерформы. (как это сделать?? где-то мне советовали листбокс, но он не редактируется.)

4. После чего необходимо чтобы эта табличка оказалась на определенном листе и на определенном диапазоне. (например посреди какого-то массива данных.)
multiki вне форума Ответить с цитированием
Старый 06.05.2013, 08:14   #4
kalbasiatka
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 208
По умолчанию

Цитата:
Давай я покажу еще раз пример:
Первого примера я не видел, было
Цитата:
Второе задание можно только описать
.
На форму текстбокс и вперёд:
Textbox3.Text = Sheets("Лист1").Range("A1")
и обратно также
Sheets("Лист1").Range("A1") = Textbox3.Text

p.s. Ваши "примеры" надо в .xls выкладывать а не в "весёлых картинках".
kalbasiatka вне форума Ответить с цитированием
Старый 07.05.2013, 00:19   #5
multiki
 
Регистрация: 05.05.2013
Сообщений: 7
По умолчанию

Веселые картинки помогают там где нет общего представления. К сожалению не могу выложить фаил потому, что я понятия не имею возможно ли данные манипуляции в VBA.

Могу лишь передать суть через вложенный вами ранее код VBA.
И так как вы помните, мы создавали тексбокс в который вносили числа, после чего мсгбокс выдавал эти числа на экран.

Теперь необходимо в текстбокс вставить небольшую таблицу (представьте что её мы скопировали из сторонней программы и она у нас просто в буфере обмена), и так контрл-в. Вставили. Теперь покажем её в мсгбоксе на экран. Далее необходимо, чтобы таблица скопировалась (перенеслась) на заготовленный лист1 и в отведенный ей диапозон.

Возможно таблицу которую мы вставим в текстбокс из буфера необходимо будет записать в аргумент. а только потом выводить аргумент на экран и вставлять его в диапозон на листе1.

Dim x
x = textbox.txt
Worksheets("Лист1").Range("A1: E3") = x

'где х - это некая таблица из буфера обмена.

Спасибо. Жду ваших советов.
multiki вне форума Ответить с цитированием
Старый 07.05.2013, 00:34   #6
multiki
 
Регистрация: 05.05.2013
Сообщений: 7
По умолчанию

P.s. также хотел спросить по поводу переменных значения которых мы присваиваем ячейкам.

Worksheets("Лист").Range("A1") = x

Я использую в работе числа вида "14567,123".
Как правильно прописать Dim x as .... - чтобы получить в ячейке данный формат числа. Integer вроде только для целых используется.
multiki вне форума Ответить с цитированием
Старый 07.05.2013, 00:44   #7
RAN.
Форумчанин
 
Аватар для RAN.
 
Регистрация: 05.07.2011
Сообщений: 208
По умолчанию

Цитата:
Сообщение от multiki Посмотреть сообщение
Теперь необходимо в текстбокс вставить небольшую таблицу (представьте что её мы скопировали из сторонней программы и она у нас просто в буфере обмена), .
Невозможно.
Цитата:
Сообщение от multiki Посмотреть сообщение
Теперь покажем её в мсгбоксе на экран.
Невозможно.
Цитата:
Сообщение от multiki Посмотреть сообщение
Спасибо. Жду ваших советов.
Рисуйте мультики...
Или, на худой конец, посмотрите "ввод данных через форму"
RAN. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
inputbox Владислав94 Помощь студентам 2 07.12.2012 21:34
Ввод и вывод выполнить с встроенных диалоговых окон InputBox и MsgBox Anti123 Microsoft Office Excel 3 23.03.2012 18:12
Переходим из Win на Linux. Abuhamed Свободное общение 45 01.07.2011 19:51
переходим на евро как сделать правильно IRMA230 Microsoft Office Excel 22 07.07.2010 18:36
Диспетчер задач с переходим от процессов к службам и назад Altera Свободное общение 5 07.08.2009 05:59