Макросы для флажков в excel

 

Добрый день
Прошу помочь разобраться с элементом управления форм флажок
У меня есть готовый макрос который выполняет очистку данных конкретного диапазона и вставка новых Range(«I14:J15»  ; )  .Select
Selection.ClearContents
Range(«A2:B3»  ; )  .Select
Selection.Copy
Range(«I14»  ; )  .Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Есть возможность разбить его на два этапа при помощи флажка следующим образом
когда он не активен
Range(«I14:J15»  ; )  .Select
Selection.ClearContents
когда активен
Range(«A2:B3»  ; )  .Select
Selection.Copy
Range(«I14»  ; )  .Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Изменено: Marat_Mamedov16.02.2013 18:21:23

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

Не лучше ли создать на форме две кнопки «ОЧИСТИТЬ» и «КОПИРОВАТЬ» и привязать макросы к ним?

Согласие есть продукт при полном непротивлении сторон.

 

у меня сейчас так все и работает это так не удобно, в моем случаи диапазонов очень много и по итогу под каждый мне нужно написать две кнопки одна чистит другая вставляет (((

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

Пример приложите

Согласие есть продукт при полном непротивлении сторон.

 

Прикрепляю пример сокращенный
В нем есть 3 кнопки на внесения и чистки и один чистка «DEL»
мне бы хотелось кнопки «день 1/2/3 и тд» заменить на флажки

Прикрепленные файлы

  • пример.rar (75.24 КБ)

 

Sergei_A

Пользователь

Сообщений: 443
Регистрация: 05.01.2013

#6

16.02.2013 19:29:35

Цитата
Есть возможность разбить его на два этапа при помощи флажка следующим образом

Код
Select Case ИмяФлажка 
Case False 'когда он не активен 
   Range("I14:J15" ; ) .Select 
   Selection.ClearContents 
Case True 'когда активен 
   Range("A2:B3" ; ) .Select 
   Selection.Copy 
   Range("I14" ; ) .Select 
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
   :=False, Transpose:=False
End Select

Пример не смотрел

 

Спасибо за код… помогите понять как теперь его прицепить к флажку
при помощи макроса или другим способом
я пробую таки образом но он не работает когда я к флажку «test» привязываю макрос 2
Sub Макрос2()


Select Case test
Case False
Range(«I14:J15») .Select
Selection.ClearContents
Case True
Range(«A2:B3») .Select
Selection.Copy
Range(«I14») .Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Select
End Sub

Изменено: Marat_Mamedov16.02.2013 20:18:57

 

magrifa

Пользователь

Сообщений: 108
Регистрация: 01.01.1970

Вставьте на лист CheckBox из ActiveX и поставьте этот макрос

Private Sub CheckBox1_Click()
If CheckBox1 = True Then
   [I18:J19].Clear
Else
   [A2:B3].Copy [I18]
End If
End Sub

 

Marat_Mamedov

Пользователь

Сообщений: 213
Регистрация: 16.02.2013

#9

16.02.2013 20:41:45

Цитата
magrifa пишет:
Вставьте на лист CheckBox из ActiveX и поставьте этот макрос

Спасибо большое работает
Но хотелось бы понять как на обычны элемент флажок прикрепить этот код который написал «Sergei_A»
Select Case ИмяФлажка
Case False ‘когда он не активен
  Range(«I14:J15» ; ) .Select
  Selection.ClearContents
Case True ‘когда активен
  Range(«A2:B3» ; ) .Select
  Selection.Copy
  Range(«I14» ; ) .Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  :=False, Transpose:=False
End Select

 

magrifa

Пользователь

Сообщений: 108
Регистрация: 01.01.1970

Он написал то-же самое, но очень много. Краткость сестра Excel.
А CheckBox выполняет всего 2 действия, True и False.

 

Marat_Mamedov

Пользователь

Сообщений: 213
Регистрация: 16.02.2013

#11

16.02.2013 20:55:26

Цитата
magrifa пишет:
Он написал то-же самое, но очень много. Краткость сестра Excel.
А CheckBox выполняет всего 2 действия, True и False.

Просто Ваш способ подходит если значения не находятся с помощью формул а у меня там формулы и он переносит не значения  а формулы

 

Sergei_A

Пользователь

Сообщений: 443
Регистрация: 05.01.2013

Вы сказали, что есть готовый макрос. Вот в него и вставьте, там где нужно ветвление в зависимости от флажка.
Где флажок? на листе, на форме?  Где макрос — в модуле, в коде формы, на листе?
Если ваш флажок называется CheckBox1, то  Select Case CheckBox1

 

magrifa

Пользователь

Сообщений: 108
Регистрация: 01.01.1970

В вашем примере нет формул, только цвет. Вас не устраивает цвет.

 

Marat_Mamedov

Пользователь

Сообщений: 213
Регистрация: 16.02.2013

#14

16.02.2013 21:44:34

Цитата
Sergei_A пишет:
Вы сказали, что есть готовый макрос. Вот в него и вставьте, там где нужно ветвление в зависимости от флажка.
Где флажок? на листе, на форме?  Где макрос — в модуле, в коде формы, на листе?
Если ваш флажок называется CheckBox1, то  Select Case CheckBox1

Флажок на листе назвал его тест
я так понимаю к нему нужно назначит макрос я беру уже существующий макрос «Макрос4» (пустой использовал функцию запись макросов ) и меня согласно вашего когда:
вот то что у меня получилось:
Sub Макрос4()
   Select Case test
   Case False
   Range(«I14:J15»).Select
   Selection.ClearContents
   Case True
   Range(«A2:B3»).Select
   Selection.Copy
   Range(«I14»).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   End Select
End Sub
И он не работает , он только чистит когда делаю активным его он чистит диапазон и когда не активный тоже
посмотрите пожалуйста пример там все наглядно

Прикрепленные файлы

  • пример.xlsm (35.75 КБ)

 

Marat_Mamedov

Пользователь

Сообщений: 213
Регистрация: 16.02.2013

#15

16.02.2013 21:47:49

Цитата
magrifa пишет:
В вашем примере нет формул, только цвет. Вас не устраивает цвет.

Дело не в цвете а в значении ,  просто в том коде которыйя указал в самом начале
Range(«I14»).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   End Select
вставляю именно значение ячеек (результат формул).

 

Sergei_A

Пользователь

Сообщений: 443
Регистрация: 05.01.2013

#16

16.02.2013 22:03:10

Посмотрел Ваш пример
Вам скорее нужен не Checkbox а ToggleButton
Посмотрите

… то что записал макрорекордер можно подчищать.

Код
Range("I14:J15").Select Selection.ClearContents 

то же что

Код
Range("I14:J15").ClearContents 

Прикрепленные файлы

  • пример.rar (80.72 КБ)

Изменено: Sergei_A16.02.2013 22:24:16

 

Исполнение вашего «ToggleButton» идеально подходит в моем случаи  спасибо Вам большое

 

Sergei_A

Пользователь

Сообщений: 443
Регистрация: 05.01.2013

#18

16.02.2013 22:21:45

Marat_Mamedov,  Успехов!

Одним из первых вопросов, возникающих у начинающих пользователей программы «Эксель», является вопрос о том,  как в документе (таблице) создать кнопку (или другой активный элемент) запускающую написанный макрос.

Ведь пользоваться кнопкой для запуска макроса гораздо удобнее и практичнее, чем каждый раз заходить в меню разработчика и запускать его через список макросов (Alt+F8).

Рассмотрим пошагово, как назначить нужный макрос(последовательность действий) для активной кнопки.

Для начала следует создать саму кнопку:

Макро VBA Excel

Отложим запись макроса .

    Кликнув правой кнопкой мыши по активному объекту, Вы можете выбрать его формат – цвет, стиль и размер текста, заливку и так далее.изменить текст кнопки

    Так же можно поменять надпись на кнопке.измененная кнопка с макросом

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

    Для этого следует записать макрос во вкладке макроси присвоить уже готовый макрос кнопке кликнув по ней ПКМи выбрав «Назначить макрос…»

    или

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

      Аналогичным образом можно присвоить макрос и для других активных элементов, например, чекбоксов (флажков/галочек).

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

      UserForm.CheckBox – это элемент управления пользовательской формы, предназначенный для передачи в код VBA информации о выборе или невыборе его пользователем и возвращающий одно из двух значений: False (галочки нет) или True (галочка установлена).

      Элемент управления CheckBox на пользовательской форме

      Элемент управления CheckBox состоит из флажка и надписи. В VBA Excel флажок имеет квадратную форму, надпись расположена справа от него. Надпись реагирует на нажатие мышью так же, как и флажок.

      По тексту статьи значение слова «Флажок» в кавычках равно значению слова CheckBox, флажок без кавычек обозначает квадрат с галочкой или без нее.

      Кроме состояний «выбран» или «не выбран», существует и третье состояние флажка: серая галочка на сером фоне. Получить такое состояние на пользовательской форме можно путем присвоения свойству CheckBox.Value значения Null.

      Три состояния элемента управления CheckBox

      Надписи флажков выведены с помощью следующего кода VBA Excel:

      Private Sub UserForm_Initialize()

      CheckBox1.Value = False

      CheckBox1.Caption = «CheckBox1.Value = « _

      & CheckBox1.Value

      CheckBox2.Value = Null

      CheckBox2.Caption = «CheckBox2.Value = « _

      & CheckBox2.Value

      CheckBox3.Value = True

      CheckBox3.Caption = «CheckBox3.Value = « _

      & CheckBox3.Value

      End Sub

      Интересно было посмотреть, какое значение отобразится в надписи элемента управления CheckBox2. Обратите внимание на то, что если строку CheckBox2.Caption = "CheckBox2.Value = " & CheckBox2.Value заменить на CheckBox2.Caption = CheckBox2.Value, будет сгенерирована ошибка, так как в VBA не существует текстового отображения значения Null.

      Эксперименты показали, что отобразить «Флажок» в третьем состоянии можно также с помощью присвоения свойству CheckBox.Value значения «пустая строка».

      Элемент управления CheckBox может использоваться на пользовательской форме для

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

      Если требуется выбор только одной опции из группы предложенных, для этой цели в VBA Excel используется набор элементов управления OptionButton.

      Свойства элемента «Флажок»

      Свойство Описание
      AutoSize Автоподбор размера «Флажка». True – размер автоматически подстраивается под длину набираемой строки. False – размер элемента управления определяется свойствами Width и Height.
      ControlSource Ссылка на источник данных для свойства Value.
      ControlTipText Текст всплывающей подсказки при наведении курсора на CheckBox.
      Enabled Возможность взаимодействия пользователя с элементом управления. True – взаимодействие включено, False – отключено (цвет флажка и надписи становится серым).
      Font Шрифт, начертание и размер текста надписи.
      Height Высота элемента управления.
      Left Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления.
      Picture Добавление изображения вместо текста надписи или дополнительно к нему.
      PicturePosition Выравнивание изображения и текста в поле надписи.
      TabIndex Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0.
      TextAlign* Выравнивание текста надписи: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю.
      Top Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления.
      TripleState Определяет, может ли пользователь делать выбор между двумя состояниями «Флажка» или между тремя, включая серую галочку на сером квадрате. True – доступны три состояния, False – доступны два состояния.
      Value Значение «Флажка»: True – галочка установлена, False – галочка не установлена, Null – серая галочка на сером квадрате.
      Visible Видимость элемента CheckBox. True – элемент отображается на пользовательской форме, False – скрыт.
      Width Ширина элемента управления.
      WordWrap Перенос текста надписи на новую строку при достижении границы ее поля. True – перенос включен, False – перенос выключен.

      * При загруженной в поле надписи картинке свойство TextAlign не работает, следует использовать свойство PicturePosition.

      Свойство по умолчанию для элемента CheckBox – Value, основное событие – Click.

      В таблице перечислены только основные, часто используемые свойства «Флажка». Все доступные свойства отображены в окне Properties элемента управления CheckBox.

      Примеры использования CheckBox

      Пример 1
      Отображение элемента управления CheckBox на пользовательской форме с параметрами, заданными в коде VBA Excel:

      Private Sub UserForm_Initialize()

        With CheckBox1

          .Caption = «Нажмите на меня»

          .ControlSource = «A1»

          .Value = False

          .Left = 12

          .Top = 12

        End With

      End Sub

      Элемент управления CheckBox, привязанный к ячейке

      Размещается данная процедура в модуле пользовательской формы.

      Если несколько элементов управления CheckBox привязать к одной ячейке, то при клике на одном из них, менять свое состояние будут и все остальные.

      Пример 2
      Смена надписи «Флажка» в зависимости от его состояния:

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      ‘Устанавливаем первоначальные

      ‘значения свойств «Флажка»

      Private Sub UserForm_Initialize()

        With CheckBox1

          .Caption = «Поставьте галочку»

          .Value = False

          .TripleState = False

        End With

      End Sub

      ‘Меняем надпись «Флажка» при

      ‘смене параметра CheckBox1.Value

      Private Sub CheckBox1_Change()

        If CheckBox1.Value Then

          CheckBox1.Caption = «Снимите галочку»

        Else

          CheckBox1.Caption = «Поставьте галочку»

        End If

      End Sub

      Пример 3
      Скрытие и отображение, изменение доступности других элементов управления с помощью «Флажка».

      Для реализации этого примера необходимо создать пользовательскую форму с четырьмя элементами управления: CheckBox1, TextBox1, TextBox2 и CommandButton1. А в модуле формы разместить следующий код:

      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

      ‘Устанавливаем первоначальные

      ‘значения свойств элементов управления

      Private Sub UserForm_Initialize()

        With CheckBox1

          .Caption = «Хочу сложить два числа»

          .Value = False

          .TripleState = False

        End With

        With TextBox1

          .Enabled = False

          .Text = «Слагаемое 1»

        End With

        With TextBox2

          .Enabled = False

          .Text = «Слагаемое 2»

        End With

        With CommandButton1

          .Caption = «Сложить»

          .Visible = False

        End With

      End Sub

      ‘Меняем свойства других элементов

      ‘управления при смене состояния «Флажка»

      Private Sub CheckBox1_Change()

        If CheckBox1.Value Then

          TextBox1.Enabled = True

          TextBox2.Enabled = True

          CommandButton1.Visible = True

        Else

          TextBox1.Enabled = False

          TextBox2.Enabled = False

          CommandButton1.Visible = False

        End If

      End Sub

      ‘Складываем два числа

      Private Sub CommandButton1_Click()

        If IsNumeric(TextBox1) And IsNumeric(TextBox2) Then

          MsgBox TextBox1 & » + « & TextBox2 & » = « _

          & CDbl(TextBox1) + CDbl(TextBox2)

        End If

      End Sub

      Форма открывается с недоступными для пользователя текстовыми полями и скрытой кнопкой «Сложить»:

      После установки галочки на флажке текстовые поля становятся доступными для редактирования, и отображается кнопка «Сложить»:


      This tutorial goes beyond other simple check-mark tutorials. Here, I’ll show you 3 methods to insert a check-mark into Excel, including using Macros/VBA and a UDF, or User Defined Function.

      Sections:

      Basic Method to Insert a Check Mark into Excel

      VBA Method to Insert a Check Mark into Excel

      UDF that Inserts a Check Mark into Excel

      Notes

      Basic Method to Insert a Check Mark into Excel

      This is the most basic way you can enter a check-mark, but it’s kind of time consuming.

      1. Select the cell where you want the check-mark to go.
      2. Go to the Insert tab and click the Symbols button and then Symbol

      3. In the window that opens, go to the Symbols tab and select the Wingdings font from the Font: drop down at the top.
      4. Scroll down to the bottom and choose the check-mark symbol:
      5. Hit the Insert button once and then hit the Cancel button and you will now see the check-mark in Excel.

      Repeatedly Enter the Check Mark with Ease

      Now that you have a check-mark, you may want to enter it again and again. To do that, select the cell with the mark and hit Ctrl + C and then go to where you want it, select that cell, and hit Ctrl + V. Simple copy/paste.

      VBA Method to Insert a Check Mark into Excel

      To enter a check-mark using VBA, it’s actually very simple.

      1. Go to the VBA Editor window, Alt + F11, then to Insert > Module.
      2. Paste this code into your macro:

        ActiveCell.Value = ChrW(&H2713)

      3. The final macro, in its simplest form can look like this:
      4. Go back to Excel (Alt + F11) and select a cell, hit Alt + F8, select the macro, hit Run and you have another check-mark in Excel.

      UDF that Inserts a Check Mark into Excel

      This allows you to use a simple function that you create to add a check mark to Excel.

      1. Go to the VBA Editor window (Alt + F11) and add a module (Insert >Module) and then add this code:

        Function CheckMarkAdd()

           CheckMarkAdd = ChrW(&H2713)

         End Function

      2. Go back to Excel, Alt + F11, and go to the desired cell and type your new function =CheckMarkAdd()

      3. Hit Enter and that’s it!

      Using this method, you only ever have to remember the UDF that you created and, in less than a second, you can type it in, hit Enter, and you have your check-mark.

      This is my favorite method to use!

      Notes

      All of the above methods come in handy depending on the situation. My person favorite is the UDF method because I love UDFs and it’s just so simple to use.

      Download the sample workbook attached to this tutorial to get all of the code used here and try it yourself.

      Subscribe for Weekly Tutorials

      BONUS: subscribe now to download our Top Tutorials Ebook!

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

      Установите все флажки, используя один флажок с кодом VBA


      стрелка синий правый пузырь Установите все флажки, используя один флажок с кодом VBA

      Чтобы установить все флажки на листе с помощью единого основного флажка, выполните следующие действия:

      1. Во-первых, вы можете добавить флажок и назвать его Выбрать все, это будет ваш главный флажок, см. снимок экрана:

      документ-выбрать-все-флажки-1

      2. Затем удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

      3. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.

      Код VBA: установите все флажки с помощью одного флажка

      Sub SelectAll_Click()
      'Update by Extendoffice
      Dim xCheckBox As CheckBox
      For Each xCheckBox In Application.ActiveSheet.CheckBoxes
          If xCheckBox.Name <> Application.ActiveSheet.CheckBoxes("Check Box 1").Name Then
              xCheckBox.Value = Application.ActiveSheet.CheckBoxes("Check Box 1").Value
          End If
      Next
      End Sub
      

      4. Затем сохраните и закройте этот код, вернитесь на рабочий лист, щелкните правой кнопкой мыши Выбрать все флажок и выберите Назначить макрос из контекстного меню см. снимок экрана:

      документ-выбрать-все-флажки-2

      5. В Назначить макрос диалоговое окно, нажмите SelectAll_Click вариант в Имя макроса список, а затем щелкните OK кнопку, чтобы закрыть это диалоговое окно, см. снимок экрана:

      документ-выбрать-все-флажки-3

      6. И теперь, когда вы устанавливаете основной флажок «Выбрать все», все остальные флажки текущего рабочего листа проверяются сразу.

      документ-выбрать-все-флажки-4

      Внимание: В приведенном выше коде флажок 1 — это имя вашего основного флажка, его можно просмотреть в Имя Box щелкнув его правой кнопкой мыши, и измените его по своему усмотрению.

      документ-выбрать-все-флажки-5


      Статьи по теме:

      Как связать флажок с несколькими ячейками в Excel?

      Как быстро вставить несколько флажков в Excel?

      Как быстро удалить несколько флажков в Excel?


      Лучшие инструменты для работы в офисе

      Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

      • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
      • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
      • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
      • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
      • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
      • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
      • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
      • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
      • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

      вкладка kte 201905


      Вкладка Office: интерфейс с вкладками в Office и упрощение работы

      • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
      • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
      • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

      офисный дно

      Комментарии (2)


      Оценок пока нет. Оцените первым!

      Понравилась статья? Поделить с друзьями:
    • Макросы для фильтров в excel
    • Макросы для удаления строки в excel
    • Макросы для удаления пробелов в excel
    • Макросы для таблиц excel скачать
    • Макросы для сохранения в word