Закрыть свою форму в excel

 

Уважаемые форумчане!  

  Напомните, плиззз, команды в VBA для сохранения и закрытия userform.  

  Спасибо!

 

А что значит сохранить? У формы нет такой функции  

  А закрыть можно так  

  Sub Макрос1()  
   ‘или так  
   Unload UserForm1 ‘закрыть и выгрузить из памяти форму  
   ‘или так      
   UserForm1.Hide ‘скрыть форму  
End Sub  

  метод Hide — просто скрывает формулу от пользователя  
метод Unload (имя формы) — выгружает форму из памяти и закрывает её

 

{quote}{login=Pavel55}{date=28.04.2008 06:41}{thema=}{post}А что значит сохранить? У формы нет такой функции  

  А закрыть можно так  

  Sub Макрос1()  
   ‘или так  
   Unload UserForm1 ‘закрыть и выгрузить из памяти форму  
   ‘или так      
   UserForm1.Hide ‘скрыть форму  
End Sub  

  метод Hide — просто скрывает формулу от пользователя  
метод Unload (имя формы) — выгружает форму из памяти и закрывает её{/post}{/quote}  

  Всем спасибо уже сделал так :-)    
Private Sub CommandButton1_Click()    
Unload userform1  
ActiveWorkbook.Save  
End Sub

 

)) ну, всё правильно) только вы спрашивали о сохранении формы, а сами сохраняете активную книгу ) или нам надо было догадаться ?)

 

СердЖиГ

Гость

#5

29.04.2008 11:34:08

{quote}{login=Pavel55}{date=28.04.2008 10:07}{thema=}{post})) ну, всё правильно) только вы спрашивали о сохранении формы, а сами сохраняете активную книгу ) или нам надо было догадаться ?){/post}{/quote}  

  Павел, сорри, уже вечер был :-)

Содержание

  1. VBA Close UserForm | 2 лучших метода закрытия пользовательской формы с примерами
  2. Excel VBA Закрыть пользовательскую форму
  3. Как закрыть UserForm в Excel VBA?
  4. # 1 — Закройте пользовательскую форму с помощью инструкции «Unload Me» в VBA
  5. # 2 — Закройте UserForm с помощью метода Hide в Excel VBA
  6. Разница между выгрузкой и скрытием в Excel VBA
  7. VBA Закрыть UserForm — Лучшие методы закрытия UserForm в Excel VBA
  8. Excel VBA Закрыть UserForm
  9. Как закрыть UserForm в Excel VBA?
  10. Excel VBA Закрыть UserForm — Пример # 1
  11. Excel VBA Закрыть UserForm — Пример № 2
  12. Excel VBA Закрыть UserForm — Пример № 3
  13. Excel VBA Закрыть UserForm — Пример № 4
  14. То, что нужно запомнить
  15. Рекомендуемые статьи

VBA Close UserForm | 2 лучших метода закрытия пользовательской формы с примерами

Когда мы создаем пользовательскую форму, она принимает данные в качестве ввода от пользователей, но данные, предоставленные форме, не закрываются, поэтому это может ввести пользователя в заблуждение, чтобы снова ввести данные, мы используем две разные команды, чтобы закрыть пользовательскую форму, когда ввод было дано, и это метод Unload me, чтобы закрыть пользовательскую форму, или мы можем использовать метод userform.hide.

Excel VBA Закрыть пользовательскую форму

Пользовательские формы жизненно важны при получении входных данных от пользователя в рамках проекта VBA. Обычно мы разрабатываем форму пользователя до того, как представим ее пользователю. После завершения проектирования пользовательской формы VBA нам нужно показать то же самое перед пользователем и потребовать кодирования VBA. Аналогично, чтобы закрыть пользовательскую форму, требуются знания кодирования VBA.

В этой статье мы покажем вам, как закрыть пользовательскую форму в кодировке VBA.

Как закрыть UserForm в Excel VBA?

Как только назначение пользовательской формы выполнено, есть смысл продолжать показывать пользовательскую форму перед пользователем, поэтому нам нужно закрыть пользовательскую форму. Мы можем закрыть пользовательскую форму с помощью операторов «Unload Me» и «UserForm.Hide». Хотя оба они немного отличаются друг от друга, в конечном итоге они послужат нашей цели.

Вы можете скачать этот шаблон VBA Close UserForm Excel здесь — VBA Close UserForm Excel Template

# 1 — Закройте пользовательскую форму с помощью инструкции «Unload Me» в VBA

Например, посмотрите на изображение пользовательской формы ниже.

Я назвал пользовательскую форму «MyUserForm».

Если я запустил пользовательскую форму, мы увидим пользовательскую форму, как показано ниже.

Мне нужно заполнить необходимые данные, после того, как информация будет заполнена, если я нажму кнопку «Отправить», она сохранит те же данные на листе, который виден слева.

После нажатия кнопки отправки он захватил данные, которые я ввел в пользовательскую форму.

Если вы заметили, у нас есть еще одна кнопка под названием «Отмена». Что это значит?

Перед тем как отобразить пользовательскую форму, нам нужно настроить эту кнопку. Теперь я вернусь к визуальному базовому редактору, чтобы настроить эту кнопку.

Теперь я дважды щелкну кнопку «Отмена», и откроется автоматическая подпроцедура VBA, как показано ниже.

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

Итак, напишите код как «Разгрузите меня».

Код:

«Разгрузить меня» — это слово, которое мы используем, чтобы закрыть пользовательскую форму, над которой мы работаем. Здесь пользовательская форма распознает слово «Я» как саму UserForm.

«Выгрузить меня» можно использовать только в этой процедуре пользовательской формы, мы не можем вызывать этот оператор в других модулях. При вызове отобразится сообщение об ошибке « Недопустимое использование ключевого слова « Я »».

Хорошо, давайте теперь запустим код с помощью клавиши F5 или вручную, мы увидим пустую пользовательскую форму.

Заполните данные и нажмите «Отправить».

После нажатия кнопки отправки значения будут сохранены в указанных ячейках.

Если ввод данных завершен, нам нужно закрыть пользовательскую форму, не так ли?

Итак, нажмите кнопку «Отмена», чтобы закрыть пользовательскую форму, она закроет пользовательскую форму.

# 2 — Закройте UserForm с помощью метода Hide в Excel VBA

Мы также можем закрыть Userform, используя метод «Hide» в VBA. Теперь я еще раз дважды щелкну по кнопке отмены, чтобы увидеть частную подпроцедуру.

Поскольку мы уже написали код для закрытия пользовательской формы, мы можем увидеть существующий код в VBA. Сейчас удалю это.

Чтобы использовать метод Hide, нам нужно вызвать пользовательскую форму по ее имени. В данном случае имя нашей пользовательской формы — «MyUserForm».

После упоминания пользовательской формы по ее имени, если мы поставим точку (.), Мы сможем увидеть все свойства и методы этой пользовательской формы. Теперь выберу метод «Скрыть».

Хорошо, давайте еще раз запустим пользовательскую форму. Мы увидим пустую форму пользователя, сначала заполните данные.

Теперь, не нажимая кнопку «Отправить», я нажимаю кнопку отмены, она скроет пользовательскую форму.

Разница между выгрузкой и скрытием в Excel VBA

У вас должен быть вопрос, в чем разница между Unload & Hide, где оба служат одной цели. Между этими двумя есть разница. Теперь сначала я воспользуюсь оператором Unload Me. Посмотрите на изображение ниже.

Я ввел данные в пользовательскую форму, но еще не отправил их. Если я нажму «Отмена», пользовательская форма будет выгружена.

Теперь я снова запущу код с помощью сочетания клавиш Excel F5 или вручную, он отобразит пустую пользовательскую форму.

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

Теперь воспользуюсь методом «Скрыть».

Нет, я нажму кнопку отмены, она скроет видимую пользовательскую форму. Но когда я повторно запускаю макрос, он вернется с данными, которые я уже ввел в пользовательской форме.

Вот как мы можем использовать оператор «Выгрузить» и метод «Скрыть», чтобы закрыть пользовательские формы в Excel VBA.

Источник

VBA Закрыть UserForm — Лучшие методы закрытия UserForm в Excel VBA

Excel VBA Закрыть UserForm

Ранее мы обсуждали, как создать пользовательскую форму в VBA. Теперь для получения ввода от пользователя была кнопка для отправки, в которой затем сохранялось значение, указанное пользователем в листе Excel. Но что после придания значения, форма все еще там. Или что делать, если пользователь не хочет предоставлять какие-либо данные и закрывать форму пользователя. Мы не обсуждали, как мы закроем пользовательскую форму для пользователя. Аналогично кнопке отправки для отправки данных у нас была другая кнопка, которая была для отмены, которая используется для скрытия пользовательской формы. Кнопка отмены также имеет свой собственный код, чтобы скрыть пользовательскую форму от пользователя. Теперь есть два метода, с помощью которых мы можем скрыть пользовательскую форму. Они заключаются в следующем:

  1. Первый метод — когда мы используем метод Unload Me. Этот метод выгружает пользовательскую форму и исчезает с дисплея.
  2. Другой метод, когда мы используем метод Useform.Hide. Этот метод скрывает пользовательскую форму от дисплея.

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

Как закрыть UserForm в Excel VBA?

Мы узнаем о том, как закрыть UserForm в Excel VBA с его различием, и на нескольких примерах, но сначала давайте изучим способ закрытия пользовательской формы в VBA.

Есть два способа закрыть пользовательскую форму в VBA:

  1. Выгрузить меня
  2. Спрятать

Вы можете скачать этот шаблон VBA Закрыть UserForm Excel здесь — VBA Закрыть шаблон UserForm Excel

Excel VBA Закрыть UserForm — Пример # 1

Во-первых, давайте попробуем метод закрытия UserForm, используя опцию Unload Me. У нас была пользовательская форма в нашей предыдущей статье, которая выглядит как приведенная ниже.

Для кнопки отправки у нас был наш код, в котором были сохранены данные, введенные пользователем в Excel. Теперь дважды нажмите на кнопку отмены, которая откроет код для того же, как показано ниже,

Код:

Кнопка «Отмена» была второй командной кнопкой, которую мы предоставили пользовательской форме. Теперь напишите оператор кода как Unload me в разделе, как показано на рисунке ниже.

Код:

Мы можем видеть, что Me является оператором Object of Unload. Теперь давайте запустим пользовательскую форму, нажав клавишу F5, чтобы отобразить ее.

Нажмите кнопку «Отмена», чтобы увидеть, что пользовательская форма исчезает, и она возвращает нас к исходной пользовательской форме окна проекта.

Excel VBA Закрыть UserForm — Пример № 2

Теперь давайте попробуем второй метод, метод userform.hide, аналогичный описанному выше, во-первых, давайте откроем форму пользователя из формы пользователя в окне проекта.

Теперь дважды нажмите кнопку отмены, которая откроет код просмотра для кнопки отмены.

У нас уже есть оператор Unload Me, присутствующий в кнопке отмены, очистите код и замените его на оператор Userform.Hide .

Код:

Теперь давайте снова запустим пользовательскую форму, нажав клавишу F5, и отобразим ее на экране.

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

Excel VBA Закрыть UserForm — Пример № 3

Теперь давайте перейдем к первому методу Unload Me оператора для кнопки отмены и предоставим некоторые данные для пользовательской формы. Дважды щелкните на кнопке отмены в пользовательской форме, чтобы открыть код представления для командной кнопки и заменить код оператором Unload Me, как показано ниже.

Код:

Теперь снова запустите пользовательскую форму, нажав клавишу F5, и отобразите ее на экране.

Давайте предоставим некоторые данные для пользовательской формы следующим образом, теперь не нажимайте кнопку отправки, нажмите кнопку «Отмена».

Снова запустите пользовательскую форму, нажав клавишу F5.

Теперь мы можем видеть, что мы потеряли данные, которые мы предоставили пользовательской форме, так как мы не предоставили ее, она не была сохранена на рабочем листе, и мы закрыли пользовательскую форму с помощью оператора Unload Me, который удалил уже заполненные данные.

Excel VBA Закрыть UserForm — Пример № 4

Теперь давайте сделаем то же самое упражнение, но с помощью оператора Userform.Hide,

В командной кнопке отмены замените код, используя метод userform.hide, как показано ниже.

Код:

Теперь мы снова запустим пользовательскую форму, нажав клавишу F5, и предоставим ей некоторые данные следующим образом.

Теперь давайте нажмем кнопку отмены и снова запустим пользовательскую форму, которая даст нам следующий результат.

Данные даже не теряются, когда мы нажимаем кнопку «Отмена», если мы нажимаем «Отправить», данные сохраняются в Excel следующим образом.

Теперь данные сохранены, пользовательская форма теперь пуста, и мы можем закрыть пользовательскую форму, используя кнопку отмены,

То, что нужно запомнить

  • После того, как пользователь введет данные, нам нужно закрыть пользовательскую форму, чтобы она была так же важна, как кнопка отправки.
  • Закрыть пользовательская форма находится в командной кнопке пользовательской формы в VBA. Как правило, она называется Отмена или Закрыть.
  • Есть два отдельных метода закрытия пользовательской формы, но они в конечном итоге служат той же цели, что и друг друга.
  • Метод Userform.Hide наиболее рекомендуется, поскольку даже если пользовательская форма закрыта пользователем перед вводом данных, данные не теряются, и введенная пользователем запись снова отображается, когда пользователь открывает пользовательскую форму.

Рекомендуемые статьи

Это руководство по VBA Close UserForm. Здесь мы обсудим, как закрыть UserForm в Excel, используя оператор Unload Me и метод Userform.Hide в VBA, а также некоторые практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

  1. Как активировать лист в VBA?
  2. Оценить формулу в Excel
  3. Полное руководство по списку VBA
  4. HYPERLINK Формула в Excel

Источник

How to close a UserForm in Excel. This includes hiding the form as well as completely closing it and removing it from memory.

Sections:

Close the UserForm

Hide the UserForm

Red X

Notes

Close the UserForm

This will completely close the UserForm and clear it from memory. When you do this, anything that was entered into the form will be removed and any changes made to the form will be cleared. Don’t let that scare you though, this is the normal way that you close a UserForm.

This is the code that you use:

Unload Me

You put this into the code section of the UserForm.

In the VBA window (Alt + F11), double-click the button that you want to close the form; this causes a code window to appear; in that window, paste the above code.

It will look something like this:

9b49f9f7aa4b064ec0dad97c48cec997.png

You can also close the form using its name instead of «Me» and that would look like this:

Unload UserForm1

In this example, the name of the form is UserForm1.

Hide the UserForm

This makes the form disappear but it does not clear it from memory or actually close the form. This means that anything that was entered into the form and any changes made to it will remain in the form.

Me.Hide

Put this code into the button that you want to cause the form to be hidden.

In the VBA window (Alt + F11), double-click the button that you want to hide the form; this causes a code window to appear; in that window, paste the above code.

It will look something like this:

ee7d64bca3244bacaec4f204451a9c3d.png

If you put this piece of code outside of the UserForm, you will need to reference the name of the form like this:

UserForm1.Hide

UserForm1 is the name of the form to hide.

Red X

Click the red X in the upper-right corner of the UserForm.

This is the way to close a UserForm that doesn’t have any buttons on it or that hasn’t had a «close» button programmed into it.

Notes

Closing a UserForm is, as you can see, very easy to do. However, make sure that when you input the code to close the UserForm, you do it in an intuitive way. For instance, if there is a button that closes the form, make sure the button looks like that’s what it does, such as by saying «Close» or «Cancel».

Download the sample workbook for this tutorial to see this in action.

Similar Content on TeachExcel

Make a UserForm in Excel

Tutorial: Let’s create a working UserForm in Excel.
This is a step-by-step tutorial that shows you e…

Showing a UserForm

Tutorial: How to display a UserForm in Excel and some common things you might want to do when you di…

Reset All Values in a UserForm

Tutorial: Clear or reset all values in a UserForm so that they contain only the default original val…

Make a Password Prompt Input for Excel (With Masked Input)

Tutorial:
How to make a Password input prompt window for Excel and mask the input so that you can’t…

What is a UserForm in Excel?

Tutorial: A UserForm is basically a pop-up window that you can use to create a custom interface for …

Loop Through Controls in a UserForm

Tutorial: How to loop through all controls in a UserForm; this allows you to do things like get valu…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

When we make a UserForm, it takes data as input from users. But the data provided to the form does not close itself, so it can mislead the user to input data again. So, we use two different commands to close a userform when we give the input. They use the “Unload Me” method to close a UserForm, or we can use a UserForm.Hide method.

Table of contents
  • Excel VBA Close Userform
    • How to Close UserForm in Excel VBA?
      • #1 – Close Userform Using “Unload Me” Statement in VBA
      • #2 – Close UserForm Using Hide Method in Excel VBA
    • Difference Between Unload & Hide in Excel VBA
    • Recommended Articles

UserForms are vital while getting inputs from the user as part of the VBA project. We usually design the UserForm before we present it in front of the user. Once designing the VBA UserForm completes, we need to show up the same in front of the user and require VBA coding. Similarly, to close the UserForm requires VBA coding knowledge.

This article will show you how to close the UserForm in VBA coding.

VBA Close UserForm

You are free to use this image on your website, templates, etc, Please provide us with an attribution linkArticle Link to be Hyperlinked
For eg:
Source: VBA Close UserForm (wallstreetmojo.com)

How to Close UserForm in Excel VBA?

We must keep showing the UserForm in front of the user completing the purpose of the UserForm. So, we must close the UserForm. We can close the userform by using the “Unload Me” and “UserForm.Hide” statements. Even though both are slightly different, they will eventually serve our purpose.

You can download this VBA Close UserForm Excel Template here – VBA Close UserForm Excel Template

#1 – Close Userform Using “Unload Me” Statement in VBA

For example, look at the below image of the UserForm.

VBA Close UserForm Example 1

We have named the UserForm “MyUserForm.”

If we run the UserForm, we will see the UserForm like below.

VBA Close UserForm Example 1-1

We need to fill in the required details. Once we fill in the information, if we click on the “Submit” button, it will capture the same data to the worksheet, which is visible on the left side.

VBA Close UserForm Example 1-6

Clicking the “Submit” button captured the data we had entered in the UserForm.

If you notice, we have one more button called “Cancel.” What does this do?

Before we display the UserForm, we need to configure this button. So, we will go back to the basic visual editor to configure this button.

VBA Close UserForm Example 1-7

Now, we will double-click on the “Cancel” button. It will open up the automatic VBA subprocedureSUB in VBA is a procedure which contains all the code which automatically gives the statement of end sub and the middle portion is used for coding. Sub statement can be both public and private and the name of the subprocedure is mandatory in VBA.read more like the one below.

VBA Close UserForm Example 1-2

In this procedure, we need to write the VBA codeVBA code refers to a set of instructions written by the user in the Visual Basic Applications programming language on a Visual Basic Editor (VBE) to perform a specific task.read more about what should happen if we click the “Cancel” button. When we click on this “Cancel” button, it should close the UserForm we are working on now.

So, write the code as “Unload Me.”

VBA Close UserForm Example 1-3

Code:

Private Sub CancelButton_Click()

   Unload Me

End Sub

“Unload Me” is the word we use to close the UserForm we are working on. Here the UserForm recognizes the word “Me” as the UserForm itself.

“Unload Me” can be used only on that UserForm procedure. We cannot call this statement in other modules. If called, it will show the error message as “Invalid use of Me Keyword.”

Let us run the code using the F5 key or manually now. First, we will see a blank UserForm.

VBA Close UserForm Example 1-8

Fill in the data and click on “Submit.”

VBA Close UserForm Example 1-4

Once we click the “Submit” button, it will store the values to the mentioned cells.

VBA Close UserForm Example 1-5

If the data entry is complete, we need to close the UserForm. Isn’t it?

So, click on the “Cancel” button to close the UserForm. It will close the UserForm.

#2 – Close UserForm Using Hide Method in Excel VBA

We can also close UserForm using the “Hide” method in VBA. Once again, we will double-click the “Cancel” button to see the private subprocedure.

VBA Close UserForm Example 1-3

Since we have already written the code to close the UserForm, we can see the existing code in VBA. So, now we will delete this.

We need to call the UserForm by its name to use the “Hide” method. In this case, our UserForm name is “MyUserForm.”

VBA CUF Example 1-9

After mentioning the UserForm by its name, if we put a dot (.), we can see all the properties and methods of this UserForm. Now, we will select the “Hide” method.

VBA CUF Example 2-2

Let us run the UserForm one more time. We will see a blank UserForm. Fill in the details first.

VBA CUF Example 2-3

Now, without a click on the “Submit” button, we will click the “Cancel” button, which will hide the UserForm.

Difference Between Unload & Hide in Excel VBA

It would help if you had a question about the difference between “Unload” and “Hide,” where both serve a similar purpose. There is a difference between these two. Now first, we will use the “Unload Me” statement. Look at the below image.

VBA CUF Example 3

We have entered the data in the user form but have not yet submitted it. Therefore, if we click on “Cancel,” it will unload the UserForm.

We will run the code through excel shortcut keyAn Excel shortcut is a technique of performing a manual task in a quicker way.read more F5 or manually. It will display a blank UserForm.

VBA CUF Example 3-1

Even though we had entered the data correctly by mistake, we clicked on the “Cancel” button. When the new UserForm appeared, we filled the data from scratch.

Now, we will use the “Hide” method.

VBA CUF Example 3-2

No, we will click on the “Cancel” button. It will hide the visible UserForm. But, when we re-run the macro, it will come back with the data we have already entered on the UserForm.

Like this,  we can use the “Unload” statement and “Hide” method to close the UserForm in Excel VBA.

Recommended Articles

This article has been a guide to VBA Close UserForm. Here, we learn how to close UserForm using the “Unload Me” statement and “Userform.Hide” method in Excel VBA with simple to advanced examples. Below are some useful Excel articles related to VBA: –

  • FileDialog in VBA
  • VBA InStr
  • Use of COUNTIF in VBA
  • Call Sub in VBA

Содержание

  • Применение инструментов заполнения
    • Способ 1: встроенный объект для ввода данных Excel
    • Способ 2: создание пользовательской формы
  • Вопросы и ответы

Форма в Microsoft Excel

Для облегчения ввода данных в таблицу в Excel можно воспользоваться специальными формами, которые помогут ускорить процесс заполнения табличного диапазона информацией. В Экселе имеется встроенный инструмент позволяющий производить заполнение подобным методом. Также пользователь может создать собственный вариант формы, которая будет максимально адаптирована под его потребности, применив для этого макрос. Давайте рассмотрим различные варианты использования этих полезных инструментов заполнения в Excel.

Применение инструментов заполнения

Форма заполнения представляет собой объект с полями, наименования которых соответствуют названиям колонок столбцов заполняемой таблицы. В эти поля нужно вводить данные и они тут же будут добавляться новой строкой в табличный диапазон. Форма может выступать как в виде отдельного встроенного инструмента Excel, так и располагаться непосредственно на листе в виде его диапазона, если она создана самим пользователем.

Теперь давайте рассмотрим, как пользоваться этими двумя видами инструментов.

Способ 1: встроенный объект для ввода данных Excel

Прежде всего, давайте узнаем, как применять встроенную форму для ввода данных Excel.

  1. Нужно отметить, что по умолчанию значок, который её запускает, скрыт и его нужно активировать. Для этого переходим во вкладку «Файл», а затем щелкаем по пункту «Параметры».
  2. Переход в параметры в Microsoft Excel

  3. В открывшемся окне параметров Эксель перемещаемся в раздел «Панель быстрого доступа». Большую часть окна занимает обширная область настроек. В левой её части находятся инструменты, которые могут быть добавлены на панель быстрого доступа, а в правой – уже присутствующие.

    В поле «Выбрать команды из» устанавливаем значение «Команды не на ленте». Далее из списка команд, расположенного в алфавитном порядке, находим и выделяем позицию «Форма…». Затем жмем на кнопку «Добавить».

  4. Добавление инструмента форма на панель быстрого доступа в Microsoft Excel

  5. После этого нужный нам инструмент отобразится в правой части окна. Жмем на кнопку «OK».
  6. Инструмент форма добавлен на панель быстрого доступа в Microsoft Excel

  7. Теперь данный инструмент располагается в окне Excel на панели быстрого доступа, и мы им можем воспользоваться. Он будет присутствовать при открытии любой книги данным экземпляром Excel.
  8. Инструмент форма отображается на панеле быстрого доступа в Microsoft Excel

  9. Теперь, чтобы инструмент понял, что именно ему нужно заполнять, следует оформить шапку таблицы и записать любое значение в ней. Пусть табличный массив у нас будет состоять из четырех столбцов, которые имеют названия «Наименование товара», «Количество», «Цена» и «Сумма». Вводим данные названия в произвольный горизонтальный диапазон листа.
  10. Шапка таблицы в Microsoft Excel

  11. Также, чтобы программа поняла, с каким именно диапазонам ей нужно будет работать, следует ввести любое значение в первую строку табличного массива.
  12. первое значение в таблице в Microsoft Excel

  13. После этого выделяем любую ячейку заготовки таблицы и щелкаем на панели быстрого доступа по значку «Форма…», который мы ранее активировали.
  14. Запуск формы в Microsoft Excel

  15. Итак, открывается окно указанного инструмента. Как видим, данный объект имеет поля, которые соответствуют названиям столбцов нашего табличного массива. При этом первое поле уже заполнено значением, так как мы его ввели вручную на листе.
  16. Форма открыта в Microsoft Excel

  17. Вводим значения, которые считаем нужными и в остальные поля, после чего жмем на кнопку «Добавить».
  18. Ввод значений в форму в Microsoft Excel

  19. После этого, как видим, в первую строку таблицы были автоматически перенесены введенные значения, а в форме произошел переход к следующему блоку полей, который соответствуют второй строке табличного массива.
  20. Значения перенесы в таблицу в Microsoft Excel

    Lumpics.ru

  21. Заполняем окно инструмента теми значениями, которые хотим видеть во второй строке табличной области, и снова щелкаем по кнопке «Добавить».
  22. Добавление второй строки в таблицу через форму в Microsoft Excel

  23. Как видим, значения второй строчки тоже были добавлены, причем нам даже не пришлось переставлять курсор в самой таблице.
  24. Вторая строка заполнена в таблице в Microsoft Excel

  25. Таким образом, заполняем табличный массив всеми значениями, которые хотим в неё ввести.
  26. Все значения в таблицу введены в Microsoft Excel

  27. Кроме того, при желании, можно производить навигацию по ранее введенным значениям с помощью кнопок «Назад» и «Далее» или вертикальной полосы прокрутки.
  28. Навигация по форме в Microsoft Excel

  29. При необходимости можно откорректировать любое значение в табличном массиве, изменив его в форме. Чтобы изменения отобразились на листе, после внесения их в соответствующий блок инструмента, жмем на кнопку «Добавить».
  30. Корректировка данных в форме в Microsoft Excel

  31. Как видим, изменение сразу произошло и в табличной области.
  32. Изменение произведено в таблице в Microsoft Excel

  33. Если нам нужно удалить, какую-то строчку, то через кнопки навигации или полосу прокрутки переходим к соответствующему ей блоку полей в форме. После этого щелкаем по кнопке «Удалить» в окошке инструмента.
  34. Удаление строки через форму в Microsoft Excel

  35. Открывается диалоговое окно предупреждения, в котором сообщается, что строка будет удалена. Если вы уверены в своих действиях, то жмите на кнопку «OK».
  36. Подтверждение удаления строки в Microsoft Excel

  37. Как видим, строчка была извлечена из табличного диапазона. После того, как заполнение и редактирование закончено, можно выходить из окна инструмента, нажав на кнопку «Закрыть».
  38. Закрытие формы в Microsoft Excel

  39. После этого для предания табличному массиву более наглядного визуального вида можно произвести форматирование.

Таблица отформатированв в Microsoft Excel

Способ 2: создание пользовательской формы

Кроме того, с помощью макроса и ряда других инструментов существует возможность создать собственную пользовательскую форму для заполнения табличной области. Она будет создаваться прямо на листе, и представлять собой её диапазон. С помощью данного инструмента пользователь сам сможет реализовать те возможности, которые считает нужными. По функционалу он практически ни в чем не будет уступать встроенному аналогу Excel, а кое в чем, возможно, превосходить его. Единственный недостаток состоит в том, что для каждого табличного массива придется составлять отдельную форму, а не применять один и тот же шаблон, как это возможно при использовании стандартного варианта.

  1. Как и в предыдущем способе, прежде всего, нужно составить шапку будущей таблицы на листе. Она будет состоять из пяти ячеек с именами: «№ п/п», «Наименование товара», «Количество», «Цена», «Сумма».
  2. Шапка таблицы создана в Microsoft Excel

  3. Далее нужно из нашего табличного массива сделать так называемую «умную» таблицу, с возможностью автоматического добавления строчек при заполнении соседних диапазонов или ячеек данными. Для этого выделяем шапку и, находясь во вкладке «Главная», жмем на кнопку «Форматировать как таблицу» в блоке инструментов «Стили». После этого открывается список доступных вариантов стилей. На функционал выбор одного из них никак не повлияет, поэтому выбираем просто тот вариант, который считаем более подходящим.
  4. Создание умной таблицы в Microsoft Excel

  5. Затем открывается небольшое окошко форматирования таблицы. В нем указан диапазон, который мы ранее выделили, то есть, диапазон шапки. Как правило, в данном поле заполнено все верно. Но нам следует установить галочку около параметра «Таблица с заголовками». После этого жмем на кнопку «OK».
  6. Окошко форматирования таблицы в Microsoft Excel

  7. Итак, наш диапазон отформатирован, как «умная» таблица, свидетельством чему является даже изменение визуального отображения. Как видим, помимо прочего, около каждого названия заголовка столбцов появились значки фильтрации. Их следует отключить. Для этого выделяем любую ячейку «умной» таблицы и переходим во вкладку «Данные». Там на ленте в блоке инструментов «Сортировка и фильтр» щелкаем по значку «Фильтр».
    Отключение фильтра через вкладку Данные в Microsoft Excel

    Существует ещё один вариант отключения фильтра. При этом не нужно даже будет переходить на другую вкладку, оставаясь во вкладке «Главная». После выделения ячейки табличной области на ленте в блоке настроек «Редактирование» щелкаем по значку «Сортировка и фильтр». В появившемся списке выбираем позицию «Фильтр».

  8. Отключение фильтра через вкладку Главная в Microsoft Excel

  9. Как видим, после этого действия значки фильтрации исчезли из шапки таблицы, как это и требовалось.
  10. Фильтр снят в Microsoft Excel

  11. Затем нам следует создать саму форму ввода данных. Она тоже будет представлять собой своего рода табличный массив, состоящий из двух столбцов. Наименования строк данного объекта будут соответствовать именам столбцов основной таблицы. Исключение составляют столбцы «№ п/п» и «Сумма». Они будут отсутствовать. Нумерация первого из них будет происходить при помощи макроса, а расчет значений во втором будет производиться путем применения формулы умножения количества на цену.

    Второй столбец объекта ввода данных оставим пока что пустым. Непосредственно в него позже будут вводиться значения для заполнения строк основного табличного диапазона.

  12. Форма ввода данных на листе в Microsoft Excel

  13. После этого создаем ещё одну небольшую таблицу. Она будет состоять из одного столбца и в ней разместится список товаров, которые мы будем выводить во вторую колонку основной таблицы. Для наглядности ячейку с заголовком данного перечня («Список товаров») можно залить цветом.
  14. Таблица со списком товаров в Microsoft Excel

  15. Затем выделяем первую пустую ячейку объекта ввода значений. Переходим во вкладку «Данные». Щелкаем по значку «Проверка данных», который размещен на ленте в блоке инструментов «Работа с данными».
  16. Переход к проверке данных в Microsoft Excel

  17. Запускается окно проверки вводимых данных. Кликаем по полю «Тип данных», в котором по умолчанию установлен параметр «Любое значение».
  18. Окно проверки вводимых значений в Microsoft Excel

  19. Из раскрывшихся вариантов выбираем позицию «Список».
  20. Выбор списка в окне проверки вводимых значений в Microsoft Excel

  21. Как видим, после этого окно проверки вводимых значений несколько изменило свою конфигурацию. Появилось дополнительное поле «Источник». Щелкаем по пиктограмме справа от него левой клавишей мыши.
  22. Переход к выбору источника в окне проверки вводимых значений в Microsoft Excel

  23. Затем окно проверки вводимых значений сворачивается. Выделяем курсором с зажатой левой клавишей мыши перечень данных, которые размещены на листе в дополнительной табличной области «Список товаров». После этого опять жмем на пиктограмму справа от поля, в котором появился адрес выделенного диапазона.
  24. Адрес диапазона внесен в поле в Microsoft Excel

  25. Происходит возврат к окошку проверки вводимых значений. Как видим, координаты выделенного диапазона в нем уже отображены в поле «Источник». Кликаем по кнопке «OK» внизу окна.
  26. Закрытие окна проверки вводимых значений в Microsoft Excel

  27. Теперь справа от выделенной пустой ячейки объекта ввода данных появилась пиктограмма в виде треугольника. При клике на неё открывается выпадающий список, состоящий из названий, которые подтягиваются из табличного массива «Список товаров». Произвольные данные в указанную ячейку теперь внести невозможно, а только можно выбрать из представленного списка нужную позицию. Выбираем пункт в выпадающем списке.
  28. Список со значениями в Microsoft Excel

  29. Как видим, выбранная позиция тут же отобразилась в поле «Наименование товара».
  30. Выбранная позиция отобразилась в ячейке в Microsoft Excel

  31. Далее нам нужно будет присвоить имена тем трем ячейкам формы ввода, куда мы будем вводить данные. Выделяем первую ячейку, где уже установлено в нашем случае наименование «Картофель». Далее переходим в поле наименования диапазонов. Оно расположено в левой части окна Excel на том же уровне, что и строка формул. Вводим туда произвольное название. Это может быть любое наименование на латинице, в котором нет пробелов, но лучше все-таки использовать названия близкие к решаемым данным элементом задачам. Поэтому первую ячейку, в которой содержится название товара, назовем «Name». Пишем данное наименование в поле и жмем на клавишу Enter на клавиатуре.
  32. Наименование первой ячейки в Microsoft Excel

  33. Точно таким же образом присваиваем ячейке, в которую будем вводить количество товара, имя «Volum».
  34. Наименование второй ячейки в Microsoft Excel

  35. А ячейке с ценой – «Price».
  36. Наименование третьей ячейки в Microsoft Excel

  37. После этого точно таким же образом даем название всему диапазону из вышеуказанных трех ячеек. Прежде всего, выделим, а потом дадим ему наименование в специальном поле. Пусть это будет имя «Diapason».
  38. присвоение наименования диапазону в Microsoft Excel

  39. После последнего действия обязательно сохраняем документ, чтобы названия, которые мы присвоили, смог воспринимать макрос, созданный нами в дальнейшем. Для сохранения переходим во вкладку «Файл» и кликаем по пункту «Сохранить как…».
  40. Сохранение книги в Microsoft Excel

  41. В открывшемся окне сохранения в поле «Тип файлов» выбираем значение «Книга Excel с поддержкой макросов (.xlsm)». Далее жмем на кнопку «Сохранить».
  42. Окно сохранения файла в Microsoft Excel

  43. Затем вам следует активировать работу макросов в своей версии Excel и включить вкладку «Разработчик», если вы это до сих пор не сделали. Дело в том, что обе эти функции по умолчанию в программе отключены, и их активацию нужно выполнять принудительно в окне параметров Excel.
  44. После того, как вы сделали это, переходим во вкладку «Разработчик». Кликаем по большому значку «Visual Basic», который расположен на ленте в блоке инструментов «Код».
  45. Переход в редактор макросов в Microsoft Excel

  46. Последнее действие приводит к тому, что запускается редактор макросов VBA. В области «Project», которая расположена в верхней левой части окна, выделяем имя того листа, где располагаются наши таблицы. В данном случае это «Лист 1».
  47. Редактор макросов в Microsoft Excel

  48. После этого переходим к левой нижней области окна под названием «Properties». Тут расположены настройки выделенного листа. В поле «(Name)» следует заменить кириллическое наименование («Лист1») на название, написанное на латинице. Название можно дать любое, которое вам будет удобнее, главное, чтобы в нем были исключительно символы латиницы или цифры и отсутствовали другие знаки или пробелы. Именно с этим именем будет работать макрос. Пусть в нашем случае данным названием будет «Producty», хотя вы можете выбрать и любое другое, соответствующее условиям, которые были описаны выше.

    В поле «Name» тоже можно заменить название на более удобное. Но это не обязательно. При этом допускается использование пробелов, кириллицы и любых других знаков. В отличие от предыдущего параметра, который задает наименование листа для программы, данный параметр присваивает название листу, видимое пользователю на панели ярлыков.

    Как видим, после этого автоматически изменится и наименование Листа 1 в области «Project», на то, которое мы только что задали в настройках.

  49. Изменение наименования листа в редакторе макросов в Microsoft Excel

  50. Затем переходим в центральную область окна. Именно тут нам нужно будет записать сам код макроса. Если поле редактора кода белого цвета в указанной области не отображается, как в нашем случае, то жмем на функциональную клавишу F7 и оно появится.
  51. Поле в редкторе макросов отобразилось в Microsoft Excel

  52. Теперь для конкретно нашего примера нужно записать в поле следующий код:


    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» редактора макросов. Естественно, это нужно делать только в том случае, если вы назвали лист по-другому.

    Наименование для листа в Microsoft Excel

    Теперь рассмотрим такую строку:

    nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row

    Цифра «2» в данной строчке означает второй столбец листа. Именно в этом столбце находится колонка «Наименование товара». По ней мы будем считать количество рядов. Поэтому, если в вашем случае аналогичный столбец имеет другой порядок по счету, то нужно ввести соответствующее число. Значение «End(xlUp).Offset(1, 0).Row» в любом случае оставляем без изменений.

    Второй столбец таблицы в Microsoft Excel

    Далее рассмотрим строку

    If .Range("A2").Value = "" And .Range("B2").Value = "" Then

    «A2» — это координаты первой ячейки, в которой будет выводиться нумерация строк. «B2» — это координаты первой ячейки, по которой будет производиться вывод данных («Наименование товара»). Если они у вас отличаются, то введите вместо этих координат свои данные.

    Две первые ячейки таблицы с данными в Microsoft Excel

    Переходим к строке

    Producty.Range("Name").Copy

    В ней параметр «Name» означат имя, которое мы присвоили полю «Наименование товара» в форме ввода.

    Имя поля наименования товара в форме ввода в Microsoft Excel

    В строках


    .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» означают названия, которые мы присвоили полям «Количество» и «Цена» в той же форме ввода.

    Наименование полей количество и цена в Microsoft Excel

    В этих же строках, которые мы указали выше, цифры «2», «3», «4», «5» означают номера столбцов на листе Excel, соответствующих колонкам «Наименование товара», «Количество», «Цена» и «Сумма». Поэтому, если в вашем случае таблица сдвинута, то нужно указать соответствующие номера столбцов. Если столбцов больше, то по аналогии нужно добавить её строки в код, если меньше – то убрать лишние.

    Колонки в таблице в Microsoft Excel

    В строке производится умножение количества товара на его цену:

    .Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value

    Результат, как видим из синтаксиса записи, будет выводиться в пятый столбец листа Excel.

    Колонка для вывода суммы в Microsoft Excel

    В этом выражении выполняется автоматическая нумерация строк:


    If nextRow > 2 Then
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A" & nextRow)
    Range("A2:A" & nextRow).Select
    End If

    Все значения «A2» означают адрес первой ячейки, где будет производиться нумерация, а координаты « — адрес всего столбца с нумерацией. Проверьте, где именно будет выводиться нумерация в вашей таблице и измените данные координаты в коде, если это необходимо.

    Столбец с нумерацией в Microsoft Excel

    В строке производится очистка диапазона формы ввода данных после того, как информация из неё была перенесена в таблицу:

    .Range("Diapason").ClearContents

    Не трудно догадаться, что («Diapason») означает наименование того диапазона, который мы ранее присвоили полям для ввода данных. Если вы дали им другое наименование, то в этой строке должно быть вставлено именно оно.

    Наименование полей для ввода данных в Microsoft Excel

    Дальнейшая часть кода универсальна и во всех случаях будет вноситься без изменений.

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

  53. Код в редакторе макросов в Microsoft Excel

  54. После этого возвращаемся на лист Excel. Теперь нам следует разместить кнопку, которая будет активировать созданный макрос. Для этого переходим во вкладку «Разработчик». В блоке настроек «Элементы управления» на ленте кликаем по кнопке «Вставить». Открывается перечень инструментов. В группе инструментов «Элементы управления формы» выбираем самый первый – «Кнопка».
  55. Выбор элемента управления в Microsoft Excel

  56. Затем с зажатой левой клавишей мыши обводим курсором область, где хотим разместить кнопку запуска макроса, который будет производить перенос данных из формы в таблицу.
  57. Указание границ кнопки в Microsoft Excel

  58. После того, как область обведена, отпускаем клавишу мыши. Затем автоматически запускается окно назначения макроса объекту. Если в вашей книге применяется несколько макросов, то выбираем из списка название того, который мы выше создавали. У нас он называется «DataEntryForm». Но в данном случае макрос один, поэтому просто выбираем его и жмем на кнопку «OK» внизу окна.
  59. Окно назначения макроса объекту в Microsoft Excel

  60. После этого можно переименовать кнопку, как вы захотите, просто выделив её текущее название.
    Переименовывание кнопки в Microsoft Excel

    В нашем случае, например, логично будет дать ей имя «Добавить». Переименовываем и кликаем мышкой по любой свободной ячейке листа.

  61. Кнопка переименована в Microsoft Excel

  62. Итак, наша форма полностью готова. Проверим, как она работает. Вводим в её поля необходимые значения и жмем на кнопку «Добавить».
  63. Ввод данных в форму в Microsoft Excel

  64. Как видим, значения перемещены в таблицу, строке автоматически присвоен номер, сумма посчитана, поля формы очищены.
  65. Значения первой строки внесены в таблицу в Microsoft Excel

  66. Повторно заполняем форму и жмем на кнопку «Добавить».
  67. Повторный ввод данных в форму в Microsoft Excel

  68. Как видим, и вторая строка также добавлена в табличный массив. Это означает, что инструмент работает.

Вторая строка добавлена в таблицу в Microsoft Excel

Читайте также:
Как создать макрос в Excel
Как создать кнопку в Excel

В Экселе существует два способа применения формы заполнения данными: встроенная и пользовательская. Применение встроенного варианта требует минимум усилий от пользователя. Его всегда можно запустить, добавив соответствующий значок на панель быстрого доступа. Пользовательскую форму нужно создавать самому, но если вы хорошо разбираетесь в коде VBA, то сможете сделать этот инструмент максимально гибким и подходящим под ваши нужды.

Понравилась статья? Поделить с друзьями:
  • Закрыть пользовательскую форму vba excel
  • Закрыть книгу не закрывая сам excel
  • Закрыть книгу excel клавиши
  • Закрыть книгу excel vba если она открыта
  • Закрыть документ word горячие клавиши