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

Вход

Регистрация

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

 

= Мир MS Excel/Окрашивание автоматически вставленной строки - Мир MS Excel

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

Excel 2007
Добрый день Уважаемые Форумчане!
Благодаря нашему форуму, нашел макрос автоматической вставки строк. Хотел бы использовать его для своего работы, но немного дополнить его. К примеру, имеется список с договорами, где с помощью макроса вставляется пустая строка в конце каждого договора. Подскажите пожалуйста, как подправить макрос, так чтобы автоматически вставляемые строки между договорами еще и окрашивались в определенный цвет.
К сообщению приложен файл: 1358231.xlsm(14Kb)


Сообщение отредактировал Digital - Вторник, 25.04.2017, 15:20
 
Ответить
СообщениеДобрый день Уважаемые Форумчане!
Благодаря нашему форуму, нашел макрос автоматической вставки строк. Хотел бы использовать его для своего работы, но немного дополнить его. К примеру, имеется список с договорами, где с помощью макроса вставляется пустая строка в конце каждого договора. Подскажите пожалуйста, как подправить макрос, так чтобы автоматически вставляемые строки между договорами еще и окрашивались в определенный цвет.

Автор - Digital
Дата добавления - 25.04.2017 в 15:19
Karataev Дата: Вторник, 25.04.2017, 15:27 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 873
Репутация: 325 ±
Замечаний: 0% ±

Excel
Я добавил переменную "row" - это вставленная строка.


 
Ответить
СообщениеЯ добавил переменную "row" - это вставленная строка.

Автор - Karataev
Дата добавления - 25.04.2017 в 15:27
ant6729 Дата: Вторник, 25.04.2017, 23:24 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 304
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Здравствуйте, только не подумайте, что я выпендриваюсь, я себя дубом ощущаю в этом мире экселистов

У меня вопрос к автору кода и ко всем тоже
Можете ли подсказать, зачем вот это:

1. [vba]
Код
A() = Range("A1:A" & lr).Value
[/vba]

2 А зачем Ubound, ведь есть lr?

3 Для чего вот эта вещь, без нее тоже работает [vba]
Код
Shift:=xlShiftDown, CopyOrigin:=xlFormatFromRightOrBelow
[/vba]

4. Зачем set Row(i)

Просто

[vba]
Код
Sub Автоматическая_вставка_пустых_строк()
    Dim lr As Long, i As Long
    Dim row As Range
    lr = Cells(Rows.Count, 1).End(xlUp).row
            For i = lr To 2 Step -1
        If Cells(i, 1) <> Cells(i - 1, 1) Then
            Rows(i).Insert
            Rows(i).Columns("A:E").Interior.Color = 12379352
        End If
    Next i
End Sub
[/vba]

Тоже делает свое дело, но может, в этом варианте могут быть потом какие - то ошибки, это так? Подскажите, пожалуйста, если не трудно.

И еще вопрос, извините, что их много... не понимаю

[vba]
Код

Sub Автddddматическая_вставка_пустых_строк()
    Dim lr As Long, i As Long
    Dim row As Range
    lr = Cells(Rows.Count, 1).End(xlUp).row
            For i = lr To 2 Step -1
        If Cells(i, 1) <> Cells(i - 1, 1) Then
           With Rows(i)
           .Insert
           .Columns("A:E").Interior.Color = 12379352
           End With
        End If
    Next i
End Sub
[/vba]

с оператором With код начинает чудить... строчки закрашивает уже не пустые, а почему?

Заранее спасибо.


Сообщение отредактировал ant6729 - Вторник, 25.04.2017, 23:58
 
Ответить
СообщениеЗдравствуйте, только не подумайте, что я выпендриваюсь, я себя дубом ощущаю в этом мире экселистов

У меня вопрос к автору кода и ко всем тоже
Можете ли подсказать, зачем вот это:

1. [vba]
Код
A() = Range("A1:A" & lr).Value
[/vba]

2 А зачем Ubound, ведь есть lr?

3 Для чего вот эта вещь, без нее тоже работает [vba]
Код
Shift:=xlShiftDown, CopyOrigin:=xlFormatFromRightOrBelow
[/vba]

4. Зачем set Row(i)

Просто

[vba]
Код
Sub Автоматическая_вставка_пустых_строк()
    Dim lr As Long, i As Long
    Dim row As Range
    lr = Cells(Rows.Count, 1).End(xlUp).row
            For i = lr To 2 Step -1
        If Cells(i, 1) <> Cells(i - 1, 1) Then
            Rows(i).Insert
            Rows(i).Columns("A:E").Interior.Color = 12379352
        End If
    Next i
End Sub
[/vba]

Тоже делает свое дело, но может, в этом варианте могут быть потом какие - то ошибки, это так? Подскажите, пожалуйста, если не трудно.

И еще вопрос, извините, что их много... не понимаю

[vba]
Код

Sub Автddddматическая_вставка_пустых_строк()
    Dim lr As Long, i As Long
    Dim row As Range
    lr = Cells(Rows.Count, 1).End(xlUp).row
            For i = lr To 2 Step -1
        If Cells(i, 1) <> Cells(i - 1, 1) Then
           With Rows(i)
           .Insert
           .Columns("A:E").Interior.Color = 12379352
           End With
        End If
    Next i
End Sub
[/vba]

с оператором With код начинает чудить... строчки закрашивает уже не пустые, а почему?

Заранее спасибо.

Автор - ant6729
Дата добавления - 25.04.2017 в 23:24
Digital Дата: Среда, 26.04.2017, 06:44 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 178
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Доброе утро Karataev!
Большое спасибо за помощь, кое-как разобрался, вставил в тело макроса окрашивание в цвет.
 
Ответить
СообщениеДоброе утро Karataev!
Большое спасибо за помощь, кое-как разобрался, вставил в тело макроса окрашивание в цвет.

Автор - Digital
Дата добавления - 26.04.2017 в 06:44
Karataev Дата: Среда, 26.04.2017, 06:57 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 873
Репутация: 325 ±
Замечаний: 0% ±

Excel
ant6729, 1. - данные копируются в массив, т.к. с массивом макрос быстрее работает. Копировать в массив актуально, если много данных.
2. Переменная "lr" может быть использована где-нибудь в другом месте еще раз, поэтому надежнее использовать UBound. Для данной задачи достаточно использовать "lr".
3. Вставку строки делал не я а другой человек и автор темы взял код в интернете. Возможно в той задаче это было нужно. В этой задаче это получается, что не нужно.
4. Да, можно не использовать переменную Row. В данном случае и так удобно Rows(i). Просто мне показалось, что так будет удобнее, но сейчас я посмотрел и увидел, что и без Row нормально.
5. With в данном случае дает неправильный результат, т.к. оба действия делаются с одной строкой. При использовании With указывается, с какой строкой работать, и макрос делает все действия с этой строкой, а не с новой.


 
Ответить
Сообщениеant6729, 1. - данные копируются в массив, т.к. с массивом макрос быстрее работает. Копировать в массив актуально, если много данных.
2. Переменная "lr" может быть использована где-нибудь в другом месте еще раз, поэтому надежнее использовать UBound. Для данной задачи достаточно использовать "lr".
3. Вставку строки делал не я а другой человек и автор темы взял код в интернете. Возможно в той задаче это было нужно. В этой задаче это получается, что не нужно.
4. Да, можно не использовать переменную Row. В данном случае и так удобно Rows(i). Просто мне показалось, что так будет удобнее, но сейчас я посмотрел и увидел, что и без Row нормально.
5. With в данном случае дает неправильный результат, т.к. оба действия делаются с одной строкой. При использовании With указывается, с какой строкой работать, и макрос делает все действия с этой строкой, а не с новой.

Автор - Karataev
Дата добавления - 26.04.2017 в 06:57
Digital Дата: Среда, 26.04.2017, 07:34 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 178
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день ant6729!
Если честно, я не смогу ответить на ваши вопросы, так как не владею такими знаниями %)
А макрос я взял с нашего форума, с одной схожей темы yes .
 
Ответить
СообщениеДобрый день ant6729!
Если честно, я не смогу ответить на ваши вопросы, так как не владею такими знаниями %)
А макрос я взял с нашего форума, с одной схожей темы yes .

Автор - Digital
Дата добавления - 26.04.2017 в 07:34
ant6729 Дата: Среда, 26.04.2017, 08:26 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 304
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Спасибо
 
Ответить
СообщениеСпасибо

Автор - ant6729
Дата добавления - 26.04.2017 в 08:26
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Окрашивание автоматически вставленной строки (Макросы/Sub)
Страница 1 из 11
Поиск:

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