|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
Возникла необходимость создать калькулятор для подсчета страховки. Есть несколько списков: 1. Страна пребывания 2. Страховая сумма 3. Валюта 4. Цель поездки 5. Категория спортсменов 6. Виды спорта 7. Вид Страховки 8. Количество дней пребывания нужна форма чтобы страна пребывания выбиралась из выпадающего списка. в зависимости от страны, в страховой сумме подбирались только действующие для этой страны размеры выплат и валюта Например: Страна пребывания: США, Канада, Япония, Австралия Страховая сумма: 50 000 или 70 000 или 100 000(из списка) Валюта: USD (из списка) Если цель поездки Спорт. Участие в спортивных мероприятиях или тренировках, то необходимо заполнить еще два поля Например: Цель поездки: Спорт... Категория спортсменов: Любитель Вид спорта:Подводное плавание Если цель поездки туризм, нужно чтобы эти 2 окна были не активными и пустыми Если Вид страховки: Однократная, то заполнить 2 поля дата начала поездки и дата окончания поездки из календарика, а в поле количество дней, посчитать количество дней пребывания и сделать поле неактивным. Если вид страховки: Многократная, то поля для ввода дат сделать неактивными, а поле количество дней выбрать из выпадающего списка Ну вот это минимум который смогла описать. Ни когда с этим не сталкивалась и поэтому даже понятия не имею с чего начать. Как лучше сделать - пользовательскую форму или просто в экселе нарисовать и вставить определенные списки. Как указать ComboBox1 откуда брать значения из списка? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 10:43 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
В экселе можно связать комбобокс с ячейками на листе. Ну то есть у вас будет какой-то лист-справочник (может даже скрытый). А вообще, почему ответов нет. Ваше сообщение производит впечатление: мне тут надо тут мегапрогу наваять - объясните мне плиз ВСЁ. Так не выйдет, народ заглядывает и уходит. Расписывать вам ВСЁ никто не станет. Если вы в состоянии разбить задачу на части, алгоритмизировать и задавать конкретные вопросы - то все у вас получится, а мы поможем по конкретным вопросам. А если нет - надо либо книжку прочитать, либо заказывать прогу за деньги. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 13:05 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
Shocker.Pro, Вот вопрос, с точки зрения программиста как лучше сделать, в экселе или приложение, может форма Алгоритм : добавить в эксель /пользовательскую форму выпадающие списки привязать к каждому значению коэффициенты расчетов в зависимости от выбранных значений просчитать стоимость страховки вывести эти расчеты в печатный бланк (Эксель) ЗЫ я с этим первый раз столкнулась, прошу строго не судить а только направить в правильное русло ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 13:48 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
На мой взгляд проще и эстетичнее делать на форме ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 13:55 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
что-то типа этого?) тока +красивый дизайн+сложение суммы страховки в зависимости от выбранных данных и вот вам готовая прога.. жаль тока nxj на vb6 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 14:27 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
BelowZero, Да, вот это было бы клево :-( тока все результаты подсчетов надо на экселевком листе выводить для печати ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 14:42 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
imp26, мона доделать на vb6, потом программно создать екселевский документ и запихать в него результаты. к сожалению, не разбираюсь в vba, поэтому не могу подсказать, как лучше поступитьв вашем случае. повторюсь, в vb6 весь код основан на меню(редактор меню в Tools) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 14:50 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
Как в форме вставить текстовые поля вроде понятно, а как сделать выпадающий список? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 15:04 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
BelowZero, Можно взглянуть на инструкцию? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 15:05 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
BelowZero, какой редактор использовать для работы в ВБ6? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 15:06 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
imp26, в моём проекте только лейблы. вот пример построения меню в vb6 из очень хорошей книжки для новичков Конечно, можно обойтись и без меню. Я, например считаю, что меню надо использовать в сложных программах, чтобы избежать использования множества командных кнопок. Однако меню придает программе профессиональный, "не детский" вид, в отличие от множества насобаченых на форму кнопок. Для добавления меню имеется редактор Menu Editor. С его помощью и можно как раз добавлять, изменять, уничтожать меню. Создай новый exe-проект. Вверху окна VB найди кнопку инструменты, и из выпадающего меню выберем Редактор Меню (рис.18). Обратит внимание, что вызов редактора меню доступен, когда ты нахожишься в окне формы - объект. Если ты редактируешь код программы или программа запущена, вызвать редактор меню нельзя. Рисунок 18. У нас в общем-то откроется окно меню редактора (Рис.19) Рисунок 19. В первой строке этого чуда "Название" (Caption) мы пишем название меню, то, что у на отобразиться на экране при запуске программы. А во второй строке, "Имя" (Name) имя меню, которое используется в программном коде. Заполнение обоих этих полей обязательно. Для примера слепим меню, которое (должно же меню что-то делать), изменяет свойства графического объекта Shape, поскольку мы наплевали на него в прошлой главе. Поэтому, нажмем кнопку OK, отчего наше окно редактора меню закроется, положим на форму Form1 объект Shape1. По умолчанию он у нас будет в виде прямоугольника. Снова откроем редактор точно также, как и в первый раз. Итак, в названии пишем "Фигура", а в имени - mnuShape. Почему mnu? Потому что так принято, и в коде программы потом будет легче отличать меню от прочих переменных. Из нашего пункта меню Фигура должно выскакивать, например, подменю Прямоугольник и подменю Круг. Мы можем нажать кнопку Дальше и курсор в нижнем большом окне (окно списка меню) перескочит на следующую строчку, сейчас пустую, а можем просто мышь кликнуть по нужной строке и таким образом перейти к следующему пункту. Перейдем на вторую строку и напишем в названии Прямоугольник, а в имени - mnuPram. Перейдем на третью строчку и напишем соответственно Круг и mnuKrug. Поскольку названия и имена я придумывал на ходу, прошу простить за их несуразность. Вот и здорово, но если мы запустим нашу программу, то увидим, что наши названия расположились рядком, и никаких подменю не получилось. Для того чтобы строчку Прямоугольник переместить в подменю, нужно щелкнуть по ней в окне списка меню (при этом она выделится) и нажать маленькую стрелочку вправо. Ты увидишь, что строка переместилась вправо, как бы стала на другой уровень. Нажимая кнопки вправо и влево мы создаем подменю второго, третьего и т.д. уровня или выводим из подменю на более высокий уровень. Теперь посмотри на эту таблицу. Определение уровня подменю Вид в редакторе меню Вид в программе Мы не нажимали стрелку вправо, все наши пункты меню расположились в главном меню, подменю нет. Мы нажали на стрелку вправо на строках "Прямоугольник" и "Круг" один раз, отчего они сдвинулись на 4 пикселя вправо и вошли в меню "Фигура", как строки подменю. Мы нажали на стрелку вправо на строках "Простой", "Скругленный", "Квадрат", а также "Круглый" и "Овальный" два раза, отчего они сдвинулись в право на 8 пикселей и вошли в подменю следующего уровня (в подменю "Прямоугольник" и подменю "Круг" соответственно). Сдвинем строчку Круг, как в таблице. Вот теперь у нас настоящее подменю. А кнопочками вверх и вниз мы можем изменять их положение по вертикали. Теперь самостоятельно, так же, как в таблице, введем в подменю Прямоугольник подменю следующего уровня, куда войдет Название Простой Имя mnuProstoi Название Скругленный Имя mnuPramRound Название Квадрат Имя mnuKvadrat а в подменю Круг подменю следующего содержания (уровень тот же, что и у подменю Прямоугольник) Название Круглый Имя mnuKrugli Название Овальный Имя mnuOval Кроме того еще введем паралельно меню Фигура меню Заливка (Самого первого уровня) c именем mnuPaint и в него поместим следующие подменю (их нужно передвинуть с помощью стрелки вправо на следующий уровень) Название Залить Имя mnuZalit Название Прозрачно Имя mnuProzrachno Название Горизонтальная Имя mmuHorizont Название Вертикальная Имя mnuVertical В поле "Быстрая клавиша" из выпадающего списка мы можем назначить клавишу или комбинацию клавиш, для каждого пункта нашего меню. Общий вид редактора меню должен получиться, как на рисунке 20. Рисунок 20. Если горячие клавиши были тобой назначены, они тоже показаны в окне списка меню (Ctrl+S, Ctrl+K и т.д.) Что еще есть в редакторе меню. Ну понятно, что с помощью кнопок "Дальше", "Вставить", "Удалить" мы можем передвигаться в окне списка меню, вставлять и удалять строки. Если поставить галочку возле "Отмечено", то в меню данная строка тоже будет помечена галочкой (Это для переключателей) только эта галка так и будет светиться для нас это пока совершенно бесполезно. Галочка возле "Видимо" указывает на то, что эта стока видима, если ее убрать, пользователь не будет видеть эту строчку меню. Галочка возле "Включено" показывает, что эта строчка доступна пользователю. Если ее убрать, то эта строка будет показана тускло и кликать по ней пользователю будет бесполезно. Вообще-то эти свойства для пользы дела надо задавать программно, а не тыкать сейчас по ним мышью. Дальше надо заставить наше меню работать. Нажми кнопку OK и выйди из редактора меню. Внимание. Если кнопка OK не будет нажата, твои изменения в меню не сохранятся! Закрой это чертов редактор и перейди к окну редактирования кода. Кликни по полю (General) и опаньки, все наши строчки там есть! Можно кликать и делать процедуру для любой строчки, то бишь пункта меню (рисунок 21). Рисунок 21. Но нам нужны только пунты самого последнего уровня, потому, что предыдущих уровней мы используем только для выбора. Пишем процедуры, которые включим изменения свойств объекта Shape ( ну там заливку, и вид). Свойств объекта Shape на самом деле больше, но мы используем некоторые из них: Private Sub mmuHorizont_Click() Shape1.FillStyle = 2 End Sub Private Sub mnuKrugli_Click() Shape1.Shape = 3 End Sub Private Sub mnuKvadrat_Click() Shape1.Shape = 1 End Sub Private Sub mnuOval_Click() Shape1.Shape = 2 End Sub Private Sub mnuPramRound_Click() Shape1.Shape = 4 End Sub Private Sub mnuProstoi_Click() Shape1.Shape = 0 End Sub Private Sub mnuProzrachno_Click() Shape1.FillStyle = 1 End Sub Private Sub mnuVertical_Click() Shape1.FillStyle = 3 End Sub Private Sub mnuZalit_Click() Shape1.FillStyle = 0 End Sub Можно запустить программу, и с помощью меню изменять вид объекта Shape. Но мы еще с меню не закончили. Допусти нам захотелось, чтобы меню появлялось не в стандарном месте в верхней строке нашего окна, а допустим, где угодно, например около курсоры мыши. Давайте "Фигура" оставим как есть, а меню "Заливка" превратим в контекстное, т. е. всплывающее. Но для этого сначала познакомимся с методом PopupMenu. Метод PopupMenu С помощью этого метода мы можем создавать всплывающие меню в любом месте нашей формы (одновременно отображаться может только одно). Синтаксис его таков объект.PopupMenu имяменю, флаг, позицияX, позицияY, выделеннаястрока Объект - необязательный параметр, если опущен, то принимается форма, на которой фокус Имяменю - имя всплявающего меню. Обязательный параметр. Флаг - константа или значение, указывающее расположение и поведение меню. Список констант приведен в таблице ниже. При использовании двух констант (по одной из каждой группы) необходимо между ними ставить логический оператор Or. ПозицияX, позицияY - координаты X и Y, указывающие, где отобразиться окно. Если они опущены, то принимаются координаты мыши. Выделеннаястрока - название элемента всплывающего меню, которое отобразится жирным шрифтом. Таблица флагов, указывающих позицию и поведение контекстного меню. Константа Числовое значение константы Описание Размещение vbPopupMenuLeftAlign 0 По умолчанию. Размещение по x левого края всплывающего меню VbPopupMenuCenterAlign 4 Центрирование всплывающего меню по x. VbPopupMenuRightAlign 8 Размещение по x правого края всплывающего меню. Поведение vbPopupMenuLeftButton 0 По умолчанию. Элемент на всплывающем меню реагирует только на щелчок левой кнопки мыши. VbPopupMenuRightButton 8 Элемент на всплывающем меню реагирует на щелчки и левой и правой кнопки мыши. Контекстное меню. Теперь, опираясь на метод PopupMenu сделать контекстное меню раз плюнуть. Создадим процедуру, которая срабатывает на щелчок мыши по форме Form_Click и вставим в нее наш новый метод: Private Sub Form_Click() Form1.PopupMenu mnuPaint, , , , mnuZalit End Sub Как видишь, mnuPaint - это название нашего меню "Заливка", а mnuZalit - имя строки "Залить", оно будет выделяться жирным цветом. Остальные опции мы опускаем, хочешь, пробуй сам. Поскольку теперь меню "Заливка" в старом месте, в верхней строке формы нам не нужна, сделаем ее невидимой. Зайдем в Редактор Меню выделим в окне списка меню строку "Заливка" и поставим галочку у "Видимо". Ну, пока хватит. Если понадобиться исходник, то как всегда, его можно скачать вверху страницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 15:11 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
воть каркас проги на vb6 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 15:25 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
BelowZero, Спасибо за помощь! Я тут параллельно вроде как разобралась как в экселе делать, пока временный вариант попробую накидать, а потом попробую сделать человеческую программку :-)) надеюсь вы мне если что подскажете :-)) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 15:38 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
> Автор: BelowZero > в моём проекте только лейблы. > вот пример построения меню в vb6 из очень хорошей книжки для новичков Вот объясни, мне, Замороженый, за для чего! ты! лезешь с попапменю? или ты умеешь строить их на основе динамически изменяемого списка? Или ты умеешь делать контекстный поиск в меню на полсотни позиций? Или ты умеешь делать нормальную прокрутку в меню из сотни позиций? Для выбора из списка есть стандартный компонент - ComboBox. Все! Если хочешь помочь, открой Ексель и добавь ComboBox на лист и почитай справку что он может, поэксперементируй и тогда уже начинай цитировать "избранные главы из "очень хорошей книжки для новичков"". Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 15:46 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
imp26, Не слушайте его, ВБ6 вам не надо. добавить в эксель /пользовательскую форму выпадающие спискиОткрываем эксель, если 2003 версия, кликаем правой кнопкой на панель с иконками и отображаем панель "Элементы управления". В этой панели выбираете поле со списком и рисуете его на листе. Если 2007 или 2010, где-то в настройках тоже по правой кнопке нужно отобразить панель "Разработчик". Далее вставить — элемент управления ActiveX — поле со списком. Дальше все одинаково. Правой кнопкой по полю — свойства. В свойстве LinkedCell прописать ячейку, в которую будет заноситься выбранное значение (например A1), в свойстве ListFillRange — диапазон, из которого будет задаваться список (например B1:B10). привязать к каждому значению коэффициенты расчетовРасчеты делаются с помощью стандартных экселевских формул, которые будут брать аргументы из ячеек типа A1. вывести эти расчеты в печатный бланк Можно сделать бланком этот же самый лист. В формате объектов полям нужно проставить свойство "не выводить на печать". ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 15:49 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
Не слушайте егоВ смысле BelowZero, а не Игоря. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 15:50 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
Флуд удален, желающие потрепаться - идут на форум "Просто треп". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2011, 15:15 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
а может кто-нибудь подсказать как воткнуть в эксель TDateTimePicker? пробовала пару вариантов, не получается :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2011, 08:37 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
imp26, Через панель ActiveX Controls, кнопка Add. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2011, 09:33 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
big-duke, а подробнее можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2011, 12:57 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
imp26, Читайте совет 11065545 от Antonariy авторОткрываем эксель, если 2003 версия, кликаем правой кнопкой на панель с иконками и отображаем панель "Элементы управления". В этой панели выбираете поле со списком и рисуете его на листе. Если 2007 или 2010, где-то в настройках тоже по правой кнопке нужно отобразить панель "Разработчик". Далее вставить — элемент управления ActiveX — поле со списком. Только выбирайте кнопку " More Controls ". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2011, 09:07 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
Модератор: ЦЭ, еще раз встрянешь не в кассу - недельный бан. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2011, 09:08 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
Там нет календарика, видимо придется ручками вводить :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2011, 09:51 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
> Автор: imp26 > Там нет календарика, видимо придется ручками вводить :-( Тебе такой календарик нужен? Здесь ссылка на него Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2011, 10:22 |
|
Калькулятор, VBA, Excel
|
|||
---|---|---|---|
#18+
Мне нужно поле, при нажатии на которое будет появляться выпадающий календарик, после выбора даты сворачивался, а выбранное значение оставалось в поле. вVBScript я делала так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
а вот в экселе у меня ни как не получается, не соображу как делать ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2011, 12:20 |
|
|
start [/forum/topic.php?fid=60&msg=37378958&tid=2158475]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
83ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 191ms |
0 / 0 |