Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2017, 12:24   #1
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию Раскрасить строки

Добрый день, уважаемые пользователи!

Стоит задача по раскраски строк, которую я сейчас выполняю вручную. Т.е., есть текстовый файл, который я открываю при помощи Excel, и все строки отображаются в столбике "A". Нажав комбинацию "Ctrl + F" (найти), ввожу данные "ИНН", тем самым нахожу строку "ПлательщикИНН***" которая в секции документа по счету восьмая (для наглядности в столбце "B" проставил строки), и выделяю цветом начиная со строки "СекцияДокумент=Платежное поручение" до "КонецДокумента", итого получается 36 строк. Таких секторов в документе значительное количество...
А можно как-то при помощи макроса проделывать эту процедуру?
Пробовал макрорекордером сделать это, но при записи макрорекордером получается привязка к определенным строкам.
Изображения
Тип файла: jpg ПлательщикИНН.jpg (83.5 Кб, 125 просмотров)
amadeus017 вне форума Ответить с цитированием
Старый 28.03.2017, 12:38   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

сделать, то можно...
и даже раскрасить можно, хоть и не написано КАК раскрашивать
но в связи с тем, что совершенно не понятен смысл, не охота на это время тратить
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 28.03.2017, 12:38   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Мое видение:
при помощи макроса Find ищете ячейку ПлательщикИНН (NrStr),
дальше RANGE(NrStr.offset(-7,0),nrStr.offset(28,0)).Interior.C olorIndex = 3
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 28.03.2017, 12:52   #4
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Цитата:
сделать, то можно...
и даже раскрасить можно, хоть и не написано КАК раскрашивать
На рисунке видно, что строки раскрашены желтым цветом.

Последний раз редактировалось amadeus017; 28.03.2017 в 12:55.
amadeus017 вне форума Ответить с цитированием
Старый 29.03.2017, 00:08   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Может, что-то такое вам нужно?
http://excelvba.ru/programmes/Parser...ntBankExchange

Это решение для обработки банковских выписок формата 1CClientBankExchange
EducatedFool вне форума Ответить с цитированием
Старый 29.03.2017, 04:40   #6
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Может, что-то такое вам нужно?
http://excelvba.ru/programmes/Parser...ntBankExchange

Это решение для обработки банковских выписок формата 1CClientBankExchange
Спасибо большое за помощь, эта статья пригодится (для 1С, а у меня другая программа), но мне нужно именно окрасить данный диапазон светом (желтым или любым другим).
ОКРАСКА данного диапазона мне нужна для того, чтобы потом поставить ФИЛЬТР ПО ЦВЕТУ и УДАЛИТЬ лишние данные из выписки и оставить только те строки, которые принадлежать определенному контрагенту (организации).

Последний раз редактировалось amadeus017; 29.03.2017 в 04:54.
amadeus017 вне форума Ответить с цитированием
Старый 29.03.2017, 10:12   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от amadeus017 Посмотреть сообщение
ОКРАСКА данного диапазона мне нужна для того, чтобы потом поставить ФИЛЬТР ПО ЦВЕТУ и УДАЛИТЬ лишние данные из выписки и оставить только те строки, которые принадлежать определенному контрагенту (организации).
для этого не нужно расскрашивать. Макрос, который должен расскрашивать, с таким же успехом может удалять всё не нужное (или копировать нужное на другой лист, например).

p.s. Вы сделайте тестовый пример (замените реальные данные на какой-нибудь набор цифр - главное, чтобы структура данных осталась прежней), выложите его сюда на форум, и, думаю, что Вам помогут с макросом.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.03.2017, 11:24   #8
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
p.s. Вы сделайте тестовый пример (замените реальные данные на какой-нибудь набор цифр - главное, чтобы структура данных осталась прежней), выложите его сюда на форум, и, думаю, что Вам помогут с макросом.
Вы правы, наверное так будет нагляднее. В связи с чем, прилагаю два файла (01-01-2015 и 01-01-2015_СТАЛО) и допустим, что в файле "01-01-2015", нужно оставить только организацию с ИНН "7716004076" и все строки принадлежащие этому платежу начиная со строк "СекцияДокумент=Платежное поручение" и заканчивая строкой по этому платежу "КонецДокумента". Результат в файле "01-01-2015_СТАЛО".
Вложения
Тип файла: txt 01-01-2015.txt (10.3 Кб, 126 просмотров)
Тип файла: txt 01-01-2015_СТАЛО.txt (671 байт, 123 просмотров)
amadeus017 вне форума Ответить с цитированием
Старый 29.03.2017, 11:40   #9
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
Sub a()
    Dim str As String
    Dim cel As Range
    On Error Resume Next
    str = "ПлательщикИНН=" & Trim(CStr(InputBox("ИНН = ")))
    Set cel = Columns("A:A").Find(What:=str, After:=Range("A1"), LookIn:=xlFormulas _
        , LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
    Sheets(Sheets.Count).Cells(Sheets(Sheets.Count).Range("A50000").End(xlUp).Row + 1, 1).Resize(35, 1).Value = _
        Range(cel.Offset(-5, 0), cel.Offset(29, 0)).Value
    Set cel = Nothing
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 29.03.2017, 12:07   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Aleksandr H., простите, а что должна делать строчка:
Цитата:
Код:
Sheets(Sheets.Count).Cells(Sheets(Sheets.Count).Range("A50000").End(xlUp).Row + 1, 1).Resize(35, 1).Value = _
        Range(cel.Offset(-5, 0), cel.Offset(29, 0)).Value
??
что-то у меня ровным счётом ничего не происходит...
я что-то делаю не так?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Раскрасить ячейку dbgrideh Ernest027 БД в Delphi 13 12.08.2015 08:38
Раскрасить ListBox $T@LKER C# (си шарп) 8 05.04.2011 22:35
РАскрасить строки ListViev. Aleksandr Общие вопросы Delphi 20 17.09.2010 10:29
Раскрасить пузырьки в диаграмме danil1234567 Microsoft Office Excel 2 28.06.2010 18:03
Раскрасить DBGrid alex_base БД в Delphi 13 06.11.2007 11:36