Страницы: 1
RSS
макрос для создания колонок с формулой
 
Помогите пожалуйста разобраться с данной таблицей, можно ли создать такие макросы? в документе подробные вопросы, СПАСИБО!!!
 
Для очистки желтых, а вот дальше не понятно пошло, что должно происходить с зеленым цветом? Делать расчет как в столбце S? и так остальные все цвета не совсем понял
Код
Sub color()
For j = 1 To 18
For i = 10 To 44
    If Cells(i, j).Interior.color = 65535 Then
    Cells(i, j) = ""
    End If
    Next
Next
End Sub

Изменено: Илья Демид - 22.06.2017 17:04:39
 
Большое спасибо, а можете объяснить что обозначают значения в макросе, просто я не особо разбираюсь, и если я добавлю такую же колонку он будет в ней выполнять функцию или макрос нужно будет новый писать? СПАСИБО)))
 
рядом с зеленой колонкой нужно вставить точно такую же колонку с формулами, новый товар там будет
 
"красное" ниже вставить строчку с формулами
 
U10 = =СУММПРОИЗВ($B10:T10*(ОСТАТ(СТОЛБЕЦ($B10:T10);2)>0))
С43 =СУММ(C$10:C42)
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
 
Цитата
Александр написал:
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
я же выложил пример, что то я Вас не совсем понял
 
Это подпись не обращайте внимания :)
 
Зеленый. Как добавить формулу я не уверен, но можно просто доп макросом
Код
Sub dob()
Dim a As Integer 'объявляем переменную
Dim b As Integer
    a = Range(Cells(6, 2), Cells(6, 2).End(xlToRight)).Count'считаем кол-во заполненных столб по 6 строке
    Columns(a + 1).Insert 'добавляем столбец
    Columns(a + 1).Insert
    a = Range(Cells(6, 2), Cells(6, 2).End(xlToRight)).Count 'считаем кол-во заполненных столб по 6 строке
    Range(Cells(6, 2).End(xlToRight).Offset(0, -1), Cells(6, 2).End(xlToRight)).Copy 'копируем
    Cells(6, a + 2).PasteSpecial 'вставляем

    Application.CutCopyMode = False 'отключаем скопированный сегмент
    End Sub

    Sub schet()
    Dim b As Integer
    b = Range(Cells(6, 2), Cells(6, 2).End(xlToRight)).Count
       
    For i = 10 To 44
     Cells(i, b) = Cells(i, b - 1) * Cells(7, b)
    Next
End Sub


 
Цитата
Илья Демид написал:
Для очистки желтых, а вот дальше не понятно пошло, что должно происходить с зеленым цветом? Делать расчет как в столбце S? и так остальные все цвета не совсем понял
а макрос по какому принцыпу работает? ищет желтые ячейки и отчищает? как сделать что бы он искал колонку "количество и очищал"
и второй макрос ля вставки зеленой колонки работает но две верхних колонки не обьеденены
 
Прошу, полностью готов. Цвета желательно не менять.
 
"принцыпу",  "отчищает"... Александр, ну что это?..
 
Работает:
1) Желтый Если ячейка в таблице желтая - очищает
2) Зеленый - доходит до последнего столбца 10 строки и добавляет 2 столбца. если делать по полю "кол-во" надо делать через цикл "For"
3) красный - ищет в таблице красный цвет и добавляет под ней строку, потом убирает заливку с прошлой красной строки и красит новую
4) синий просто считает - Причем начиная с столбца Е, так было в формуле.
Изменено: Илья Демид - 23.06.2017 10:06:27
 
Цитата
Юрий М написал:
"принцыпу",  "отчищает"... Александр, ну что это?..
ну удалить содержимое колонок на всем листе, спасибо за понимание)))
 
Сори не подгрузился файл
 
Цитата
Илья Демид написал:
Для очистки желтых, а вот дальше не понятно пошло, что должно происходить с зеленым цветом? Делать расчет как в столбце S? и так остальные все цвета не совсем понял
а если цвет поменять, в какой строчке что нужно изменить чтобы выполнялось действие с другой ячейкой, и если я добавлю в документ таблицы они будут выполняться?
 
Про документ и таблицы я не понял что имелось ввиду.
Изменить надо значение
Код
.Interior.color = 65535
,где 65535 - фон ячейки
 
Цитата
Илья Демид написал:
,где 65535 - фон ячейки
а как узнать числовое значение?
 
я выясняю это через макрорекодер
Изменено: Илья Демид - 23.06.2017 15:02:35
 
Не нужен рекордер: в окне Immediate пишем строку: ?activecell.Interior.Color и жмём Enter
 
Цитата
Илья Демид написал:
я выясняю это через макр.
спасибо, а макрос по всему листу будет искать тот цвет, если новые колонки вставлю в них будет искать?
 
Цитата
Юрий М написал:
?activecell.Interior.Color
о... а ведь и правда :) Спасибо!

Цитата
Alexandr17 написал:
если новые колонки вставлю
Если использовать код из сообщения #2 -нет. Код который в файле - сработает
Изменено: Илья Демид - 23.06.2017 15:15:19
 
Илья, а можете подсказать как вставить строчку после красной и синей строк. СПАСИБО!!!
 
Синий
Код
Sub add_blue()
     Dim lastrow As Long
    lastrow = Cells(Rows.Count, 1).End(xlUp).Row
    
    Rows(lastrow).Offset(1, 0).Insert 'вместо Offset можно добавить к lastrow 1
End Sub
Красный
Код
Sub add_red()
    Dim lastrow As Long
    lastrow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = lastrow To 4 Step -1
       If Cells(i, 1).Interior.color = 11851260 Then
            Rows(i).Offset(1, 0).Insert 'вместо Offset можно добавить к i 1
            Exit Sub
       End If
    Next
End Sub
Изменено: Илья Демид - 26.06.2017 08:58:54
Страницы: 1
Наверх