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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2010, 10:33   #1
Gvaridos
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 32
Восклицание Поиск "проблемных значений" и вставка строки в новый документ Excel

Доброго времени суток!
Нужен макрос при активации которого он будет "анализировать" столбец G и при нахождении значений меньше 35% будет добавлять эту строку в отдельный документ.

Исходный Файл:Альфа-Директ
Конечный файл:Журнал учёта

Помогите пожалуйста!
Вложения
Тип файла: rar архив.rar (98.2 Кб, 11 просмотров)
Gvaridos вне форума Ответить с цитированием
Старый 16.11.2010, 12:15   #2
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

можно сделать так,

Код:
Sub Find_Copy()
Application.ScreenUpdating = False
With ActiveWorkbook: Workbooks.Open (.Path & "\" & "ЖУРНАЛ УЧЕТА МАРЖИ.xls"): .Activate: Columns("a:j").autofilter Field:=7, Criteria1:="<35"
Range([a2], Cells.SpecialCells(xlCellTypeLastCell)).SpecialCells(xlCellTypeVisible).Copy Workbooks("ЖУРНАЛ УЧЕТА МАРЖИ.xls").Sheets(1).[a1]
Selection.autofilter: Application.ScreenUpdating = True: End With: End Sub
Макрос необходимо запускать будучи на листе 1 файла Альфа-Директ. Файл "Журнал учета маржи" закрыт. Строки копируются в Лист1 начиная с А1 файла "Журнал учета маржи". Исходный и конечный файл находятся в одной папке.
EugeneS вне форума Ответить с цитированием
Старый 16.11.2010, 12:48   #3
Gvaridos
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 32
По умолчанию

Цитата:
Сообщение от EugeneS Посмотреть сообщение
можно сделать так,

Код:
Sub Find_Copy()
Application.ScreenUpdating = False
With ActiveWorkbook: Workbooks.Open (.Path & "\" & "ЖУРНАЛ УЧЕТА МАРЖИ.xls"): .Activate: Columns("a:j").autofilter Field:=7, Criteria1:="<35"
Range([a2], Cells.SpecialCells(xlCellTypeLastCell)).SpecialCells(xlCellTypeVisible).Copy Workbooks("ЖУРНАЛ УЧЕТА МАРЖИ.xls").Sheets(1).[a1]
Selection.autofilter: Application.ScreenUpdating = True: End With: End Sub
Макрос необходимо запускать будучи на листе 1 файла Альфа-Директ. Файл "Журнал учета маржи" закрыт. Строки копируются в Лист1 начиная с А1 файла "Журнал учета маржи". Исходный и конечный файл находятся в одной папке.
Я пока начинающий...
а если перед копированием строки добавить ещё переход на последнюю строчку, то как будет выглядеть?

вот код перехода на последнюю строчку:
Sub Макрос5()
Dim i As Long
Dim this
i = ActiveCell.SpecialCells(xlLastCell) .Row
For Each rw In Worksheets(1).Cells(1, 1).CurrentRegion.Rows
this = rw.Cells(i, 1).Value
If this = "" And i = 1 Then Exit For
i = i + 1
Next
Cells(i, 1).Select
End Sub
Gvaridos вне форума Ответить с цитированием
Старый 16.11.2010, 13:25   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Этот код (Макрос5()) в общем случае неверен. В частном - может отработать верно. Хотя я такой случай не нащупал...

Проще так (если лист до упора не заполнен):
Sub ttt()
LastRow = Range("A" & Rows.Count).End(xlUp).Row
Cells(LastRow, 1).Select
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 16.11.2010 в 13:35.
Hugo121 вне форума Ответить с цитированием
Старый 16.11.2010, 13:46   #5
Gvaridos
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Этот код (Макрос5()) в общем случае неверен. В частном - может отработать верно. Хотя я такой случай не нащупал...

Проще так (если лист до упора не заполнен):
Sub ttt()
LastRow = Range("A" & Rows.Count).End(xlUp).Row
Cells(LastRow, 1).Select
End Sub
Я неправильно выразился, имелся в виду переход на последнюю ПУСТУЮ строчку
поможете написать правильный код для перехода на последнюю пустую?
Gvaridos вне форума Ответить с цитированием
Старый 16.11.2010, 13:56   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Да в общем это и есть, добавьте 1:

LastRow = Range("A" & Rows.Count).End(xlUp).Row + 1

Или Вы заранее не знаете, в каком столбце будет нижнее значение?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск проблемных значений и вставка строк в другой документ Excel Gvaridos Microsoft Office Excel 3 27.10.2010 10:24
Вставка картинки из файла в Excel при нажатии на кнопку "Экспортировать" из C++ Builder ArTemi4 Помощь студентам 0 06.06.2010 19:48
вставка символа "конец строки" (Pascal) ТаняН Помощь студентам 2 05.06.2010 15:08
"поиск решения" excel в цикле vba novak_26 Microsoft Office Excel 3 25.02.2010 22:48