Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Нужен макрос, который будет обнулять определенные ячейки - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Нужен макрос, который будет обнулять определенные ячейки (Макросы/Sub)
Нужен макрос, который будет обнулять определенные ячейки
DEAD_MaRoZ Дата: Воскресенье, 03.04.2016, 07:47 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Сейчас столкнулся с новой проблемой - мне как-то нужно очищать форму - несколько сотен ячеек, раскиданных по всему листу, нужно обнулить. Сейчас они у меня выделены другим цветом и фоном, могу узнать диапазоны, выделив все с помощью Ctrl, а вот что дальше делать с ними - без понятия. Может есть мысли? Выкладываю кусочек проекта, нужна кнопочка, при нажатии которой выделенные красным шрифтом и желтым фоном будут обнуляться
К сообщению приложен файл: 3043941.xlsx(34Kb)
 
Ответить
СообщениеСейчас столкнулся с новой проблемой - мне как-то нужно очищать форму - несколько сотен ячеек, раскиданных по всему листу, нужно обнулить. Сейчас они у меня выделены другим цветом и фоном, могу узнать диапазоны, выделив все с помощью Ctrl, а вот что дальше делать с ними - без понятия. Может есть мысли? Выкладываю кусочек проекта, нужна кнопочка, при нажатии которой выделенные красным шрифтом и желтым фоном будут обнуляться

Автор - DEAD_MaRoZ
Дата добавления - 03.04.2016 в 07:47
Nic70y Дата: Воскресенье, 03.04.2016, 08:53 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3493
Репутация: 724 ±
Замечаний: 0% ±

Excel 2013
включить рекордер
выделив все с помощью Ctrl
нажать Delete, выключить рекордер - макрос готов, вставляем кнопочку, привязываем к ней макрос,
файл сохранить как xlsm


ЯД(poison) 41001841029809
+7 978 049 98 74 (мтс)


Сообщение отредактировал Nic70y - Воскресенье, 03.04.2016, 08:54
 
Ответить
Сообщениевключить рекордер
выделив все с помощью Ctrl
нажать Delete, выключить рекордер - макрос готов, вставляем кнопочку, привязываем к ней макрос,
файл сохранить как xlsm

Автор - Nic70y
Дата добавления - 03.04.2016 в 08:53
Roman777 Дата: Воскресенье, 03.04.2016, 08:54 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
DEAD_MaRoZ, для макроса лежит не в той ветке форума.
А так предлагаю Вам такой:
[vba]
Код
Sub Ред_по_текст_заливке()
Dim c1 As Range
For Each c1 In ActiveSheet.UsedRange.Cells
  If c1.Interior.ColorIndex = 19 And c1.Font.ColorIndex = 3 Then
     c1 = 0
  End If
Next c1
End Sub
[/vba]
А чтобы определить индексы текста и заливки, можно использовать:

[vba]
Код
Sub текст_заливка_Величины()
Dim c As Range, c1 As Range
Set c = Application.InputBox("Выделите ячейку," & _
"куда можно вывести данные о формате (цвет заливки и цвет шрифта) интересующей Вас ячейки", "ячейка для вывода данных", Type:=8)
Set c1 = Application.InputBox("Выделите интересующую Вас ячейку (для определения её формата)", "интересующая ячейка", Type:=8)

c = "Индекс цвета заливки: " & c1.Interior.ColorIndex
c.Offset(1) = "Индекс цвета текста: " & c1.Font.ColorIndex

End Sub
[/vba]
К сообщению приложен файл: 3043941_.rar(22Kb)


Много чего не знаю!!!!
 
Ответить
СообщениеDEAD_MaRoZ, для макроса лежит не в той ветке форума.
А так предлагаю Вам такой:
[vba]
Код
Sub Ред_по_текст_заливке()
Dim c1 As Range
For Each c1 In ActiveSheet.UsedRange.Cells
  If c1.Interior.ColorIndex = 19 And c1.Font.ColorIndex = 3 Then
     c1 = 0
  End If
Next c1
End Sub
[/vba]
А чтобы определить индексы текста и заливки, можно использовать:

[vba]
Код
Sub текст_заливка_Величины()
Dim c As Range, c1 As Range
Set c = Application.InputBox("Выделите ячейку," & _
"куда можно вывести данные о формате (цвет заливки и цвет шрифта) интересующей Вас ячейки", "ячейка для вывода данных", Type:=8)
Set c1 = Application.InputBox("Выделите интересующую Вас ячейку (для определения её формата)", "интересующая ячейка", Type:=8)

c = "Индекс цвета заливки: " & c1.Interior.ColorIndex
c.Offset(1) = "Индекс цвета текста: " & c1.Font.ColorIndex

End Sub
[/vba]

Автор - Roman777
Дата добавления - 03.04.2016 в 08:54
Nic70y Дата: Воскресенье, 03.04.2016, 08:57 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3493
Репутация: 724 ±
Замечаний: 0% ±

Excel 2013
Roman777, я думаю, что это только
Сейчас они у меня выделены другим цветом и фоном


ЯД(poison) 41001841029809
+7 978 049 98 74 (мтс)
 
Ответить
СообщениеRoman777, я думаю, что это только
Сейчас они у меня выделены другим цветом и фоном

Автор - Nic70y
Дата добавления - 03.04.2016 в 08:57
Roman777 Дата: Воскресенье, 03.04.2016, 09:05 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Nic70y, если так, то Ваш макрос проще гораздо =)


Много чего не знаю!!!!
 
Ответить
СообщениеNic70y, если так, то Ваш макрос проще гораздо =)

Автор - Roman777
Дата добавления - 03.04.2016 в 09:05
DEAD_MaRoZ Дата: Воскресенье, 03.04.2016, 09:15 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо. Записал макрос кнопочкой, выкинул с кода кучу мусора и глупых телодвижений и получился примитивный код

[vba]
Код
Sub Обнулить_таблицы()
Union(Range("A159:A160,F159:F160,E161,B170:B173,A3:E16,E17,A21:F34,E35,A39:A52,C39:D52,E53,F39:F52,I39:I52,A57:A70,C57:D70,E71,F57:F70" _
), Range("A153:A154,F153:F154,E155,A75:F88,E89,A93:F106,E107,A111:F124,E125,F129:F130,A129:A130,E131,A135:A136,F135:F136,E137,A141:A142,F141:F142,E143,A147:A148,F147:F148,E149,I57:I70")).Select
Selection.FormulaR1C1 = "0"
Range("A2").Activate
End Sub
[/vba]
[moder]Оформляйте коды тегами (кнопка #)[/moder]


Сообщение отредактировал Pelena - Воскресенье, 03.04.2016, 09:39
 
Ответить
СообщениеСпасибо. Записал макрос кнопочкой, выкинул с кода кучу мусора и глупых телодвижений и получился примитивный код

[vba]
Код
Sub Обнулить_таблицы()
Union(Range("A159:A160,F159:F160,E161,B170:B173,A3:E16,E17,A21:F34,E35,A39:A52,C39:D52,E53,F39:F52,I39:I52,A57:A70,C57:D70,E71,F57:F70" _
), Range("A153:A154,F153:F154,E155,A75:F88,E89,A93:F106,E107,A111:F124,E125,F129:F130,A129:A130,E131,A135:A136,F135:F136,E137,A141:A142,F141:F142,E143,A147:A148,F147:F148,E149,I57:I70")).Select
Selection.FormulaR1C1 = "0"
Range("A2").Activate
End Sub
[/vba]
[moder]Оформляйте коды тегами (кнопка #)[/moder]

Автор - DEAD_MaRoZ
Дата добавления - 03.04.2016 в 09:15
gling Дата: Воскресенье, 03.04.2016, 09:26 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1352
Репутация: 326 ±
Замечаний: 0% ±

2010
Если нужно обнулять одни и те же ячейки, то ваш код хорош. Но если выборочно можно оставить только часть кода. [vba]
Код
Selection.FormulaR1C1 = "0"
[/vba]
 
Ответить
СообщениеЕсли нужно обнулять одни и те же ячейки, то ваш код хорош. Но если выборочно можно оставить только часть кода. [vba]
Код
Selection.FormulaR1C1 = "0"
[/vba]

Автор - gling
Дата добавления - 03.04.2016 в 09:26
Nic70y Дата: Воскресенье, 03.04.2016, 09:32 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3493
Репутация: 724 ±
Замечаний: 0% ±

Excel 2013
ну тогда уж[vba]
Код
Selection = 0
[/vba]по сооб. №6, [vba]
Код
.Select
[/vba] можно заменить на = 0, а [vba]
Код
Selection.FormulaR1C1 = "0"
[/vba] выбросить


ЯД(poison) 41001841029809
+7 978 049 98 74 (мтс)


Сообщение отредактировал Nic70y - Воскресенье, 03.04.2016, 09:33
 
Ответить
Сообщениену тогда уж[vba]
Код
Selection = 0
[/vba]по сооб. №6, [vba]
Код
.Select
[/vba] можно заменить на = 0, а [vba]
Код
Selection.FormulaR1C1 = "0"
[/vba] выбросить

Автор - Nic70y
Дата добавления - 03.04.2016 в 09:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Нужен макрос, который будет обнулять определенные ячейки (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!