A UserFrom refers to a form or a dialog box on the screen that enables a user to input data into Excel’s user interface. it can be created using the Visual Basic Editor and is used to control data entry and avoid errors.
1. Creating a UserForm:
To create a userform head on to the Developer tab-> Visual Basic->Insert->UserForm.
You can also go to the Project window on the left side and right-click the workbook you want to use and select Insert->UserForm. This opens up a blank userform (UserForm1) and a toolbox(if the toolbox doesn’t pop up head on to View>toolbox).
2. Naming the UserForm:
By default, excel opens up an userform with the name UserForm1 in order to change that name:
- Head to the Properties window(view>Properties window), This opens a pane on the left.
- Click on the ‘Name’ section and type a name of your choice. (don’t add spaces)
- The name won’t be reflected on the userform when you do so because that’s a different property of the form.
- Head to the ‘Caption’ property and type in a name, and it will be reflected on your UserForm.
Now let’s play with some controls and learn how to add them to our UserForm.
3. Adding a Textbox to the UserForm:
A Textbox is used to enable users to input information into the form.
- To add a TextBox head onto the ToolBox. Click on( View->Toolbox) if it isn’t visible by default.
- Select the TextBox button
- Click on the userform to place it or drag it to a position of your choice.
- You can resize the Textbox to the dimensions of your liking
To rename the Textbox With the new textbox selected, double-click on the ‘Name’ property in the Properties window and rename it(its been renamed to ‘TextBox’ here).
4. Adding a Label to the UserForm:
A Label can be used to describe what type of data is being entered into the textboxes, a message, or instructions.
- To add a Label head onto the ToolBox.
- Select the ‘Label ‘button
- Click on the userform to place it or drag it to a position of your choice.
- You can resize it to the dimensions of your liking or leave it in standard size.
To rename the Label With the new Label selected, double-click on the ‘Name‘ property in the Properties window and rename it. Also, change the ‘Caption’ property accordingly. its been renamed to ‘LblSelectSheet’ and captioned to ‘Please select a worksheet’.
5. Adding Buttons to the Userform:
To make the form interactive you can place buttons to perform certain actions.
- To add a Button head onto the ToolBox.
- Select the ‘CommandButton’ button
- Click on the userform to place it or drag it to a position of your choice.
- You can resize it to the dimensions of your liking or reposition the buttons by dragging them to a new location on the form.
To rename the button With the new button selected, double-click on the ‘Name’ property in the Properties window and rename it. Then change the ‘Caption’ property to name the button relevantly close to the action it will be performing. For example the AddSheet and CloseFom button in the image below. In the below images 2 buttons have been added and renamed to ‘CmdAddSheet’ and ‘CmdCloseFrm’ and captioned to ‘Add Sheet’ and ‘Close Form’.
6. Adding code to the buttons:
To ensure the buttons are performing the actions we need to code inside VBA and to add code for specific controls double-click on the controls in the form, and it directs you to the specific code segment. After adding the necessary code for each of the controls click on the run button to display the userform.
- Select the button for example Add sheet button in this example
- On the Menu bar, choose View >Code.
- This creates a procedure, where you can add your code.
- Enter the following code to add another sheet to your workbook and name it according to your choice.
Private Sub CmdAddSheet_Click() Worksheets.Add before:=Worksheets(1) ActiveSheet.Name = InputBox("please enter the name for the worksheet") End Sub
7. Adding code to the close button :
Add the following code to close the form by clicking on the ‘close from’ button and redirect to the VBE.
Private Sub CmdCloseFrm_Click() Unload Me End Sub
8. Testing the userform :
To test the UserForm simply go to the menu bar and hit the Run button. It runs userform and displays it on the screen. For example, a userform that selects a sheet from the combobox and directs you to it, with 2 buttons Add Sheet and Close form button to add an extra sheet in the workbook and the close the userform is displayed.
Complete code to run the above userform inclusive of a combobox with the list of worksheets currently present in the workbook and functionality of buttons is:
Private Sub CmdAddSheet_Click() Worksheets.Add before:=Worksheets(1) ActiveSheet.Name = InputBox("please enter the name for the worksheet") End Sub Private Sub CmdCloseFrm_Click() Unload Me End Sub Private Sub combobox_Change() Worksheets(Me.combobox.Value).Select End Sub Private Sub UserForm_Initialize() Dim i As Integer i = 1 Do While i <= Worksheets.Count Me.combobox.AddItem Worksheets(i).Name i = i + 1 Loop End Sub
To automate the userform experience or to display it as soon as you open the workbook the following needs to be done:
Making use of the workbook event
- Head on to the Developer tab>Visual Basic.
- Double click “This workbook” from the project window.
- Change the drop-down on the top left from General to workbook.
- Add this line of code to the procedure “formname.show”(in the below example frmFinalReport.show).
- Save and run.
При упоминании баз данных (БД) первым делом, конечно, в голову приходят всякие умные слова типа SQL, Oracle, 1С или хотя бы Access. Безусловно, это очень мощные (и недешевые в большинстве своем) программы, способные автоматизировать работу большой и сложной компании с кучей данных. Беда в том, что иногда такая мощь просто не нужна. Ваш бизнес может быть небольшим и с относительно несложными бизнес-процессами, но автоматизировать его тоже хочется. Причем именно для маленьких компаний это, зачастую, вопрос выживания.
Для начала давайте сформулируем ТЗ. В большинстве случаев база данных для учета, например, классических продаж должна уметь:
- хранить в таблицах информацию по товарам (прайс), совершенным сделкам и клиентам и связывать эти таблицы между собой
- иметь удобные формы ввода данных (с выпадающими списками и т.п.)
- автоматически заполнять этими данными какие-то печатные бланки (платежки, счета и т.д.)
- выдавать необходимые вам отчеты для контроля всего бизнес-процесса с точки зрения руководителя
Со всем этим вполне может справиться Microsoft Excel, если приложить немного усилий. Давайте попробуем это реализовать.
Шаг 1. Исходные данные в виде таблиц
Информацию о товарах, продажах и клиентах будем хранить в трех таблицах (на одном листе или на разных — все равно). Принципиально важно, превратить их в «умные таблицы» с автоподстройкой размеров, чтобы не думать об этом в будущем. Это делается с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table). На появившейся затем вкладке Конструктор (Design) присвоим таблицам наглядные имена в поле Имя таблицы для последующего использования:
Итого у нас должны получиться три «умных таблицы»:
Обратите внимание, что таблицы могут содержать дополнительные уточняющие данные. Так, например, наш Прайс содержит дополнительно информацию о категории (товарной группе, упаковке, весу и т.п.) каждого товара, а таблица Клиенты — город и регион (адрес, ИНН, банковские реквизиты и т.п.) каждого из них.
Таблица Продажи будет использоваться нами впоследствии для занесения в нее совершенных сделок.
Шаг 2. Создаем форму для ввода данных
Само-собой, можно вводить данные о продажах непосредственно в зеленую таблицу Продажи, но это не всегда удобно и влечет за собой появление ошибок и опечаток из-за «человеческого фактора». Поэтому лучше будет на отдельном листе сделать специальную форму для ввода данных примерно такого вида:
В ячейке B3 для получения обновляемой текущей даты-времени используем функцию ТДАТА (NOW). Если время не нужно, то вместо ТДАТА можно применить функцию СЕГОДНЯ (TODAY).
В ячейке B11 найдем цену выбранного товара в третьем столбце умной таблицы Прайс с помощью функции ВПР (VLOOKUP). Если раньше с ней не сталкивались, то сначала почитайте и посмотрите видео тут.
В ячейке B7 нам нужен выпадающий список с товарами из прайс-листа. Для этого можно использовать команду Данные — Проверка данных (Data — Validation), указать в качестве ограничения Список (List) и ввести затем в поле Источник (Source) ссылку на столбец Наименование из нашей умной таблицы Прайс:
Аналогичным образом создается выпадающий список с клиентами, но источник будет уже:
=ДВССЫЛ(«Клиенты[Клиент]»)
Функция ДВССЫЛ (INDIRECT) нужна, в данном случае, потому что Excel, к сожалению, не понимает прямых ссылок на умные таблицы в поле Источник. Но та же ссылка «завернутая» в функцию ДВССЫЛ работает при этом «на ура» (подробнее об этом было в статье про создание выпадающих списков с наполнением).
Шаг 3. Добавляем макрос ввода продаж
После заполнения формы нужно введенные в нее данные добавить в конец таблицы Продажи. Сформируем при помощи простых ссылок строку для добавления прямо под формой:
Т.е. в ячейке A20 будет ссылка =B3, в ячейке B20 ссылка на =B7 и т.д.
Теперь добавим элементарный макрос в 2 строчки, который копирует созданную строку и добавляет ее к таблице Продажи. Для этого жмем сочетание Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer). Если эту вкладку не видно, то включите ее сначала в настройках Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon). В открывшемся окне редактора Visual Basic вставляем новый пустой модуль через меню Insert — Module и вводим туда код нашего макроса:
Sub Add_Sell() Worksheets("Форма ввода").Range("A20:E20").Copy 'копируем строчку с данными из формы n = Worksheets("Продажи").Range("A100000").End(xlUp).Row 'определяем номер последней строки в табл. Продажи Worksheets("Продажи").Cells(n + 1, 1).PasteSpecial Paste:=xlPasteValues 'вставляем в следующую пустую строку Worksheets("Форма ввода").Range("B5,B7,B9").ClearContents 'очищаем форму End Sub
Теперь можно добавить к нашей форме кнопку для запуска созданного макроса, используя выпадающий список Вставить на вкладке Разработчик (Developer — Insert — Button):
После того, как вы ее нарисуете, удерживая нажатой левую кнопку мыши, Excel сам спросит вас — какой именно макрос нужно на нее назначить — выбираем наш макрос Add_Sell. Текст на кнопке можно поменять, щелкнув по ней правой кнопкой мыши и выбрав команду Изменить текст.
Теперь после заполнения формы можно просто жать на нашу кнопку, и введенные данные будут автоматически добавляться к таблице Продажи, а затем форма очищается для ввода новой сделки.
Шаг 4. Связываем таблицы
Перед построением отчета свяжем наши таблицы между собой, чтобы потом можно было оперативно вычислять продажи по регионам, клиентам или категориям. В старых версиях Excel для этого потребовалось бы использовать несколько функций ВПР (VLOOKUP) для подстановки цен, категорий, клиентов, городов и т.д. в таблицу Продажи. Это требует времени и сил от нас, а также «кушает» немало ресурсов Excel. Начиная с Excel 2013 все можно реализовать существенно проще, просто настроив связи между таблицами.
Для этого на вкладке Данные (Data) нажмите кнопку Отношения (Relations). В появившемся окне нажмите кнопку Создать (New) и выберите из выпадающих списков таблицы и названия столбцов, по которым они должны быть связаны:
Важный момент: таблицы нужно задавать именно в таком порядке, т.е. связанная таблица (Прайс) не должна содержать в ключевом столбце (Наименование) повторяющихся товаров, как это происходит в таблице Продажи. Другими словами, связанная таблица должна быть той, в которой вы искали бы данные с помощью ВПР, если бы ее использовали.
Само-собой, аналогичным образом связываются и таблица Продажи с таблицей Клиенты по общему столбцу Клиент:
После настройки связей окно управления связями можно закрыть, повторять эту процедуру уже не придется.
Шаг 5. Строим отчеты с помощью сводной
Теперь для анализа продаж и отслеживания динамики процесса, сформируем для примера какой-нибудь отчет с помощью сводной таблицы. Установите активную ячейку в таблицу Продажи и выберите на ленте вкладку Вставка — Сводная таблица (Insert — Pivot Table). В открывшемся окне Excel спросит нас про источник данных (т.е. таблицу Продажи) и место для выгрузки отчета (лучше на новый лист):
Жизненно важный момент состоит в том, что нужно обязательно включить флажок Добавить эти данные в модель данных (Add data to Data Model) в нижней части окна, чтобы Excel понял, что мы хотим строить отчет не только по текущей таблице, но и задействовать все связи.
После нажатия на ОК в правой половине окна появится панель Поля сводной таблицы, где нужно щелкнуть по ссылке Все, чтобы увидеть не только текущую, а сразу все «умные таблицы», которые есть в книге.А затем можно, как и в классической сводной таблице, просто перетащить мышью нужные нам поля из любых связанных таблиц в области Фильтра, Строк, Столбцов или Значений — и Excel моментально построит любой нужный нам отчет на листе:
Не забудьте, что сводную таблицу нужно периодически (при изменении исходных данных) обновлять, щелкнув по ней правой кнопкой мыши и выбрав команду Обновить (Refresh), т.к. автоматически она этого делать не умеет.
Также, выделив любую ячейку в сводной и нажав кнопку Сводная диаграмма (Pivot Chart) на вкладке Анализ (Analysis) или Параметры (Options) можно быстро визуализировать посчитанные в ней результаты.
Шаг 6. Заполняем печатные формы
Еще одной типовой задачей любой БД является автоматическое заполнение различных печатных бланков и форм (накладные, счета, акты и т.п.). Про один из способов это сделать, я уже как-то писал. Здесь же реализуем, для примера, заполнение формы по номеру счета:
Предполагается, что в ячейку C2 пользователь будет вводить число (номер строки в таблице Продажи, по сути), а затем нужные нам данные подтягиваются с помощью уже знакомой функции ВПР (VLOOKUP) и функции ИНДЕКС (INDEX).
Ссылки по теме
- Как использовать функцию ВПР (VLOOKUP) для поиска и подстановки значений
- Как заменить ВПР функциями ИНДЕКС и ПОИСКПОЗ
- Автоматическое заполнение форм и бланков данными из таблицы
- Создание отчетов с помощью сводных таблиц
Пример создания пользовательской формы в редакторе VBA Excel для начинающих программировать с нуля. Добавление на форму текстового поля и кнопки.
Начинаем программировать с нуля
Часть 4. Первая форма
[Часть 1] [Часть 2] [Часть 3] [Часть 4]
Создание пользовательской формы
Создайте или откройте файл Excel с расширением .xlsm
(Книга Excel с поддержкой макросов) или с расширением .xls
в старых версиях приложения.
Перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».
В открывшемся окне редактора VBA выберите вкладку «Insert» главного меню и нажмите кнопку «UserForm». То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.
На экране редактора VBA появится новая пользовательская форма с именем «UserForm1»:
Добавление элементов управления
Обычно вместе с пользовательской формой открывается панель инструментов «Toolbox», как на изображении выше, с набором элементов управления формы. Если панель инструментов «Toolbox» не отобразилась, ее можно вызвать, нажав кнопку «Toolbox» во вкладке «View»:
При наведении курсора на элементы управления появляются подсказки.
Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «TextBox», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «TextBox» (текстовое поле) будет добавлен на форму.
Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «CommandButton», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «CommandButton» (кнопка) будет добавлен на форму.
Кликнув по элементу управления на форме, вы можете изменять его размер, перетягивая границы за белые квадратики, и перетаскивать по форме, ухватив за одну из границ. Кликнув по заголовку формы или по ее рабочему полю, вы можете также изменять ее размер, перетягивая границы за белые квадратики.
Нажатием клавиши «F4» вызывается окно свойств, с помощью которого можно вручную задавать значения свойств пользовательской формы и элементов управления. В окне свойств отображаются свойства выбранного элемента управления или формы, если выбрана она. Также окно свойств можно вызвать, нажав кнопку «Properties Window» во вкладке «View».
Отображение формы на экране
Чтобы запустить пользовательскую форму для просмотра из редактора VBA, необходимо выбрать ее, кликнув по заголовку или свободному от элементов управления полю, и совершить одно из трех действий:
- нажать клавишу «F5»;
- нажать на треугольник на панели инструментов (на изображении выше треугольник находится под вкладкой «Debug»);
- нажать кнопку «Run Sub/UserForm» во вкладке «Run».
Для запуска пользовательской формы с рабочего листа Excel, можно использовать кнопки, описанные в этой статье. Например, чтобы отобразить форму с помощью «кнопки – элемента ActiveX», используйте в модуле рабочего листа следующий код:
Private Sub CommandButton1_Click() UserForm1.Show End Sub |
Для «кнопки – элемента управления формы» можно использовать следующий код, размещенный в стандартном программном модуле:
Sub ShowUserForm() UserForm1.Show End Sub |
В результате вышеперечисленных действий мы получаем на рабочем листе Excel пользовательскую форму с мигающим курсором в текстовом поле:
Добавление программного кода
Программный код для пользовательской формы и элементов управления формы записывается в модуль формы. Перейти в модуль формы можно через контекстное меню, кликнув правой кнопкой мыши на поле формы или на ссылке «UserForm1» в проводнике слева и нажав кнопку «View Code».
Переходить между открытыми окнами в редакторе VBA можно через вкладку «Window» главного меню.
Изменить название пользовательской формы и элементов управления, их размеры и другие свойства можно через окно свойств (Properties Window), которое можно отобразить клавишей «F4». Мы же это сделаем с помощью кода VBA Excel, записанного в модуль формы.
Откройте модуль формы, кликнув правой кнопкой мыши по форме и нажав кнопку «View Code» контекстного меню. Скопируйте следующий код VBA, который будет задавать значения свойств формы и элементов управления перед ее отображением на экране:
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 |
Private Sub UserForm_Initialize() ‘Me — это обращение к форме в ее модуле With Me ‘Присваиваем форме заголовок .Caption = «Новая форма» ‘Задаем ширину формы .Width = 300 ‘Задаем высоту формы .Height = 150 End With With TextBox1 ‘Задаем ширину текстового поля .Width = 200 ‘Задаем высоту текстового поля .Height = 20 ‘Задаем расстояние от внутреннего края ‘формы сверху до текстового поля .Top = 30 ‘Задаем расстояние от внутреннего края ‘формы слева до текстового поля, чтобы ‘текстовое поле оказалось по центру .Left = Me.Width / 2 — .Width / 2 — 6 ‘Задаем размер шрифта .Font.Size = 12 ‘Присваиваем текст по умолчанию .Text = «Напишите что-нибудь своё!» End With With CommandButton1 ‘Задаем ширину кнопки .Width = 70 ‘Задаем высоту кнопки .Height = 25 ‘Задаем расстояние от внутреннего края ‘формы сверху до кнопки .Top = 70 ‘Задаем расстояние от внутреннего края ‘формы слева до кнопки, чтобы ‘кнопка оказалось по центру .Left = Me.Width / 2 — .Width / 2 — 6 ‘Задаем размер шрифта .Font.Size = 12 ‘Присваиваем кнопке название .Caption = «OK» End With End Sub |
Вставьте скопированный код в модуль формы:
Познакомьтесь еще с одним способом отображения на экране пользовательской формы в процессе тестирования: установите курсор внутри процедуры UserForm_Initialize()
и нажмите клавишу «F5» или треугольник на панели инструментов. Все предыдущие способы (с выбором формы в редакторе и кнопками на рабочем листе) тоже работают.
В результате мы получаем следующую форму:
Теперь перейдите в редактор VBA, откройте проект формы «UserForm1» и дважды кликните по кнопке «CommandButton1». В результате откроется модуль формы и будет создан шаблон процедуры CommandButton1_Click()
, которая будет запускаться при нажатии кнопки:
Private Sub CommandButton1_Click() End Sub |
Вставьте внутрь шаблона процедуры CommandButton1_Click()
следующую строку кода, которая будет копировать текст из текстового поля в ячейку «A1» активного рабочего листа:
Range(«A1») = TextBox1.Text |
Отобразите пользовательскую форму на экране и проверьте работоспособность кнопки «OK».
Иногда вам, возможно, придется собирать информацию повторно от других. Excel VBA предоставляет вам простой способ решения этой задачи – UserForm . Как и любая другая форма, которую вы заполняете, UserForm упрощает понимание того, какую информацию следует предоставлять. Пользовательская форма удобна для пользователя, так как предоставляемые элементы управления не требуют пояснений и сопровождаются дополнительными инструкциями, если это необходимо.
Основным преимуществом UserForm является то, что вы можете сэкономить время, которое вы тратите на то, как и как информация должна быть заполнена.
Создание пользовательской формы
Чтобы создать пользовательскую форму, выполните следующие действия:
- Нажмите вкладку РАЗРАБОТЧИК на ленте.
- Нажмите Visual Basic. Откроется окно Visual Basic для книги.
- Нажмите Вставить,
- Выберите UserForm из выпадающего списка.
Пользовательская форма появляется в правой части окна.
Понимание пользовательской формы
Разверните окно UserForm.xlsx – UserForm1.
Вы находитесь в режиме дизайна сейчас. Вы можете вставить элементы управления в пользовательскую форму и написать код для соответствующих действий. Элементы управления доступны в панели инструментов. Свойства UserForm находятся в окне свойств. UserForm1 (подпись UserForm) указывается в разделе «Формы» в проводнике проектов.
- Измените заголовок UserForm на Project Report – Daily в окне свойств.
- Измените имя пользовательской формы на ProjectReport.
Изменения отражаются в пользовательской форме, свойствах и проводнике проекта.
Элементы управления в панели инструментов
Пользовательская форма будет иметь разные компоненты. Когда вы нажимаете на любой из компонентов, вам либо будут предоставлены инструкции о том, что и как должна быть предоставлена информация, либо вам будут предоставлены варианты (варианты) для выбора. Все это обеспечивается с помощью элементов управления ActiveX в панели инструментов пользовательской формы.
Excel предоставляет два типа элементов управления – элементы управления формы и элементы управления ActiveX. Вы должны понимать разницу между этими двумя типами элементов управления.
Элементы управления формой
Элементы управления формой – это оригинальные элементы управления Excel, которые совместимы с более ранними версиями Excel, начиная с Excel версии 5.0. Элементы управления формой также предназначены для использования на листах макроса XLM.
Вы можете запускать макросы с помощью элементов управления формы. Вы можете назначить существующий макрос элементу управления, или написать или записать новый макрос. При нажатии на элемент управления макрос. Вы уже научились вставлять командную кнопку из элементов управления формы на листе для запуска макроса. Однако эти элементы управления не могут быть добавлены в пользовательскую форму.
Элементы управления ActiveX
Элементы управления ActiveX могут использоваться в пользовательских формах VBA. Элементы управления ActiveX имеют широкие свойства, которые можно использовать для настройки их внешнего вида, поведения, шрифтов и других характеристик.
У вас есть следующие элементы управления ActiveX в UserForm ToolBox –
- Указатель
- этикетка
- Текстовое окно
- Поле со списком
- ListBox
- CheckBox
- OptionButton
- Рамка
- Кнопка-переключатель
- CommandButton
- TabStrip
- MultiPage
- Полоса прокрутки
- в полях ввода
- Образ
В дополнение к этим элементам управления Visual Basic предоставляет функцию MsgBox, которую можно использовать для отображения сообщений и / или запроса пользователя о действии.
В следующих нескольких разделах вы поймете эти элементы управления и MsgBox. Затем вы сможете выбрать, какой из этих элементов управления требуется для разработки пользовательской формы.
этикетка
Вы можете использовать ярлыки для идентификации, отображая описательный текст, такой как заголовки, подписи и / или краткие инструкции.
пример
Текстовое окно
Вы можете использовать TextBox в виде прямоугольника для ввода, просмотра или редактирования текста. Вы также можете использовать TextBox в качестве статического текстового поля, которое представляет информацию только для чтения.
пример
Список
Вы можете использовать список для отображения списка одного или нескольких элементов текста, из которых пользователь может выбирать. Используйте список для отображения большого количества вариантов, которые различаются по количеству или содержанию.
- Вставьте ListBox в пользовательскую форму.
- Нажмите на список.
- Введите ProjectCodes для Name в окне свойств ListBox.
Есть три типа списков –
-
Поле со списком с одним выбором – Поле со списком с одним выбором включает только один выбор. В этом случае поле списка напоминает группу кнопок выбора, за исключением того, что поле списка может более эффективно обрабатывать большое количество элементов.
-
Список выбора множественного выбора – Список списка множественного выбора включает либо один выбор, либо смежные (смежные) варианты.
-
Поле со списком расширенного выбора – Поле со списком расширенного выбора позволяет выбрать один, непрерывный и несмежный (или несвязанный) выбор.
Поле со списком с одним выбором – Поле со списком с одним выбором включает только один выбор. В этом случае поле списка напоминает группу кнопок выбора, за исключением того, что поле списка может более эффективно обрабатывать большое количество элементов.
Список выбора множественного выбора – Список списка множественного выбора включает либо один выбор, либо смежные (смежные) варианты.
Поле со списком расширенного выбора – Поле со списком расширенного выбора позволяет выбрать один, непрерывный и несмежный (или несвязанный) выбор.
Вы можете выбрать один из этих типов списков в окне свойств.
- Щелкните правой кнопкой мыши на пользовательской форме.
- Выберите View Code из выпадающего списка. Откроется окно кода UserForm.
- Нажмите Инициализировать в правом верхнем углу окна кода.
- Введите следующее в Private Sub UserForm_Initialize ().
ProjectCodes.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Далее вы можете написать код для действий по выбору элемента в списке. В противном случае вы можете просто отобразить выбранный текст, как в случае заполнения кода проекта в отчете.
Поле со списком
Вы можете использовать ComboBox, который объединяет текстовое поле со списком для создания выпадающего списка. Поле со списком является более компактным, чем поле со списком, но требует, чтобы пользователь щелкнул стрелку вниз, чтобы отобразить список элементов. Используйте поле со списком, чтобы выбрать только один элемент из списка.
- Вставьте ComboBox в пользовательскую форму.
- Нажмите ComboBox.
- Введите ProjectCodes2 для имени в окне свойств ComboBox.
- Щелкните правой кнопкой мыши на пользовательской форме.
- Выберите View Code из выпадающего списка.
- Откроется окно кода UserForm.
Введите следующее, как показано ниже.
ProjectCodes2.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Нажмите стрелку вниз, чтобы отобразить список элементов.
Нажмите на нужный элемент, скажем, Project2016-5. Выбранная опция будет отображаться в поле со списком.
CheckBox
Вы можете использовать флажки, чтобы выбрать один или несколько параметров, которые отображаются, щелкая в полях. Параметры будут иметь метки, и вы сможете четко визуализировать, какие параметры выбраны.
Флажок может иметь два состояния:
- Выбрано (включено), помечено галочкой в поле
- Очищено (выключено), обозначено прозрачной рамкой
Вы можете использовать флажки для выбора параметров в комбинированном окне, чтобы сэкономить место. В этом случае флажок также может иметь третье состояние –
-
Смешанный, означающий комбинацию включенных и выключенных состояний, обозначенную черной точкой в поле. Это будет отображаться, чтобы указать несколько вариантов выбора в комбинированном окне с флажками.
-
Установите флажки в пользовательской форме, как показано ниже.
Смешанный, означающий комбинацию включенных и выключенных состояний, обозначенную черной точкой в поле. Это будет отображаться, чтобы указать несколько вариантов выбора в комбинированном окне с флажками.
Установите флажки в пользовательской форме, как показано ниже.
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
- Нажмите на поля для выбранных вами вариантов.
OptionButton
Вы можете использовать кнопку выбора, также называемую переключателем, чтобы сделать один выбор в пределах ограниченного набора взаимоисключающих вариантов. Кнопка выбора обычно содержится в групповом поле или рамке.
Кнопка выбора представлена маленьким кружком. Кнопка выбора может иметь одно из следующих двух состояний:
- Выбран (включен), обозначен точкой в круге
- Сброс (выключен), обозначается пробелом
Рамка
Вы можете использовать элемент управления кадром, также называемый групповым блоком, для группировки связанных элементов управления в один визуальный блок. Как правило, кнопки выбора, флажки или тесно связанное содержимое группируются в элементе управления фреймом.
Элемент управления фреймом представлен прямоугольным объектом с необязательной меткой.
-
Вставьте рамку с надписью «Выбор».
-
Вставьте две кнопки с надписями «Да» и «Нет» в элементе управления кадром. Опции Да и Нет являются взаимоисключающими.
Вставьте рамку с надписью «Выбор».
Вставьте две кнопки с надписями «Да» и «Нет» в элементе управления кадром. Опции Да и Нет являются взаимоисключающими.
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
- Нажмите на выбранный вами вариант.
Кнопка-переключатель
Вы можете использовать кнопку переключения, чтобы указать состояние, например, Да или Нет, или режим, например, включить или выключить. Кнопка чередуется между включенным и отключенным состоянием при нажатии.
Вставьте кнопку переключения на пользовательскую форму, как показано ниже –
-
Перейдите на вкладку «Выполнить» на ленте.
-
Выберите Run Sub / UserForm из выпадающего списка. По умолчанию кнопка переключения будет в активированном состоянии.
Перейдите на вкладку «Выполнить» на ленте.
Выберите Run Sub / UserForm из выпадающего списка. По умолчанию кнопка переключения будет в активированном состоянии.
Нажмите кнопку переключения. Кнопка переключения будет отключена.
Если вы снова нажмете кнопку переключения, она будет включена.
CommandButton
Вы можете использовать командную кнопку для запуска макроса, который выполняет некоторые действия, когда пользователь нажимает на него. Вы уже научились использовать командную кнопку на рабочем листе для запуска макроса.
Командная кнопка также называется кнопкой. Вставьте командную кнопку в пользовательскую форму, как показано ниже –
- Щелкните правой кнопкой мыши на кнопке.
- Введите следующий код в sub Commandbutton1_click ().
ProjectCodes2.DropDown
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Нажмите кнопку команды. Откроется выпадающий список со списком, так как это действие, которое вы написали в коде.
TabStrip
Вы можете вставить вкладку, которая напоминает вкладки Excel в пользовательской форме.
Полоса прокрутки
Вы можете использовать полосу прокрутки для прокрутки диапазона значений, щелкая стрелки прокрутки или перетаскивая поле прокрутки.
Вставьте полосу прокрутки в пользовательскую форму, нарисовав ее в нужном месте, и отрегулируйте длину полосы прокрутки.
- Щелкните правой кнопкой мыши по полосе прокрутки.
- Выберите View Code из выпадающего списка. Откроется окно кода.
- Добавьте следующую строку под sub ScrollBar1_Scroll ().
TextBox2.Text = "Scrolling Values"
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Перетащите поле прокрутки. Текст – Значения прокрутки будут отображаться в текстовом поле, как вы указали его в качестве действия для прокрутки полосы прокрутки.
MsgBox ()
Вы можете использовать функцию MsgBox () для отображения сообщения, когда вы нажимаете на что-то. Это может быть руководство или некоторая информация или предупреждение или предупреждение об ошибке.
Например, вы можете отобразить сообщение о том, что значения прокручиваются, когда вы начинаете прокручивать поле прокрутки.
Отображается значок окна сообщения
Вы можете использовать значки сообщений в окне, которые изображают конкретное сообщение. У вас есть несколько значков сообщений в соответствии с вашими целями –
- Введите следующий код в ScrollBar1_scroll.
MsgBox "Select Ok or Cancel", vbOKCancel, "OK - Cancel Message" MsgBox "It's an Error!", vbCritical, "Run time result" MsgBox "Why this value", vbQuestion, "Run time result" MsgBox "Value Been for a Long Time", vbInformation, "Run time result" MsgBox "Oh Is it so", vbExclamation, "Run time result"
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
- Перетащите поле прокрутки.
Вы получите следующие сообщения последовательно.
Разработка UserForm
Теперь у вас есть понимание различных элементов управления, которые вы можете использовать в пользовательской форме. Выберите элементы управления, сгруппируйте их, если необходимо, и расположите их в пользовательской форме в соответствии с некоторой значимой последовательностью. Запишите необходимые действия в виде кода, соответствующего соответствующим элементам управления.
Обратитесь к учебнику VBA в этой библиотеке учебников для примера UserForm.
Содержание
- Применение инструментов заполнения
- Способ 1: встроенный объект для ввода данных Excel
- Способ 2: создание пользовательской формы
- Вопросы и ответы
Для облегчения ввода данных в таблицу в Excel можно воспользоваться специальными формами, которые помогут ускорить процесс заполнения табличного диапазона информацией. В Экселе имеется встроенный инструмент позволяющий производить заполнение подобным методом. Также пользователь может создать собственный вариант формы, которая будет максимально адаптирована под его потребности, применив для этого макрос. Давайте рассмотрим различные варианты использования этих полезных инструментов заполнения в Excel.
Применение инструментов заполнения
Форма заполнения представляет собой объект с полями, наименования которых соответствуют названиям колонок столбцов заполняемой таблицы. В эти поля нужно вводить данные и они тут же будут добавляться новой строкой в табличный диапазон. Форма может выступать как в виде отдельного встроенного инструмента Excel, так и располагаться непосредственно на листе в виде его диапазона, если она создана самим пользователем.
Теперь давайте рассмотрим, как пользоваться этими двумя видами инструментов.
Способ 1: встроенный объект для ввода данных Excel
Прежде всего, давайте узнаем, как применять встроенную форму для ввода данных Excel.
- Нужно отметить, что по умолчанию значок, который её запускает, скрыт и его нужно активировать. Для этого переходим во вкладку «Файл», а затем щелкаем по пункту «Параметры».
- В открывшемся окне параметров Эксель перемещаемся в раздел «Панель быстрого доступа». Большую часть окна занимает обширная область настроек. В левой её части находятся инструменты, которые могут быть добавлены на панель быстрого доступа, а в правой – уже присутствующие.
В поле «Выбрать команды из» устанавливаем значение «Команды не на ленте». Далее из списка команд, расположенного в алфавитном порядке, находим и выделяем позицию «Форма…». Затем жмем на кнопку «Добавить».
- После этого нужный нам инструмент отобразится в правой части окна. Жмем на кнопку «OK».
- Теперь данный инструмент располагается в окне Excel на панели быстрого доступа, и мы им можем воспользоваться. Он будет присутствовать при открытии любой книги данным экземпляром Excel.
- Теперь, чтобы инструмент понял, что именно ему нужно заполнять, следует оформить шапку таблицы и записать любое значение в ней. Пусть табличный массив у нас будет состоять из четырех столбцов, которые имеют названия «Наименование товара», «Количество», «Цена» и «Сумма». Вводим данные названия в произвольный горизонтальный диапазон листа.
- Также, чтобы программа поняла, с каким именно диапазонам ей нужно будет работать, следует ввести любое значение в первую строку табличного массива.
- После этого выделяем любую ячейку заготовки таблицы и щелкаем на панели быстрого доступа по значку «Форма…», который мы ранее активировали.
- Итак, открывается окно указанного инструмента. Как видим, данный объект имеет поля, которые соответствуют названиям столбцов нашего табличного массива. При этом первое поле уже заполнено значением, так как мы его ввели вручную на листе.
- Вводим значения, которые считаем нужными и в остальные поля, после чего жмем на кнопку «Добавить».
- После этого, как видим, в первую строку таблицы были автоматически перенесены введенные значения, а в форме произошел переход к следующему блоку полей, который соответствуют второй строке табличного массива.
- Заполняем окно инструмента теми значениями, которые хотим видеть во второй строке табличной области, и снова щелкаем по кнопке «Добавить».
- Как видим, значения второй строчки тоже были добавлены, причем нам даже не пришлось переставлять курсор в самой таблице.
- Таким образом, заполняем табличный массив всеми значениями, которые хотим в неё ввести.
- Кроме того, при желании, можно производить навигацию по ранее введенным значениям с помощью кнопок «Назад» и «Далее» или вертикальной полосы прокрутки.
- При необходимости можно откорректировать любое значение в табличном массиве, изменив его в форме. Чтобы изменения отобразились на листе, после внесения их в соответствующий блок инструмента, жмем на кнопку «Добавить».
- Как видим, изменение сразу произошло и в табличной области.
- Если нам нужно удалить, какую-то строчку, то через кнопки навигации или полосу прокрутки переходим к соответствующему ей блоку полей в форме. После этого щелкаем по кнопке «Удалить» в окошке инструмента.
- Открывается диалоговое окно предупреждения, в котором сообщается, что строка будет удалена. Если вы уверены в своих действиях, то жмите на кнопку «OK».
- Как видим, строчка была извлечена из табличного диапазона. После того, как заполнение и редактирование закончено, можно выходить из окна инструмента, нажав на кнопку «Закрыть».
- После этого для предания табличному массиву более наглядного визуального вида можно произвести форматирование.
Способ 2: создание пользовательской формы
Кроме того, с помощью макроса и ряда других инструментов существует возможность создать собственную пользовательскую форму для заполнения табличной области. Она будет создаваться прямо на листе, и представлять собой её диапазон. С помощью данного инструмента пользователь сам сможет реализовать те возможности, которые считает нужными. По функционалу он практически ни в чем не будет уступать встроенному аналогу Excel, а кое в чем, возможно, превосходить его. Единственный недостаток состоит в том, что для каждого табличного массива придется составлять отдельную форму, а не применять один и тот же шаблон, как это возможно при использовании стандартного варианта.
- Как и в предыдущем способе, прежде всего, нужно составить шапку будущей таблицы на листе. Она будет состоять из пяти ячеек с именами: «№ п/п», «Наименование товара», «Количество», «Цена», «Сумма».
- Далее нужно из нашего табличного массива сделать так называемую «умную» таблицу, с возможностью автоматического добавления строчек при заполнении соседних диапазонов или ячеек данными. Для этого выделяем шапку и, находясь во вкладке «Главная», жмем на кнопку «Форматировать как таблицу» в блоке инструментов «Стили». После этого открывается список доступных вариантов стилей. На функционал выбор одного из них никак не повлияет, поэтому выбираем просто тот вариант, который считаем более подходящим.
- Затем открывается небольшое окошко форматирования таблицы. В нем указан диапазон, который мы ранее выделили, то есть, диапазон шапки. Как правило, в данном поле заполнено все верно. Но нам следует установить галочку около параметра «Таблица с заголовками». После этого жмем на кнопку «OK».
- Итак, наш диапазон отформатирован, как «умная» таблица, свидетельством чему является даже изменение визуального отображения. Как видим, помимо прочего, около каждого названия заголовка столбцов появились значки фильтрации. Их следует отключить. Для этого выделяем любую ячейку «умной» таблицы и переходим во вкладку «Данные». Там на ленте в блоке инструментов «Сортировка и фильтр» щелкаем по значку «Фильтр».
Существует ещё один вариант отключения фильтра. При этом не нужно даже будет переходить на другую вкладку, оставаясь во вкладке «Главная». После выделения ячейки табличной области на ленте в блоке настроек «Редактирование» щелкаем по значку «Сортировка и фильтр». В появившемся списке выбираем позицию «Фильтр».
- Как видим, после этого действия значки фильтрации исчезли из шапки таблицы, как это и требовалось.
- Затем нам следует создать саму форму ввода данных. Она тоже будет представлять собой своего рода табличный массив, состоящий из двух столбцов. Наименования строк данного объекта будут соответствовать именам столбцов основной таблицы. Исключение составляют столбцы «№ п/п» и «Сумма». Они будут отсутствовать. Нумерация первого из них будет происходить при помощи макроса, а расчет значений во втором будет производиться путем применения формулы умножения количества на цену.
Второй столбец объекта ввода данных оставим пока что пустым. Непосредственно в него позже будут вводиться значения для заполнения строк основного табличного диапазона.
- После этого создаем ещё одну небольшую таблицу. Она будет состоять из одного столбца и в ней разместится список товаров, которые мы будем выводить во вторую колонку основной таблицы. Для наглядности ячейку с заголовком данного перечня («Список товаров») можно залить цветом.
- Затем выделяем первую пустую ячейку объекта ввода значений. Переходим во вкладку «Данные». Щелкаем по значку «Проверка данных», который размещен на ленте в блоке инструментов «Работа с данными».
- Запускается окно проверки вводимых данных. Кликаем по полю «Тип данных», в котором по умолчанию установлен параметр «Любое значение».
- Из раскрывшихся вариантов выбираем позицию «Список».
- Как видим, после этого окно проверки вводимых значений несколько изменило свою конфигурацию. Появилось дополнительное поле «Источник». Щелкаем по пиктограмме справа от него левой клавишей мыши.
- Затем окно проверки вводимых значений сворачивается. Выделяем курсором с зажатой левой клавишей мыши перечень данных, которые размещены на листе в дополнительной табличной области «Список товаров». После этого опять жмем на пиктограмму справа от поля, в котором появился адрес выделенного диапазона.
- Происходит возврат к окошку проверки вводимых значений. Как видим, координаты выделенного диапазона в нем уже отображены в поле «Источник». Кликаем по кнопке «OK» внизу окна.
- Теперь справа от выделенной пустой ячейки объекта ввода данных появилась пиктограмма в виде треугольника. При клике на неё открывается выпадающий список, состоящий из названий, которые подтягиваются из табличного массива «Список товаров». Произвольные данные в указанную ячейку теперь внести невозможно, а только можно выбрать из представленного списка нужную позицию. Выбираем пункт в выпадающем списке.
- Как видим, выбранная позиция тут же отобразилась в поле «Наименование товара».
- Далее нам нужно будет присвоить имена тем трем ячейкам формы ввода, куда мы будем вводить данные. Выделяем первую ячейку, где уже установлено в нашем случае наименование «Картофель». Далее переходим в поле наименования диапазонов. Оно расположено в левой части окна Excel на том же уровне, что и строка формул. Вводим туда произвольное название. Это может быть любое наименование на латинице, в котором нет пробелов, но лучше все-таки использовать названия близкие к решаемым данным элементом задачам. Поэтому первую ячейку, в которой содержится название товара, назовем «Name». Пишем данное наименование в поле и жмем на клавишу Enter на клавиатуре.
- Точно таким же образом присваиваем ячейке, в которую будем вводить количество товара, имя «Volum».
- А ячейке с ценой – «Price».
- После этого точно таким же образом даем название всему диапазону из вышеуказанных трех ячеек. Прежде всего, выделим, а потом дадим ему наименование в специальном поле. Пусть это будет имя «Diapason».
- После последнего действия обязательно сохраняем документ, чтобы названия, которые мы присвоили, смог воспринимать макрос, созданный нами в дальнейшем. Для сохранения переходим во вкладку «Файл» и кликаем по пункту «Сохранить как…».
- В открывшемся окне сохранения в поле «Тип файлов» выбираем значение «Книга Excel с поддержкой макросов (.xlsm)». Далее жмем на кнопку «Сохранить».
- Затем вам следует активировать работу макросов в своей версии Excel и включить вкладку «Разработчик», если вы это до сих пор не сделали. Дело в том, что обе эти функции по умолчанию в программе отключены, и их активацию нужно выполнять принудительно в окне параметров Excel.
- После того, как вы сделали это, переходим во вкладку «Разработчик». Кликаем по большому значку «Visual Basic», который расположен на ленте в блоке инструментов «Код».
- Последнее действие приводит к тому, что запускается редактор макросов VBA. В области «Project», которая расположена в верхней левой части окна, выделяем имя того листа, где располагаются наши таблицы. В данном случае это «Лист 1».
- После этого переходим к левой нижней области окна под названием «Properties». Тут расположены настройки выделенного листа. В поле «(Name)» следует заменить кириллическое наименование («Лист1») на название, написанное на латинице. Название можно дать любое, которое вам будет удобнее, главное, чтобы в нем были исключительно символы латиницы или цифры и отсутствовали другие знаки или пробелы. Именно с этим именем будет работать макрос. Пусть в нашем случае данным названием будет «Producty», хотя вы можете выбрать и любое другое, соответствующее условиям, которые были описаны выше.
В поле «Name» тоже можно заменить название на более удобное. Но это не обязательно. При этом допускается использование пробелов, кириллицы и любых других знаков. В отличие от предыдущего параметра, который задает наименование листа для программы, данный параметр присваивает название листу, видимое пользователю на панели ярлыков.
Как видим, после этого автоматически изменится и наименование Листа 1 в области «Project», на то, которое мы только что задали в настройках.
- Затем переходим в центральную область окна. Именно тут нам нужно будет записать сам код макроса. Если поле редактора кода белого цвета в указанной области не отображается, как в нашем случае, то жмем на функциональную клавишу F7 и оно появится.
- Теперь для конкретно нашего примера нужно записать в поле следующий код:
Sub DataEntryForm()
Dim nextRow As Long
nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
With Producty
If .Range("A2").Value = "" And .Range("B2").Value = "" Then
nextRow = nextRow - 1
End If
Producty.Range("Name").Copy
.Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues
.Cells(nextRow, 3).Value = Producty.Range("Volum").Value
.Cells(nextRow, 4).Value = Producty.Range("Price").Value
.Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value
.Range("A2").Formula = "=IF(ISBLANK(B2), """", COUNTA($B$2:B2))"
If nextRow > 2 Then
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A" & nextRow)
Range("A2:A" & nextRow).Select
End If
.Range("Diapason").ClearContents
End With
End Sub
Но этот код не универсальный, то есть, он в неизменном виде подходит только для нашего случая. Если вы хотите его приспособить под свои потребности, то его следует соответственно модифицировать. Чтобы вы смогли сделать это самостоятельно, давайте разберем, из чего данный код состоит, что в нем следует заменить, а что менять не нужно.
Итак, первая строка:
Sub DataEntryForm()
«DataEntryForm» — это название самого макроса. Вы можете оставить его как есть, а можете заменить на любое другое, которое соответствует общим правилам создания наименований макросов (отсутствие пробелов, использование только букв латинского алфавита и т.д.). Изменение наименования ни на что не повлияет.
Везде, где встречается в коде слово «Producty» вы должны его заменить на то наименование, которое ранее присвоили для своего листа в поле «(Name)» области «Properties» редактора макросов. Естественно, это нужно делать только в том случае, если вы назвали лист по-другому.
Теперь рассмотрим такую строку:
nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
Цифра «2» в данной строчке означает второй столбец листа. Именно в этом столбце находится колонка «Наименование товара». По ней мы будем считать количество рядов. Поэтому, если в вашем случае аналогичный столбец имеет другой порядок по счету, то нужно ввести соответствующее число. Значение «End(xlUp).Offset(1, 0).Row» в любом случае оставляем без изменений.
Далее рассмотрим строку
If .Range("A2").Value = "" And .Range("B2").Value = "" Then
«A2» — это координаты первой ячейки, в которой будет выводиться нумерация строк. «B2» — это координаты первой ячейки, по которой будет производиться вывод данных («Наименование товара»). Если они у вас отличаются, то введите вместо этих координат свои данные.
Переходим к строке
Producty.Range("Name").Copy
В ней параметр «Name» означат имя, которое мы присвоили полю «Наименование товара» в форме ввода.
В строках
.Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues
.Cells(nextRow, 3).Value = Producty.Range("Volum").Value
.Cells(nextRow, 4).Value = Producty.Range("Price").Value
.Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value
наименования «Volum» и «Price» означают названия, которые мы присвоили полям «Количество» и «Цена» в той же форме ввода.
В этих же строках, которые мы указали выше, цифры «2», «3», «4», «5» означают номера столбцов на листе Excel, соответствующих колонкам «Наименование товара», «Количество», «Цена» и «Сумма». Поэтому, если в вашем случае таблица сдвинута, то нужно указать соответствующие номера столбцов. Если столбцов больше, то по аналогии нужно добавить её строки в код, если меньше – то убрать лишние.
В строке производится умножение количества товара на его цену:
.Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value
Результат, как видим из синтаксиса записи, будет выводиться в пятый столбец листа Excel.
В этом выражении выполняется автоматическая нумерация строк:
If nextRow > 2 Then
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A" & nextRow)
Range("A2:A" & nextRow).Select
End If
Все значения «A2» означают адрес первой ячейки, где будет производиться нумерация, а координаты «A» — адрес всего столбца с нумерацией. Проверьте, где именно будет выводиться нумерация в вашей таблице и измените данные координаты в коде, если это необходимо.
В строке производится очистка диапазона формы ввода данных после того, как информация из неё была перенесена в таблицу:
.Range("Diapason").ClearContents
Не трудно догадаться, что («Diapason») означает наименование того диапазона, который мы ранее присвоили полям для ввода данных. Если вы дали им другое наименование, то в этой строке должно быть вставлено именно оно.
Дальнейшая часть кода универсальна и во всех случаях будет вноситься без изменений.
После того, как вы записали код макроса в окно редактора, следует нажать на значок сохранения в виде дискеты в левой части окна. Затем можно его закрывать, щелкнув по стандартной кнопке закрытия окон в правом верхнем углу.
- После этого возвращаемся на лист Excel. Теперь нам следует разместить кнопку, которая будет активировать созданный макрос. Для этого переходим во вкладку «Разработчик». В блоке настроек «Элементы управления» на ленте кликаем по кнопке «Вставить». Открывается перечень инструментов. В группе инструментов «Элементы управления формы» выбираем самый первый – «Кнопка».
- Затем с зажатой левой клавишей мыши обводим курсором область, где хотим разместить кнопку запуска макроса, который будет производить перенос данных из формы в таблицу.
- После того, как область обведена, отпускаем клавишу мыши. Затем автоматически запускается окно назначения макроса объекту. Если в вашей книге применяется несколько макросов, то выбираем из списка название того, который мы выше создавали. У нас он называется «DataEntryForm». Но в данном случае макрос один, поэтому просто выбираем его и жмем на кнопку «OK» внизу окна.
- После этого можно переименовать кнопку, как вы захотите, просто выделив её текущее название.
В нашем случае, например, логично будет дать ей имя «Добавить». Переименовываем и кликаем мышкой по любой свободной ячейке листа.
- Итак, наша форма полностью готова. Проверим, как она работает. Вводим в её поля необходимые значения и жмем на кнопку «Добавить».
- Как видим, значения перемещены в таблицу, строке автоматически присвоен номер, сумма посчитана, поля формы очищены.
- Повторно заполняем форму и жмем на кнопку «Добавить».
- Как видим, и вторая строка также добавлена в табличный массив. Это означает, что инструмент работает.
Читайте также:
Как создать макрос в Excel
Как создать кнопку в Excel
В Экселе существует два способа применения формы заполнения данными: встроенная и пользовательская. Применение встроенного варианта требует минимум усилий от пользователя. Его всегда можно запустить, добавив соответствующий значок на панель быстрого доступа. Пользовательскую форму нужно создавать самому, но если вы хорошо разбираетесь в коде VBA, то сможете сделать этот инструмент максимально гибким и подходящим под ваши нужды.
Доброго времени суток.
Есть книга Excel. В ней 4 листа.
На первом листе таблица с данными, которыми должны заполняться формы. Строк много, около 200.
На остальных листах шаблоны форм. Они немного разные. В принципе, во всех формах ячейки заполняются одни и те же.
Есть тонкость, нужно для каждой строки в таблице заполнять не все формы. А только те, которые указаны в отдельной колонке. Бывает, что нужно заполнить несколько форм с данными из одной строки.
Для простоты, я могу просто сделать разные строки в таблицы.
Хорошо бы при сохранении файла, номер формы и значение из одного столбца участвовало в имени файла.
Помогите пожалуйста. Копипастить в наше время, мне кажется…
Спасибо.
Добавлено через 15 минут
Пример шаблона: тут
Код/№ | Организация | Задание | Кол-во | Должность | Ф.И.О. | Формы |
-1- | -2- | -3- | -4- | -5- | -6- | -7- |
QWE | ООО «Класс» | Купить авто | 5 | Генеральный директор | Карачун О.Д. | Форма 1 |
ASD | ЗАО «АУ» | Уборка двора | 10 | Директор | Пустышка И.О. | Форма 2 |
ZXC | ИП «Заяц И.И.» | Оформить документы | 3 | Заяц И.И. | Форма 1, Фориа 2 |
Добавлено через 2 минуты
Должно получиться 4 файла:
Форма 1_QWE.xls
Форма 2_ASD.xls
Форма 1_ZXC.xls
Фориа 2_ZXC.xls
Формы ввода данных в Microsoft Excel
Смотрите также в разных книгах. (а если позиций все обрезано.Суть такая, я запуска макроса не и листов excel?(Form) на ПанелиНажимайте клавишу TAB для то выбираем из соответствующих колонкам модифицировать. Чтобы вы того листа, где пункт в выпадающем действия значки фильтрации заполнения табличной области. с каким именноДля облегчения ввода данныхВ какую сторону накопится 1000? Это
постараюсь попозже выложить хочу нажимать на
Применение инструментов заполнения
вынесена на Лист.и что нужно быстрого доступа. перехода к следующему списка название того,«Наименование товара» смогли сделать это располагаются наши таблицы. списке. исчезли из шапки Она будет создаваться диапазонам ей нужно в таблицу в копать? Опыта нет))) будет очень неудобно) скрины или фото. горячие клавиши, чтобы Изучаю решение. Спасибо дописать в код,
Используйте кнопки полю в форме. который мы выше
Способ 1: встроенный объект для ввода данных Excel
, самостоятельно, давайте разберем, В данном случаеКак видим, выбранная позиция
- таблицы, как это прямо на листе, будет работать, следует Excel можно воспользоватьсяЗаранее огромное спасибо.wild_pigeritik появлялась форма, далееВалера чтобы данные копировалисьНазад
- Закончив ввод данных в создавали. У нас«Количество» из чего данный это тут же отобразилась и требовалось. и представлять собой ввести любое значение специальными формами, которыеwild_pig: И все 1000: Фото в вложение
я начинаю вводить: Огромное спасибо! Я в строго определенный(Find Prev) и строку, нажмите клавишу он называется, код состоит, что«Лист 1» в полеЗатем нам следует создать её диапазон. С в первую строку
- помогут ускорить процесс: Может мы вражины, будут разные. Чтоeritik информацию, она должна уж учебники перечитал,
- лист, а неДалее RETURN , чтобы«DataEntryForm»«Цена» в нем следует.«Наименование товара» саму форму ввода
- помощью данного инструмента табличного массива. заполнения табличного диапазона но маскируемся? с датой делать.: пример во вложении искаться в столбце поисковики изнасиловал. А в тот в(Find Next), чтобы добавить строку в. Но в данноми заменить, а чтоПосле этого переходим к. данных. Она тоже пользователь сам сможетПосле этого выделяем любую информацией. В ЭкселеЦитата
- Hugoeritik (только уникальные само здесь, оказывается, какие котором форма активна легко переключаться от конец списка.
- случае макрос один,«Сумма» менять не нужно. левой нижней областиДалее нам нужно будет будет представлять собой реализовать те возможности, ячейку заготовки таблицы
- имеется встроенный инструмент200?’200px’:»+(this.scrollHeight+5)+’px’);»>В какую сторону копать:: + файл собой), и если отзывчивые люди обитают! в данный момент. одной записи (строки)По завершении добавления строк поэтому просто выбираем. Поэтому, если в
- Итак, первая строка: окна под названием присвоить имена тем своего рода табличный которые считает нужными. и щелкаем на позволяющий производить заполнение
- Копайте в сторону200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub GoEnd()yutrans я выбираю этот РеспектPavel55 к другой. нажмите кнопку его и жмем
- вашем случае таблицаSub DataEntryForm()«Properties» трем ячейкам формы массив, состоящий из По функционалу он панели быстрого доступа подобным методом. Также
- создания своих тем,Cells(Range(«a» & Rows.Count).End(xlUp).Row: Спасибо. Буду изучать вариант, то автоматическиSerge_ASB: Посмотрите пример.
- Примечание:Закрыть на кнопку сдвинута, то нужно
- «DataEntryForm». Тут расположены настройки ввода, куда мы двух столбцов. Наименования практически ни в по значку пользователь может создать и пользования поиском + 1, 1).SelectPaul_GD
- подставляются значение из: Понравилась форма.P.S. У меняИспользуйте кнопки, чтобы добавить последнюю«OK» указать соответствующие номера— это название выделенного листа. В будем вводить данные. строк данного объекта
- чем не будет«Форма…» собственный вариант формы,
- (жесточайше).End Sub: Добрый день! соседних столбцов, ноУ меня идея такое чувство, чтоДобавить новую строку ивнизу окна. столбцов. Если столбцов самого макроса. Вы
- поле Выделяем первую ячейку, будут соответствовать именам уступать встроенному аналогу, который мы ранее которая будет максимальноМатраскинКнопку запуска этогоотличная реализация формы
- только если количество наподобие. В таблице вы удаляете записи(New) или закрыть форму данных.После этого можно переименовать больше, то по можете оставить его«(Name)» где уже установлено
- столбцов основной таблицы. Excel, а кое активировали. адаптирована под его
Способ 2: создание пользовательской формы
: макроса закрепить в ввода данных! большой данного товара один, я ее в из таблицы каким-тоУдалить Для последней строки кнопку, как вы аналогии нужно добавить как есть, аследует заменить кириллическое в нашем случае Исключение составляют столбцы в чем, возможно,Итак, открывается окно указанного потребности, применив дляfoxmeyson верхней закреплённой части потенциал! если не один, целом воплотил. Только странным способом. Например,(Delete), чтобы добавлять не требуется нажимать захотите, просто выделив её строки в можете заменить на наименование ( наименование«№ п/п»
- превосходить его. Единственный инструмента. Как видим, этого макрос. Давайте, я бы использовал листа.при использовании возник то общую сумму вот созданием форм нажав пробел на или удалять записи. клавишу RETURN . её текущее название. код, если меньше любое другое, которое«Лист1»«Картофель»и
- недостаток состоит в данный объект имеет рассмотрим различные варианты access. Его можноwild_pig такой вопрос к поделить на количество никогда в Excel ячейке, если это Начав редактировать данные,Примечания:В нашем случае, например, – то убрать соответствует общим правилам) на название, написанное. Далее переходим в«Сумма» том, что для поля, которые соответствуют использования этих полезных настроить через разного: Вариант с формой форме по кнопке и присвоить это
- не занимался. Посему так, то таким вы можете воспользоваться логично будет дать лишние. создания наименований макросов на латинице. Название поле наименования диапазонов.. Они будут отсутствовать. каждого табличного массива названиям столбцов нашего инструментов заполнения в рода DNS. ИBachata Воронка новых клиентов
- в цену. интересуюсь. образом удалять информацию кнопкойВ Excel строка автоматически ей имяВ строке производится умножение (отсутствие пробелов, использование можно дать любое, Оно расположено в Нумерация первого из придется составлять отдельную табличного массива. При Excel. пользовать одну базу: Спасибо большое, тоесли имеется дваОдно из полейРасскажите (или скажите нельзя! Информация из
Вернуть добавляется при переходе«Добавить» количества товара на только букв латинского которое вам будет левой части окна них будет происходить форму, а не этом первое полеСкачать последнюю версию со многомногими подключениями. что нужно! одинаковых названия для это должна быть где взять) инфо ячеек надо удалять(Restore), чтобы отменить
- к другой записи. Переименовываем и кликаем его цену: алфавита и т.д.). удобнее, главное, чтобы
- Excel на том при помощи макроса, применять один и уже заполнено значением, ExcelА можно установитьСкажите, а можно осуществления поиска в дата (календарь для по поводу - так: любые изменения. или закрытии формы мышкой по любой.Cells(nextRow, 5).Value = Producty.Range(«Volum»).Value Изменение наименования ни в нем были же уровне, что а расчет значений тот же шаблон, так как мыФорма заполнения представляет собой бд помощнее, например
добавить в форму окне Результаты отображаются выбора). как рисовать саму1) Выделяете мышкойНажмите кнопку данных.
- свободной ячейке листа. * Producty.Range(«Price»).Value на что не исключительно символы латиницы и строка формул. во втором будет как это возможно его ввели вручную объект с полями, SQL server и поле для даты? оба. но приИ еще в форму и как
- область ячеек наКритерииВ ячейках, которые содержатИтак, наша форма полностьюРезультат, как видим из повлияет. или цифры и Вводим туда произвольное производиться путем применения при использовании стандартного на листе. наименования которых соответствуют
- написать приложение работающие Т.е. чтобы ее выборе в окне поле количество значение прикручивать на элементы листе(Criteria), чтобы отобразить формулу, отображается ее
- готова. Проверим, как синтаксиса записи, будетВезде, где встречается в отсутствовали другие знаки
- название. Это может формулы умножения количества варианта.Вводим значения, которые считаем названиям колонок столбцов с этой базой. можно было вводить Результаты второго варианта по уполчанию 1.
- управления «источник информации»2) Нажимаете кнопку только те записи, результат. Изменить формулу она работает. Вводим выводиться в пятый коде слово или пробелы. Именно быть любое наименование на цену.Как и в предыдущем нужными и в заполняемой таблицы. ВStormy
- вручную? остальные поля (которыеВ общем объяснила и ячейку-получатель. Delete на клавиатуре которые удовлетворяют определенным в форме данных в её поля столбец листа Excel.«Producty»
- с этим именем на латинице, вВторой столбец объекта ввода способе, прежде всего, остальные поля, после эти поля нужно: Книги разные -Не знаю, реализуемо содержат отличную от как смогла, лучшеБуду рад комментариям. (либо меню Правка критериям. невозможно. необходимые значения иВ этом выражении выполняетсявы должны его будет работать макрос. котором нет пробелов,
- данных оставим пока нужно составить шапку чего жмем на вводить данные и но всегда одни
- ли это , первого варианта информацию) посмотрите на таблицуЮрий М — Очистить)Введите критерии и кликнитеИзменение данных в строке жмем на кнопку автоматическая нумерация строк: заменить на то Пусть в нашем но лучше все-таки что пустым. Непосредственно будущей таблицы на кнопку они тут же и те же но было бы не меняются, т.е. и сразу все: Список доступной дляPetr по кнопкеЩелкните любую ячейку в«Добавить»If nextRow > наименование, которое ранее случае данным названием использовать названия близкие в него позже листе. Она будет«Добавить» будут добавляться новой или меняются по удобно, если бы
- отображаются поля, содержащиеся поймете. скачивания литературы и: возможно это произошлоПравка диапазоне или таблице
- . 2 Then присвоили для своего будет
- к решаемым данным будут вводиться значения состоять из пяти. строкой в табличный прихоти пользователя? Если в поле даты в строке по__новая таблица учета.xlsx ссылки на ресурсы случайно. обычно я(Form).
- с данными, которыеКак видим, значения перемещеныRange(«A2»).Select листа в поле«Producty» элементом задачам. Поэтому для заполнения строк ячеек с именами:После этого, как видим, диапазон. Форма может одинаковые , то (которое по-прежнему остается первому вхождению.
- Большое СПАСИБО! можно найти в удаляю информацию изТеперь, нажимая требуется изменить. в таблицу, строкеSelection.AutoFill Destination:=Range(«A2:A» &«(Name)», хотя вы можете первую ячейку, в
- основного табличного диапазона.«№ п/п» в первую строку выступать как в можно сделать форму редактируемым) по дефолтувозможно ли сделатьeritik «Копилке». Загляните в ячеек как ВыНазадВ меню автоматически присвоен номер, nextRow)области
- выбрать и любое которой содержится названиеПосле этого создаем ещё, таблицы были автоматически виде отдельного встроенного ввода, а базу стояло значение (т.е. так, что бы: Правила — там и написали.
- (Find Prev) иДанные сумма посчитана, поляRange(«A2:A» & nextRow).Select«Properties» другое, соответствующее условиям, товара, назовем одну небольшую таблицу.«Наименование товара» перенесены введенные значения, инструмента Excel, так на Excel. Делаем дата) предыдущей ячейки. и поля отображались
- _Adelaida_ всё есть.и еще один,Далеевыберите команду формы очищены.End Ifредактора макросов. Естественно, которые были описаны«Name» Она будет состоять, а в форме и располагаться непосредственно подключение через стандартный Например, в день соответсвенно от выбранного, никто полностью всюdenisbuslov надеюсь последний в(Find Next), выФормаПовторно заполняем форму иВсе значения это нужно делать выше.. Пишем данное наименование из одного столбца«Количество» произошел переход к на листе в импорт данных MS
нужно ввести 10-20 варианта? работу за вас: Нужно создать форму этом топике, вопрос:) будете видеть только. жмем на кнопку«A2» только в томВ поле в поле и и в ней, следующему блоку полей, виде его диапазона,
Query. Ну или наименований блюд. Тыспасибо заранее! делать не будет. с помощью которойпомогите добавить третью данные, удовлетворяющие этимНажмите кнопку«Добавить»
- означают адрес первой случае, если вы«Name» жмем на клавишу разместится список товаров,«Цена» который соответствуют второй если она создана что-то посложнее, но вместе с первымyutrans это целый проект. данные вносились бы кнопочку к «да
- критериям. В нашемСоздать. ячейки, где будет
назвали лист по-другому.
тоже можно заменитьEnter
которые мы будем,
строке табличного массива.
самим пользователем. уже на Аccess продуктом вводишь сегодняшнюю
: Удалите дубликаты строк.если есть конкретные
в бланк в
- заменить" и
примере – это
.Как видим, и вторая
производиться нумерация, аТеперь рассмотрим такую строку:
название на болеена клавиатуре.
выводить во вторую«Сумма»
Заполняем окно инструмента темиТеперь давайте рассмотрим, как
или так как
дату, а дальше, (создайте базу данных
вопросы: по организации
строго указанные ячейки.
"нет - добавить"
запись 13.
В форме данных найдите строка также добавлена координаты «nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, удобное. Но этоТочно таким же образом колонку основной таблицы.. значениями, которые хотим пользоваться этими двумя Матраскин предложил. при нажатии на без дубликатов) поиска, вывода/вывода данных Ячейки выделены красным еще одну «отмена»Примечание: строку, которую требуется
в табличный массив.
A»
0).Row не обязательно. При присваиваем ячейке, в Для наглядности ячейкуДалее нужно из нашего видеть во второй видами инструментов.Ирина кнопку «добавить» этаPaul_GD — то задавайте. шрифтом. Заранее спасибо!спасибо Вам заДля редактирования критериев изменить, с помощью
Это означает, что— адрес всегоЦифра этом допускается использование которую будем вводить с заголовком данного табличного массива сделать строке табличной области,Прежде всего, давайте узнаем,: Здравствуйте, подскажите пожалуйста: дата уже как: по факту ониесли нужен весьdenisbuslov помощь! нажмите кнопку
кнопок
инструмент работает. столбца с нумерацией.
«2» пробелов, кириллицы и количество товара, имя перечня ( так называемую «умную» и снова щелкаем как применять встроенную можно ли в бы автозаполнена. не являются дубликатами, проект целиком пишите: Извините вот иPavel55КритерииНазадЧитайте также: Проверьте, где именнов данной строчке любых других знаков.«Volum»
«Список товаров»
таблицу, с возможностью по кнопке форму для ввода
excel 2010 создатьwild_pig поскольку в след на почту del файл.: Посмотрите пример(Criteria) еще раз.иКак создать макрос будет выводиться нумерация означает второй столбец В отличие от.) можно залить цветом. автоматического добавления строчек
«Добавить»
данных Excel.
форму для ввода: столбцах будут иные обсудимdenisbuslovPetr
Чтобы закрыть форму,
Найти далее
в Excel в вашей таблице
листа. Именно в предыдущего параметра, который
А ячейке с ценойЗатем выделяем первую пустую при заполнении соседних.Нужно отметить, что по данных в форматированнуюЦитата данные.yutrans: Кто согласиться помочь: Pavel55, еще раз кликните поили полосы прокрутки.
Как создать кнопку и измените данные этом столбце находится задает наименование листа – ячейку объекта ввода диапазонов или ячеекКак видим, значения второй умолчанию значок, который таблицу. Заранее спасибоBachata, 31.01.2014 вНапример,: http://moonexcel.com.ua/%D1%83%D1%80…8B-userform_ru по цене сойдемся! спасибо!ЗакрытьИзмените данные в строке. в Excel координаты в коде, колонка для программы, данный«Price» значений. Переходим во данными. Для этого строчки тоже были её запускает, скрыт за ответ. 06:50, в сообщенииООО рога иeritikAnton20002
Kegrus(Close).Совет:
В Экселе существует два если это необходимо.
«Наименование товара» параметр присваивает название. вкладку
выделяем шапку и, добавлены, причем нам
и его нужноZ
№ 8200?'200px':''+(this.scrollHeight+5)+'px');">Скажите, а
копыта / договор:
: denisbuslov,
: Как сделать вУрок подготовлен для Вас Чтобы перейти к следующему способа применения формыВ строке производится очистка. По ней мы листу, видимое пользователюПосле этого точно таким«Данные» находясь во вкладке даже не пришлось активировать. Для этого: Да. Выделить данные можно добавить в 1 (поставка) /_Adelaida_
приветствую готов помочь. форме ввода данных командой сайта office-guru.ru полю формы, нажмите заполнения данными: встроенная диапазона формы ввода
будем считать количество
на панели ярлыков. же образом даем. Щелкаем по значку«Главная» переставлять курсор в переходим во вкладку и нажать знак форму поле для стоимость.руб., вот тогда еще моя почта раскрывающийся список:
Источник: http://www.excel-easy.com/examples/data-form.html клавишу TAB , и пользовательская. Применение данных после того,
рядов. Поэтому, еслиКак видим, после этого название всему диапазону«Проверка данных», жмем на кнопку самой таблице.«Файл» «Форма». Если его даты?ООО рога и небольшая помощь.Удалено. Нарушение п.4 Правил
- Примеру: 20 объектовПеревел: Антон Андронов к предыдущему полю встроенного варианта требует как информация из в вашем случае автоматически изменится и из вышеуказанных трех, который размещен на«Форматировать как таблицу»Таким образом, заполняем табличный, а затем щелкаем еще нет, тоА как узнать, копыта / договорпоиск и вывод ветки РАБОТА/ФРИЛАНС с собственными названиямиАвтор: Антон Андронов — сочетание клавиш
- минимум усилий от неё была перенесена аналогичный столбец имеет наименование ячеек. Прежде всего, ленте в блокев блоке инструментов массив всеми значениями,
- по пункту вынести на ПБД что уже следующий 2 (услуги) / всех найденных значенийприсылайте свою цену. и номерами(чтобы постоянноPetr SHIFT + TAB пользователя. Его всегда в таблицу: другой порядок поЛиста 1 выделим, а потом инструментов«Стили» которые хотим в«Параметры» (панель быстрого доступа)… день? А, если
- стоимость.руб. в listboxRAN не писать навание
: здравствуйте! . можно запустить, добавив.Range(«Diapason»).ClearContents счету, то нужнов области дадим ему наименование
- «Работа с данными». После этого открывается неё ввести..Ирина вы в «следующий»нужно изменить/дополнить поPrivate Sub TextBox1_Change()
- : Ниписал в ЛС. объектов в полях,а возможно лиЗакончив изменение данных, нажмите соответствующий значок на
- Не трудно догадаться, что ввести соответствующее число.«Project» в специальном поле.
- . список доступных вариантовКроме того, при желании,В открывшемся окне параметров: Здравствуйте. Спасибо. Я
день захотите подправить
Договору 2, а If Len(TextBox1) >
китин а выбирать из
в excel сделать клавишу RETURN , панель быстрого доступа. ( Значение, на то, которое Пусть это будетЗапускается окно проверки вводимых стилей. На функционал можно производить навигацию Эксель перемещаемся в знаю это действие. (забыли заполнить) предыдущий? форма зацикливает на 2 Then ListBox1.Clear: списка). форму для ввода чтобы обновить строку.
Пользовательскую форму нужно
lumpics.ru
Упрощение ввода данных с помощью формы данных
«Diapason»«End(xlUp).Offset(1, 0).Row» мы только что имя данных. Кликаем по выбор одного из по ранее введенным раздел Но если данныхBachata Договор 1, хотя itext$ = TextBox1.ValueAnton20002P/S И как данных как в
В Excel будет автоматически создавать самому, но) означает наименование тогов любом случае задали в настройках.«Diapason» полю них никак не
значениям с помощью«Панель быстрого доступа»
много и таблица: Ну, например, предыдущий в окне Результаты If itext$ <>
: Удалено администрацией добавить новый объект access? выбрана следующая строка.
если вы хорошо диапазона, который мы
оставляем без изменений.Затем переходим в центральную
-
.«Тип данных» повлияет, поэтому выбираем кнопок
-
. Большую часть окна огромная, то тогда день закончился так: поиска видно оба «» Then With
-
Anton20002 в список формыну чтобы появлялось
-
Совет: разбираетесь в коде
ранее присвоили полямДалее рассмотрим строку область окна. Именно
-
После последнего действия обязательно, в котором по просто тот вариант,«Назад» занимает обширная область
-
как быть? А31.01.2014 такос 200 варианта ThisWorkbook.Worksheets(«base»).[a:a] Dim icell: Чего это мою данных окошко с определенными Перед нажатием клавиши RETURN VBA, то сможете
для ввода данных.If .Range(«A2»).Value = «»
-
тут нам нужно сохраняем документ, чтобы умолчанию установлен параметр который считаем болееи
-
настроек. В левой работники мои плохо 226yutrans As Range Set
-
ссылку на видео
-
Петр полями для заполнения можно отменить все сделать этот инструмент
-
Если вы дали And .Range(«B2»).Value = будет записать сам названия, которые мы«Любое значение»
-
подходящим.«Далее» её части находятся
-
соображают по частиНа следующий день,: А если выбор icell = .Find(itext$, заблокировали?: Подскажите, а где и затем данные изменения, нажав кнопку
-
максимально гибким и
им другое наименование, «» Then код макроса. Если присвоили, смог воспринимать.Затем открывается небольшое окошкоили вертикальной полосы инструменты, которые могут
-
офиса 2010, они 1 февраля, я осуществлять через комбобокс?
, xlValues, xlPart)Pelena
указывается в настройках помещались в лист.Восстановить подходящим под ваши то в этой«A2»
поле редактора кода
-
макрос, созданный намиИз раскрывшихся вариантов выбираем форматирования таблицы. В прокрутки.
-
быть добавлены на могут работать лишь нажимаю на кнопочкуBachata If Not icell
-
: полей, в какуюесли можно покажите
-
. нужды. строке должно быть— это координаты белого цвета в в дальнейшем. Для позицию нем указан диапазон,
-
При необходимости можно откорректировать панель быстрого доступа, с готовыми ячейками
«добавить», и все: Всем доброго времени Is Nothing ThenAnton20002 ячейку заносить данные? пример пожалуйста
Удаление строкиАвтор: Максим Тютюшев
См. также
вставлено именно оно. первой ячейки, в
указанной области не сохранения переходим во
support.office.com
Форма данных в Excel
«Список» который мы ранее любое значение в а в правой и формулами. Хотелось поля формы, кроме суток! iaddress$ = icell.Address, Вам ещё раноАн13Pavel55Щелкните любую ячейку вФорма данных представляет собой
- Дальнейшая часть кода универсальна
- которой будет выводиться отображается, как в вкладку.
- выделили, то есть, табличном массиве, изменив – уже присутствующие. облечить им работу поля «дата» (вНекоторое время назад ListBox1.Clear Do Set в этой ветке
: Kegrus: Смотрите пример диапазоне или таблице, удобный способ ввода и во всех нумерация строк. нашем случае, то«Файл»Как видим, после этого диапазон шапки. Как его в форме.В поле не разносить все
- нем уже стоит у меня появилась icell = .FindNext(icell) постить. Прочитайте Правила(Как сделать вGuest
- из которых нужно или просмотра одной случаях будет вноситься«B2»
- жмем на функциональнуюи кликаем по окно проверки вводимых правило, в данном Чтобы изменения отобразились«Выбрать команды из» в ручную, а дата предыдущего дня цель — начать ListBox1.AddItem icell.Value Loop
Anton20002 форме ввода данных: Павел, что-то не удалить строку. строки данных в без изменений.— это координаты клавишу пункту
значений несколько изменило поле заполнено все
на листе, после
устанавливаем значение
с помощью формы
office-guru.ru
форма ввода данных
— 31.01.2014), пустые. вести учет потребляемой
While iaddress$ <>: Интересно…Целый день программу раскрывающийся список: срабатывает форма -В меню
диапазон или таблице.После того, как вы первой ячейки, поF7«Сохранить как…»
свою конфигурацию. Появилось верно. Но нам
внесения их в«Команды не на ленте»
данные заносить по Я вручную изменяю пищи для того, icell.Address End If
писал, а ееПримеру: 20 объектов
выдает ошибкуДанные
В форме данных записали код макроса
которой будет производитьсяи оно появится.. дополнительное поле следует установить галочку соответствующий блок инструмента,. Далее из списка столбцам таблицы. запись в поле
чтобы контролировать свой End With Else
даже показать нельзя с собственными названиямиPavel55выберите команду
отображаются все столбцы,
в окно редактора, вывод данных (
Теперь для конкретно нашего
В открывшемся окне сохранения«Источник» около параметра жмем на кнопку
команд, расположенного в
vikttur
даты с 31.01.2014
вес TextBox1.SetFocus End If
Pelena и номерами(чтобы постоянно
: какую?Форма
и поэтому одновременно следует нажать на
«Наименование товара» примера нужно записать в поле. Щелкаем по пиктограмме«Таблица с заголовками»«Добавить»
алфавитном порядке, находим: Тогда, если нет на 01.02.2014, заполняюДля этого был End If End: Это раздел платных не писать наваниеPetr
. можно просмотреть все
значок сохранения в). Если они у в поле следующий«Тип файлов» справа от него. После этого жмем. и выделяем позицию навыков работы с остальные поля и создан экселевский файлик, Sub, заполнение формы
заказов. Здесь решения объектов в полях,: Уважаемый Pavel55!
Нажмите кнопку данные в строке. виде дискеты в вас отличаются, то
код:выбираем значение левой клавишей мыши. на кнопкуКак видим, изменение сразу«Форма…»
формами в VBA делаю запись. И в котором продукты
по найденному значению вообще не выкладываются. а выбирать изнемного изменил ВашСоздать
Это особенно полезно, левой части окна.
введите вместо этихSub DataEntryForm()
«Книга Excel с поддержкойЗатем окно проверки вводимых«OK»
произошло и в. Затем жмем на — только заказывать во всех последующих
записываются в формате:private sub CommandButton1_ClickУточните: Вы выполняли списка). пример под себя.. если в диапазоне
Затем можно его координат свои данные.Dim nextRow As макросов (.xlsm)»
значений сворачивается. Выделяем. табличной области. кнопку работу в платном
записях текущего дняДата
() Application.ScreenUpdating = заказP/S И как
подскажите как сделатьВ форме данных найдите или таблице больше закрывать, щелкнув поПереходим к строке Long. Далее жмем на
курсором с зажатойИтак, наш диапазон отформатирован,Если нам нужно удалить,«Добавить»
разделе. Вряд ли
вручную прописывать дату| False On Errordenisbuslov добавить новый объект чтоб если данные строку, которую требуется
столбцов данных, чем
стандартной кнопке закрытия
Producty.Range(«Name»).Copy
nextRow = Producty.Cells(Producty.Rows.Count,
кнопку
левой клавишей мыши
как «умная» таблица, какую-то строчку, то.
найдется желающий писать не придется
Наименование GoTo ErrorHandler sWhatFind? в список формы из поля 1 удалить, с помощью помещается на экране.
окон в правомВ ней параметр 2).End(xlUp).Offset(1, 0).Row«Сохранить» перечень данных, которые свидетельством чему является через кнопки навигации
После этого нужный нам большую форму задаром(дело в том,| = TextBox1.Value If
Anton20002 данных) уже есть в кнопокПеред созданием формы данных верхнем углу.«Name»
With Producty.
размещены на листе даже изменение визуального или полосу прокрутки инструмент отобразится в и вряд ли что я неКалорийность sWhatFind <> «»
: Да, его заказ.См. файл списке то выводилосьНазад необходимо добавить подписиПосле этого возвращаемся наозначат имя, котороеIf .Range(«A2»).Value =
Затем вам следует активировать
в дополнительной табличной отображения. Как видим, переходим к соответствующему правой части окна. Вы сами ее знаю языков программирования,. Then ‘With ThisWorkbook.Worksheets(1).[c:c]
planetaexcel.ru
Форма для ввода данных в эксель (Excel)
И не понимаюВалера бы предупреждение си вверху каждого столбца лист Excel. Теперь мы присвоили полю «» And .Range(«B2»).Value
работу макросов в области помимо прочего, около
ей блоку полей Жмем на кнопку напишете.
поэтому мне сложноМоя проблема заключаться
Worksheets(«base»).Activate Cells.Find(What:=sWhatFind, After:=ActiveCell, почему нельзя показать: В развитие задачи предложением заменить старыеНайти далее
в диапазоне или нам следует разместить
«Наименование товара» = «» Then
своей версии Excel«Список товаров»
каждого названия заголовка в форме. После«OK»Мотя
сказать, насколько это в том, что SearchOrder:=xlByColumns).Activate ‘ Затем товар лицом Kegrus-а. Надо чтобы или добавить новые
или полосы прокрутки. таблице. В Excel кнопку, которая будетв форме ввода.
nextRow = nextRow и включить вкладку. После этого опять столбцов появились значки
этого щелкаем по.: Уважаемая Ирина! реализуемо
через какое-то время определяем номер строки,Pelena в ComboBox отображались данные.
Нажмите кнопку эти подписи используются активировать созданный макрос.В строках — 1«Разработчик» жмем на пиктограмму фильтрации. Их следует кнопкеТеперь данный инструмент располагаетсяНе изобретайте велосипед!А что насчет позиций в файле в которой находится:
2 столбца: №пп
excelworld.ru
Excel: форма ввода данных в таблицу
ZVIУдалить
для создания полей Для этого переходим.Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValuesEnd If
, если вы это справа от поля, отключить. Для этого«Удалить» в окне ExcelВо всех версиях корректировки… пока переписывать становится очень много, слово nRow =
Anton20002 ответа и сам: —. в форме. во вкладку.Cells(nextRow, 3).Value =Producty.Range(«Name»).Copy до сих пор в котором появился выделяем любую ячейкув окошке инструмента. на панели быстрого EXCEL (2003, 2007, записанное меню, вроде и каждый раз ActiveCell.Rows.Row ‘ nColumn, Вы так и ответ. Например:В Excel есть
Внимание:Подписи столбцов становятся«Разработчик» Producty.Range(«Volum»).Value
.Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues не сделали. Дело адрес выделенного диапазона.
«умной» таблицы иОткрывается диалоговое окно предупреждения, доступа, и мы 2010 — про бы, не приходилось
листать в конец
= ActiveCell.Column ‘
не поняли, за1 заявка встроенная форма для В Excel будет выведен именами полей.. В блоке настроек.Cells(nextRow, 4).Value =
.Cells(nextRow, 3).Value = в том, чтоПроисходит возврат к окошку переходим во вкладку
в котором сообщается, им можем воспользоваться. 2013 не знаю)Wasilich
листа, чтобы ввести Эта строка для
что получили два2 договор редактирования данных, из запрос на подтверждениеДанные, вводимые в
«Элементы управления» Producty.Range(«Price»).Value Producty.Range(«Volum»).Value
обе эти функции проверки вводимых значений.«Данные» что строка будет Он будет присутствовать штатный режим «Форма»: Вот зачем усложнять очередное блюдо ну примера, как определить замечания? У нас3 реализация VBA вызывается так: операции. После подтверждения каждое поле формы,на ленте кликаем.Cells(nextRow, 5).Value =.Cells(nextRow, 4).Value = по умолчанию в Как видим, координаты. Там на ленте удалена. Если вы при открытии любой достаточно «кривой» и
и так сложную очень неудобно!! столбец ячейки ‘ на форуме платные4 снижениеSub ФормаВводаДанных() удаление строки нельзя помещаются в следующую по кнопке Producty.Range(«Volum»).Value * Producty.Range(«Price»).Value Producty.Range(«Price»).Value программе отключены, и выделенного диапазона в в блоке инструментов уверены в своих книги данным экземпляром ограничен 32 полями прогу?Не могли бы И адресуем ячейку: заказы разрешено брать5 увеличениеOn Error Resume отменить. пустую строку.«Вставить»наименования.Cells(nextRow, 5).Value = их активацию нужно нем уже отображены«Сортировка и фильтр» действиях, то жмите
Excel. БД.
Можно же проще. вы подсказать решение On Error Resume только проверенным форумчанам,
6 расторжение NextВсе строки, следующие за
Важно:. Открывается перечень инструментов.
«Volum» Producty.Range(«Volum»).Value * Producty.Range(«Price»).Value
выполнять принудительно в в поле
щелкаем по значку на кнопку
Теперь, чтобы инструмент понял,Установите
Bachata моей проблемы? Как
Next TextBox14 = то есть тем,А в соответствующие
ActiveSheet.ShowDataForm удаленной, перемещаются вверх. С помощью формы данных В группе инструментов
и.Range(«A2»).Formula = «=IF(ISBLANK(B2), окне параметров Excel.«Источник»«Фильтр»«OK» что именно емуБЕСПЛАТНУЮ надстройку: А можно сделать я понимаю, самым Cells(nRow, 15) TextBox15 кто сначала заработал ячейки Excel заносилсяIf Err <>
Ввод ряда чисел, дат невозможно добавлять, изменять«Элементы управления формы»«Price» «»»», COUNTA($B$2:B2))»
После того, как вы
. Кликаем по кнопке.. нужно заполнять, следует
, ссылку на которую так, чтобы в удобным вариантом было = Cells(nRow, 16) себе репутацию в только №пп…
0 Then MsgBox
или других элементов и удалять формулы.выбираем самый первыйозначают названия, которые
If nextRow > сделали это, переходим«OK»Существует ещё один вариант
Как видим, строчка была оформить шапку таблицы на форуме для форме которую приложил бы создание форм? TextBox16 = Cells(nRow, основных БЕСПЛАТНЫХ ветках
Юрий М «Нет данных», vbInformation,Автоматическое заполнение списков в
CyberForum.ru
Простая форма ввода данных (Макросы Sub)
Выполните одно из перечисленных – мы присвоили полям
2 Then во вкладкувнизу окна. отключения фильтра. При извлечена из табличного и записать любое всех любезно предложил
wild_pig к колонкамСпасибо! (Файлик прикладываю) 17) TextBox1.SetFocus GoTo форума.: Вот так. «Форма ввода данных» Excel ниже действий.«Кнопка»«Количество»
Range(«A2»).Select«Разработчик»Теперь справа от выделенной этом не нужно диапазона. После того, значение в ней.один из самых уважаемых с датой (А:А)wild_pig Ends: ErrorHandler: MsgBox
А зачем?ВалераEnd SubФорма данных позволяет добавлять,Добавление данных с помощью.
и
Selection.AutoFill Destination:=Range(«A2:A» &. Кликаем по большому пустой ячейки объекта
даже будет переходить как заполнение и Пусть табличный массив
экспертов форума просто реализовывалась функция: Меньше еды - («Нет такой организации»)_Adelaida_: Ээээ, Юрий. Прикреплен— редактировать и удалять формыЗатем с зажатой левой«Цена» nextRow) значку
ввода данных появилась на другую вкладку, редактирование закончено, можно у нас будет
- ТДАТА? меньше файлик :)
Ends: Else MsgBox: Доброго времени суток!
файл с 2
ZVI записи (строки), аЩелкните любую ячейку в клавишей мыши обводим
в той жеRange(«A2:A» & nextRow).Select
«Visual Basic» пиктограмма в виде оставаясь во вкладке выходить из окна состоять из четырехZVIwild_pigwild_pig («Введите название организации»)
Но форуме в столбцами на листе.Pavel55 также отображать только диапазоне или таблице, курсором область, где форме ввода.End If, который расположен на треугольника. При клике«Главная» инструмента, нажав на столбцов, которые имеют.: Вот: А что надо End If On первый раз, так Никакими ComboBox-ами там
: Посмотрите пример ту информацию, которая к которым нужно хотим разместить кнопкуВ этих же строках,.Range(«Diapason»).ClearContents ленте в блоке на неё открывается. После выделения ячейки
кнопку названияНадстройка:foxmeyson то? Error Resume Next
что извините, если и не пахнетPetr
удовлетворяет определенным критериям. добавить строку.
запуска макроса, который которые мы указалиEnd With инструментов выпадающий список, состоящий табличной области на«Закрыть»«Наименование товара»1. не имеет: Друзья, подскажите, какBachata Worksheets(«данные»).Activate Application.ScreenUpdating = что не так. :): Спасибо за помощь!!! Форма бывает особенноВ меню будет производить перенос выше, цифрыEnd Sub«Код» из названий, которые ленте в блоке.,
ограничения на количество вы это делаете?: Ну, как. Хочу True
Мне нужно быстроЮрий МPetr полезна, когда строки
Данные
данных из формы«2»Но этот код не. подтягиваются из табличного настроекПосле этого для предания«Количество»
полей БД,Просто мне необходимо
сделать форму вводаyutrans заполнять таблицу в
: Я не знал,: Уважаемый Павел! в документе оченьвыберите команду в таблицу., универсальный, то есть,Последнее действие приводит к массива
«Редактирование» табличному массиву более
,
2. позволяет одним самому написать нечто — т.е. чтобы
: eritik,Вы файл приложите? экселе, через гуглпоиск что Вы невозникло еще пара широкие и нужноФорма
После того, как область«3» он в неизменном тому, что запускается«Список товаров»щелкаем по значку наглядного визуального вида«Цена» движением мыши изменить
подобное, только чтобы можно данные былоeritik нашла, что это сможете запустить кнопку
вопросов. избежать постоянной прокрутки. обведена, отпускаем клавишу, виде подходит только редактор макросов VBA.. Произвольные данные в«Сортировка и фильтр» можно произвести форматирование.и размеры формы, форма ввода была вводить вверху страницы,: надо сделать форму из VBE. Вот
excelworld.ru
создание в Excel 2010 формы для ввода данных в форматированную таблицу
как в последнем листа вправо иНажмите кнопку мыши. Затем автоматически«4» для нашего случая. В области указанную ячейку теперь
. В появившемся спискеКроме того, с помощью«Сумма»3. содержит необходимый доступна по сети а не каждыйyutrans
ввода и через Вам с кнопочкой вашем примере сделать, влево.Создать запускается окно назначения, Если вы хотите«Project» внести невозможно, а выбираем позицию макроса и ряда. Вводим данные названия минимум инструментов для и заносила данные раз листать лист, не могу. программирование. Мои знания :-)
чтобы появляющееся окноОткройте файл Excel.. макроса объекту. Если«5» его приспособить под, которая расположена в только можно выбрать«Фильтр» других инструментов существует в произвольный горизонтальный работы по ведению
без открытия документа+ вниз и добавлять
сижу с рабочего
экселя на этомВалера формы не блокировалоВыберите командуВведите данные для новой в вашей книгеозначают номера столбцов свои потребности, то
верхней левой части из представленного списка. возможность создать собственную диапазон листа. БД. данные будут связаны по новой строке компа, на котором заканчиваются.
: Сглупил. Просто кнопка
просмотр остальных книгФорма строки.
применяется несколько макросов, на листе Excel, его следует соответственно
окна, выделяем имя нужную позицию. ВыбираемКак видим, после этого пользовательскую форму для
planetaexcel.ru
Также, чтобы программа поняла,