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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск данных макросом по критерию - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск данных макросом по критерию (Макросы/Sub)
Поиск данных макросом по критерию
SViktor Дата: Суббота, 11.03.2017, 09:34 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, прошу помочь в составлении макроса, своих знаний пока не хватает. Программа формирует отчёт файл.xls(приложен), в котором необходимо найти и скопировать показания(выделены желтым) в существующую книгу. В макрорекордере был составлен код, но возникла необходимость поиска этих данных, т.к ежемесячно их расположение относительно строк и столбцов может изменяться. Думаю искать необходимо по двум критериям - система и даты (выделены зелёным)
[vba]
Код
Workbooks.Open Filename:= _
"\\USER-ПК\Users\Public\Documents\ТЭМ-104.xls"
Range("Y87:AH90").Select
Selection.Copy
Windows("ГВС ТП.xlsm").Activate
Sheets("Лист1").Select
Range("D140").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("ТЭМ-104.xls").Activate
Range("AF183:AM187").Select
Selection.Copy
Windows("ГВС ТП.xlsm").Activate
Sheets("Лист1").Select
Range("D146").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Workbooks("ТЭМ-104.xls").Close SaveChanges:=False
[/vba]
К сообщению приложен файл: 2223166.xls (87.0 Kb)
 
Ответить
СообщениеДобрый день, прошу помочь в составлении макроса, своих знаний пока не хватает. Программа формирует отчёт файл.xls(приложен), в котором необходимо найти и скопировать показания(выделены желтым) в существующую книгу. В макрорекордере был составлен код, но возникла необходимость поиска этих данных, т.к ежемесячно их расположение относительно строк и столбцов может изменяться. Думаю искать необходимо по двум критериям - система и даты (выделены зелёным)
[vba]
Код
Workbooks.Open Filename:= _
"\\USER-ПК\Users\Public\Documents\ТЭМ-104.xls"
Range("Y87:AH90").Select
Selection.Copy
Windows("ГВС ТП.xlsm").Activate
Sheets("Лист1").Select
Range("D140").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("ТЭМ-104.xls").Activate
Range("AF183:AM187").Select
Selection.Copy
Windows("ГВС ТП.xlsm").Activate
Sheets("Лист1").Select
Range("D146").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Workbooks("ТЭМ-104.xls").Close SaveChanges:=False
[/vba]

Автор - SViktor
Дата добавления - 11.03.2017 в 09:34
Kuzmich Дата: Суббота, 11.03.2017, 11:04 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
необходимо найти и скопировать показания(выделены желтым) в существующую книгу

А где пример существующей книги?
 
Ответить
Сообщение
Цитата
необходимо найти и скопировать показания(выделены желтым) в существующую книгу

А где пример существующей книги?

Автор - Kuzmich
Дата добавления - 11.03.2017 в 11:04
SViktor Дата: Суббота, 11.03.2017, 18:04 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Kuzmich,
Она не так важна, для примера подойдёт пустая книга.xlsm, содержащая только этот макрос, важна часть кода с поиском.
 
Ответить
СообщениеKuzmich,
Она не так важна, для примера подойдёт пустая книга.xlsm, содержащая только этот макрос, важна часть кода с поиском.

Автор - SViktor
Дата добавления - 11.03.2017 в 18:04
Kuzmich Дата: Суббота, 11.03.2017, 18:33 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
для примера подойдёт пустая книга.xlsm

Для написания макроса важно знать, что у вас будет в этой книге и по какому
событию подтягивать показания интеграторов для определенной системы.
 
Ответить
Сообщение
Цитата
для примера подойдёт пустая книга.xlsm

Для написания макроса важно знать, что у вас будет в этой книге и по какому
событию подтягивать показания интеграторов для определенной системы.

Автор - Kuzmich
Дата добавления - 11.03.2017 в 18:33
SViktor Дата: Воскресенье, 12.03.2017, 02:59 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Kuzmich,
Логично, поэтому всё сначала: программа формирует файл ТЭМ-104.xls, в котором необходимо найти данные (выделены жёлтым) по критериям (выделены зелёным) и скопировать в существующую Книга1.xlsm.
В существующем макросе возникла необходимость замены обычного выбора копируемых областей ("Y87:AH90") и ("AF183:AM186") на их поиск, т.к. их положение относительно строк и столбцов может изменяться.
В Книга1.xlsm индекс в формулах "выбор" в рабочем варианте привязан к системной дате ("А2")
К сообщению приложен файл: 7541423.xlsm (32.3 Kb)
 
Ответить
СообщениеKuzmich,
Логично, поэтому всё сначала: программа формирует файл ТЭМ-104.xls, в котором необходимо найти данные (выделены жёлтым) по критериям (выделены зелёным) и скопировать в существующую Книга1.xlsm.
В существующем макросе возникла необходимость замены обычного выбора копируемых областей ("Y87:AH90") и ("AF183:AM186") на их поиск, т.к. их положение относительно строк и столбцов может изменяться.
В Книга1.xlsm индекс в формулах "выбор" в рабочем варианте привязан к системной дате ("А2")

Автор - SViktor
Дата добавления - 12.03.2017 в 02:59
SViktor Дата: Воскресенье, 12.03.2017, 03:00 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Kuzmich,
К сообщению приложен файл: 1655255.xls (87.0 Kb)
 
Ответить
СообщениеKuzmich,

Автор - SViktor
Дата добавления - 12.03.2017 в 03:00
Michael_S Дата: Воскресенье, 12.03.2017, 04:14 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Так данные куда нужны, в конечном варианте?
На Лист1, "C140:D149", лист "Акт" или лист "Показания"?

[p.s.]и покажите несколько вариантов "'Ведомостей учёта ..."[/p.s.]


Сообщение отредактировал Michael_S - Воскресенье, 12.03.2017, 04:45
 
Ответить
СообщениеТак данные куда нужны, в конечном варианте?
На Лист1, "C140:D149", лист "Акт" или лист "Показания"?

[p.s.]и покажите несколько вариантов "'Ведомостей учёта ..."[/p.s.]

Автор - Michael_S
Дата добавления - 12.03.2017 в 04:14
Kuzmich Дата: Воскресенье, 12.03.2017, 10:52 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
На базе вашего первого файла 2223166.xls я написал макрос.
В этом файле надо поменять формат ячеек с датами на формат-дата.
Макрос в файле "Скопировать показания_10-32730-1.xls"
Срабатывает при изменении даты в ячейке Е1. Оба файла должны быть открыты.
Попробуйте приспособить под ваши файлы. Удачи!
К сообщению приложен файл: _____10-32730-1.rar (27.8 Kb)
 
Ответить
СообщениеНа базе вашего первого файла 2223166.xls я написал макрос.
В этом файле надо поменять формат ячеек с датами на формат-дата.
Макрос в файле "Скопировать показания_10-32730-1.xls"
Срабатывает при изменении даты в ячейке Е1. Оба файла должны быть открыты.
Попробуйте приспособить под ваши файлы. Удачи!

Автор - Kuzmich
Дата добавления - 12.03.2017 в 10:52
SViktor Дата: Воскресенье, 12.03.2017, 14:38 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Michael_S,
Данные нужно копировать в лист "Показания", далее с него уже формулами в акты ( их несколько "теплосеть", "водоканал", "ИРЦ" приводить все нет смысла ).
Лист1 промежуточный, мною был вставлен из-за спешки ввиду краткосрочности отчётного периода и немалого объема данных
 
Ответить
СообщениеMichael_S,
Данные нужно копировать в лист "Показания", далее с него уже формулами в акты ( их несколько "теплосеть", "водоканал", "ИРЦ" приводить все нет смысла ).
Лист1 промежуточный, мною был вставлен из-за спешки ввиду краткосрочности отчётного периода и немалого объема данных

Автор - SViktor
Дата добавления - 12.03.2017 в 14:38
SViktor Дата: Воскресенье, 12.03.2017, 14:53 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Kuzmich,
Спасибо, буду разбираться.
 
Ответить
СообщениеKuzmich,
Спасибо, буду разбираться.

Автор - SViktor
Дата добавления - 12.03.2017 в 14:53
Kuzmich Дата: Воскресенье, 12.03.2017, 15:39 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
Данные нужно копировать в лист "Показания"

Правильно ли я понимаю, что с файла отчета надо скопировать четыре группы данных
за 23.01.2017 и за 22.02.2017 для двух разных систем и вставить в лист Показания в
соответствующие ячейки?
По всей видимости вам еще нужно разносить данные по разным адресам на листе Показания?
 
Ответить
Сообщение
Цитата
Данные нужно копировать в лист "Показания"

Правильно ли я понимаю, что с файла отчета надо скопировать четыре группы данных
за 23.01.2017 и за 22.02.2017 для двух разных систем и вставить в лист Показания в
соответствующие ячейки?
По всей видимости вам еще нужно разносить данные по разным адресам на листе Показания?

Автор - Kuzmich
Дата добавления - 12.03.2017 в 15:39
SViktor Дата: Понедельник, 13.03.2017, 09:51 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Kuzmich,
Не совсем так, две группы данных необходимо скопировать, на текущий месяц, в данном файле это февраль, соответственно в марте февральские данные станут предыдущими и уже будут сохранены в листе "показания" и так далее из месяца в месяц. В листе "показания" конечно не один адрес, их около 70 шт., это количество файлов ТЭМ-104, мне необходимо обработать, скопировать с них данные в лист "показания" соответственно адресам. С разнесением данных с листа "показания" по актам я справился посредством формул, в основном это формула "выбор" где индекс =МЕСЯЦ(СЕГОДНЯ()), таким образом всё работает на автомате, но вот копирование данных с некоторых файлов ТЭМ-104 зашло в тупик , т.к программа сохраняет эти данные из месяца в месяц по разному: сегодня это области ("Y87:AH90") и ("AF183:AM186"), следующий месяц расположение может измениться, зависит от количества дней в месяце или ещё чего то.
 
Ответить
СообщениеKuzmich,
Не совсем так, две группы данных необходимо скопировать, на текущий месяц, в данном файле это февраль, соответственно в марте февральские данные станут предыдущими и уже будут сохранены в листе "показания" и так далее из месяца в месяц. В листе "показания" конечно не один адрес, их около 70 шт., это количество файлов ТЭМ-104, мне необходимо обработать, скопировать с них данные в лист "показания" соответственно адресам. С разнесением данных с листа "показания" по актам я справился посредством формул, в основном это формула "выбор" где индекс =МЕСЯЦ(СЕГОДНЯ()), таким образом всё работает на автомате, но вот копирование данных с некоторых файлов ТЭМ-104 зашло в тупик , т.к программа сохраняет эти данные из месяца в месяц по разному: сегодня это области ("Y87:AH90") и ("AF183:AM186"), следующий месяц расположение может измениться, зависит от количества дней в месяце или ещё чего то.

Автор - SViktor
Дата добавления - 13.03.2017 в 09:51
SViktor Дата: Понедельник, 13.03.2017, 10:21 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Kuzmich,
При копировании данных с отчёта в лист "показания" для расстановки их по месяцам я использовал бок if , где ("А1") тот же индекс формулы "выбор" =МЕСЯЦ(СЕГОДНЯ())
[vba]
Код
  
    Sheets("Показания").Select
    If [A1] = 1 Then
    Range("L14").Select
    ElseIf [A1] = 2 Then
    Range("T14").Select
    ... ' до12 по количеству месяцев в году
    End If
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
[/vba]
 
Ответить
СообщениеKuzmich,
При копировании данных с отчёта в лист "показания" для расстановки их по месяцам я использовал бок if , где ("А1") тот же индекс формулы "выбор" =МЕСЯЦ(СЕГОДНЯ())
[vba]
Код
  
    Sheets("Показания").Select
    If [A1] = 1 Then
    Range("L14").Select
    ElseIf [A1] = 2 Then
    Range("T14").Select
    ... ' до12 по количеству месяцев в году
    End If
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
[/vba]

Автор - SViktor
Дата добавления - 13.03.2017 в 10:21
Kuzmich Дата: Понедельник, 13.03.2017, 10:42 | Сообщение № 14
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
программа сохраняет эти данные из месяца в месяц по разному

Приложите файл отчета с другим расположением данных.
Также напишите в каком виде пишется адрес дома в отчете и у вас на листе "Показания"
 
Ответить
Сообщение
Цитата
программа сохраняет эти данные из месяца в месяц по разному

Приложите файл отчета с другим расположением данных.
Также напишите в каком виде пишется адрес дома в отчете и у вас на листе "Показания"

Автор - Kuzmich
Дата добавления - 13.03.2017 в 10:42
Wasilich Дата: Понедельник, 13.03.2017, 11:14 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
В листе "показания" конечно не один адрес, их около 70 шт., это количество файлов ТЭМ-104,
А можно спросить? Как Вы ориентируетесь на листе показания, на какой адрес записаны данные из этих 70-ти файлов? Если там нет ни № абонента, ни адреса установки. И почему их нет в файле?
И по какому признаку, внешне, определяются файлы ТЭМ-104, за какой месяц данные. Или же, они ежемесячно заменяются новыми?
Я так понял, задача в стадии разработки. Слишком много неизвестных, (иксов). :'( :)


Сообщение отредактировал Wasilich - Понедельник, 13.03.2017, 11:26
 
Ответить
Сообщение
В листе "показания" конечно не один адрес, их около 70 шт., это количество файлов ТЭМ-104,
А можно спросить? Как Вы ориентируетесь на листе показания, на какой адрес записаны данные из этих 70-ти файлов? Если там нет ни № абонента, ни адреса установки. И почему их нет в файле?
И по какому признаку, внешне, определяются файлы ТЭМ-104, за какой месяц данные. Или же, они ежемесячно заменяются новыми?
Я так понял, задача в стадии разработки. Слишком много неизвестных, (иксов). :'( :)

Автор - Wasilich
Дата добавления - 13.03.2017 в 11:14
SViktor Дата: Понедельник, 13.03.2017, 13:06 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Kuzmich,


Сообщение отредактировал SViktor - Понедельник, 13.03.2017, 13:21
 
Ответить
СообщениеKuzmich,

Автор - SViktor
Дата добавления - 13.03.2017 в 13:06
SViktor Дата: Понедельник, 13.03.2017, 13:08 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Kuzmich,
К сообщению приложен файл: _.7.xls (97.0 Kb) · 5241230.xlsx (48.5 Kb)
 
Ответить
СообщениеKuzmich,

Автор - SViktor
Дата добавления - 13.03.2017 в 13:08
SViktor Дата: Понедельник, 13.03.2017, 13:15 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Wasilich,
Файлы записываются по адресу.xls , ТЭМ-104 условное имя файла, для примера. Из месяца в месяц эти файлы я не сохраняю просто переписываю. В программе отчёт можно вызвать за любой период.


Сообщение отредактировал SViktor - Понедельник, 13.03.2017, 13:24
 
Ответить
СообщениеWasilich,
Файлы записываются по адресу.xls , ТЭМ-104 условное имя файла, для примера. Из месяца в месяц эти файлы я не сохраняю просто переписываю. В программе отчёт можно вызвать за любой период.

Автор - SViktor
Дата добавления - 13.03.2017 в 13:15
Wasilich Дата: Понедельник, 13.03.2017, 14:29 | Сообщение № 19
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Не желаете отвечать на вопросы, дело ваше. Ловите вариант с одним файлом.
Следующий ваш вопрос: - "Как перебрать все файлы". yes
К сообщению приложен файл: SViktor1.xls (64.5 Kb)


Сообщение отредактировал Wasilich - Понедельник, 13.03.2017, 15:28
 
Ответить
СообщениеНе желаете отвечать на вопросы, дело ваше. Ловите вариант с одним файлом.
Следующий ваш вопрос: - "Как перебрать все файлы". yes

Автор - Wasilich
Дата добавления - 13.03.2017 в 14:29
Kuzmich Дата: Понедельник, 13.03.2017, 16:11 | Сообщение № 20
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
В новом файле на листе Показания уже 9 показателей на каждый месяц,
а было 8 и что-то, мне кажется, вы напутали в названиях в шапке.
Желательно, чтобы адрес на листе Показания повторял адрес из отчета
пос. МИС д.7 (без разделения на улицу и дом)
 
Ответить
СообщениеВ новом файле на листе Показания уже 9 показателей на каждый месяц,
а было 8 и что-то, мне кажется, вы напутали в названиях в шапке.
Желательно, чтобы адрес на листе Показания повторял адрес из отчета
пос. МИС д.7 (без разделения на улицу и дом)

Автор - Kuzmich
Дата добавления - 13.03.2017 в 16:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск данных макросом по критерию (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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