Страницы: 1
RSS
Флажок, Выполнение макроса в случаи если флажок активный, другого когда не активный
 
Добрый день
Прошу помочь разобраться с элементом управления форм флажок
У меня есть готовый макрос который выполняет очистку данных конкретного диапазона и вставка новых 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_Mamedov - 16.02.2013 18:21:23
 
Не лучше ли создать на форме две кнопки "ОЧИСТИТЬ" и "КОПИРОВАТЬ" и привязать макросы к ним?
Согласие есть продукт при полном непротивлении сторон
 
у меня сейчас так все и работает это так не удобно, в моем случаи диапазонов очень много и по итогу под каждый мне нужно написать две кнопки одна чистит другая вставляет (((
 
Пример приложите
Согласие есть продукт при полном непротивлении сторон
 
Прикрепляю пример сокращенный
В нем есть 3 кнопки на внесения и чистки и один чистка "DEL"
мне бы хотелось кнопки "день 1/2/3 и тд" заменить на флажки
 
Цитата
Есть возможность разбить его на два этапа при помощи флажка следующим образом

Код
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_Mamedov - 16.02.2013 20:18:57
 
Вставьте на лист CheckBox из ActiveX и поставьте этот макрос

Private Sub CheckBox1_Click()
If CheckBox1 = True Then
   [I18:J19].Clear
Else
   [A2:B3].Copy [I18]
End If
End Sub
 
Цитата
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
 
Он написал то-же самое, но очень много. Краткость сестра Excel.
А CheckBox выполняет всего 2 действия, True и False.
 
Цитата
magrifa пишет:
Он написал то-же самое, но очень много. Краткость сестра Excel.
А CheckBox выполняет всего 2 действия, True и False.
Просто Ваш способ подходит если значения не находятся с помощью формул а у меня там формулы и он переносит не значения  а формулы
 
Вы сказали, что есть готовый макрос. Вот в него и вставьте, там где нужно ветвление в зависимости от флажка.
Где флажок? на листе, на форме?  Где макрос - в модуле, в коде формы, на листе?
Если ваш флажок называется CheckBox1, то  Select Case CheckBox1
 
В вашем примере нет формул, только цвет. Вас не устраивает цвет.
 
Цитата
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
И он не работает , он только чистит когда делаю активным его он чистит диапазон и когда не активный тоже
посмотрите пожалуйста пример там все наглядно
 
Цитата
magrifa пишет:
В вашем примере нет формул, только цвет. Вас не устраивает цвет.

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

... то что записал макрорекордер можно подчищать.
Код
Range("I14:J15").Select Selection.ClearContents 

то же что
Код
Range("I14:J15").ClearContents 
Изменено: Sergei_A - 16.02.2013 22:24:16
 
Исполнение вашего "ToggleButton" идеально подходит в моем случаи  спасибо Вам большое
 
Marat_Mamedov,  Успехов!
Страницы: 1
Читают тему
Наверх