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

Вход

Регистрация

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

 

= Мир MS Excel/Выбор данных и перенос на другой лист. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выбор данных и перенос на другой лист. (Макросы Sub)
Выбор данных и перенос на другой лист.
Stormy Дата: Четверг, 06.03.2014, 16:58 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток!
Нужно выбрать данные из столбца В , напротив которых в столбце А стоит литера, которая расположена в ячейке D2.
Данные переносятся в другую книгу. Ячейка D2 тоже расположена в ней. Прикрепленный файл является своего рода базой. Подскажите в какую сторону копать?
К сообщению приложен файл: 6297152.xls (35.5 Kb)


Место для рекламы.
 
Ответить
СообщениеДоброго времени суток!
Нужно выбрать данные из столбца В , напротив которых в столбце А стоит литера, которая расположена в ячейке D2.
Данные переносятся в другую книгу. Ячейка D2 тоже расположена в ней. Прикрепленный файл является своего рода базой. Подскажите в какую сторону копать?

Автор - Stormy
Дата добавления - 06.03.2014 в 16:58
wild_pig Дата: Четверг, 06.03.2014, 20:32 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Что тут копать - открыть книгу, диапазон в массив, закрыть книгу, выгрузить нужные данные с условием.
Или подробнее рассказать о предстоящих телодвижениях с файлами.
 
Ответить
СообщениеЧто тут копать - открыть книгу, диапазон в массив, закрыть книгу, выгрузить нужные данные с условием.
Или подробнее рассказать о предстоящих телодвижениях с файлами.

Автор - wild_pig
Дата добавления - 06.03.2014 в 20:32
nilem Дата: Четверг, 06.03.2014, 20:50 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Можно попытаться копнуть в сторону автофильтра. Чтобы далеко не ходить, вот здесь есть примерчик


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеМожно попытаться копнуть в сторону автофильтра. Чтобы далеко не ходить, вот здесь есть примерчик

Автор - nilem
Дата добавления - 06.03.2014 в 20:50
Stormy Дата: Пятница, 07.03.2014, 09:45 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
wild_pig, nilem,
Чтоб поподробнее, это издалека начать нужно, возможно решение будет совсем иным.
Есть чертежи, которые рисуются в Автокаде (назовем просто чертеж) , есть сторонняя программа на Дельфе с базой Интебейс+ФайрБерд (назовем просто Прога) . В Проге вводятся данные по каждому заказу (операции, материал, технология выполнения, короче говоря, технологическая карта изделия). Прога может экспортировать свою базу и/или необходимую информацию в Экзель. Конструктор вводит данные в Прогу, кликает на кнопку отправить в Экзель ( создается файл 1.xls) в нем нужна спецификация. Дальше кликает на кнопку открыть Чертеж, открывается файл автокада 1.dwg с связанными таблицами. Файл создается на основе шаблона в котором пути между собой связаны. Если книга Экзеля 1, то и файл чертежа 1, если 2 - то 2 и т.д. Теперь вот вопрос.
Спецификация представляет собой таблицу, а вот в шаблоне данные оттуда нужно разложить по листам.
Поэтому я и хочу сделать выборку из другой книги и получить данные в шаблон.
После создания темы, наткнулся на вариант с ADO сейчас пытаюсь с ним разобраться. Но в этом случае главный вопрос возникает, на какое событие вешать макрос. Как вариант на изменение в ячейке, в Автокаде связные таблицы могут вносить изменения в закрытый файл. Как-то так. Немного запутанно и непонятно :(


Место для рекламы.
 
Ответить
Сообщениеwild_pig, nilem,
Чтоб поподробнее, это издалека начать нужно, возможно решение будет совсем иным.
Есть чертежи, которые рисуются в Автокаде (назовем просто чертеж) , есть сторонняя программа на Дельфе с базой Интебейс+ФайрБерд (назовем просто Прога) . В Проге вводятся данные по каждому заказу (операции, материал, технология выполнения, короче говоря, технологическая карта изделия). Прога может экспортировать свою базу и/или необходимую информацию в Экзель. Конструктор вводит данные в Прогу, кликает на кнопку отправить в Экзель ( создается файл 1.xls) в нем нужна спецификация. Дальше кликает на кнопку открыть Чертеж, открывается файл автокада 1.dwg с связанными таблицами. Файл создается на основе шаблона в котором пути между собой связаны. Если книга Экзеля 1, то и файл чертежа 1, если 2 - то 2 и т.д. Теперь вот вопрос.
Спецификация представляет собой таблицу, а вот в шаблоне данные оттуда нужно разложить по листам.
Поэтому я и хочу сделать выборку из другой книги и получить данные в шаблон.
После создания темы, наткнулся на вариант с ADO сейчас пытаюсь с ним разобраться. Но в этом случае главный вопрос возникает, на какое событие вешать макрос. Как вариант на изменение в ячейке, в Автокаде связные таблицы могут вносить изменения в закрытый файл. Как-то так. Немного запутанно и непонятно :(

Автор - Stormy
Дата добавления - 07.03.2014 в 09:45
Stormy Дата: Пятница, 07.03.2014, 11:34 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Вроде все получилось, пока коряво, но это дело поправимо.
Команда на запуск макроса из Автокада в Экзель работает.
Теперь по старттопик вопросу.

Поясните, пожалуйста.
[vba]
Код
Sub Example()
     Dim ADO As New ADO
          
     ADO.DataSource = Workbook.FullName   ' полный путь к книге
     ADO.Query ("SELECT * FROM [Лист1$A4:B20]")
End Sub
[/vba]
Полный путь к книге - вместо Workbook.FullName нужно указать путь в виде "C:/papka/excel.xls" ?
Условие для запроса - будет что-то в виде ADO.Query ("WHERE [Лист1$A:A]=20")?
То есть я хочу получить данные из файла excel.xls в диапазон Лист1 A4:B20 , если в A:A есть 20


Место для рекламы.
 
Ответить
СообщениеВроде все получилось, пока коряво, но это дело поправимо.
Команда на запуск макроса из Автокада в Экзель работает.
Теперь по старттопик вопросу.

Поясните, пожалуйста.
[vba]
Код
Sub Example()
     Dim ADO As New ADO
          
     ADO.DataSource = Workbook.FullName   ' полный путь к книге
     ADO.Query ("SELECT * FROM [Лист1$A4:B20]")
End Sub
[/vba]
Полный путь к книге - вместо Workbook.FullName нужно указать путь в виде "C:/papka/excel.xls" ?
Условие для запроса - будет что-то в виде ADO.Query ("WHERE [Лист1$A:A]=20")?
То есть я хочу получить данные из файла excel.xls в диапазон Лист1 A4:B20 , если в A:A есть 20

Автор - Stormy
Дата добавления - 07.03.2014 в 11:34
Stormy Дата: Пятница, 07.03.2014, 17:31 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Sub Example()
Dim acad
      Dim ADO As New ADO
      acad = "'C:\Users\User\Desktop\AutoCad+Excel\[acad.xls]Лист1'!$A$4"
      ADO.Query ("SELECT F1 FROM acad;")
      Range("E1").CopyFromRecordset ADO.Recordset
        
      ADO.Query ("SELECT F2 FROM acad;")
      Range("F1").CopyFromRecordset ADO.Recordset
        
      ' Закрываем соединение, чтобы не висело : )
      ADO.Disconnect
        
       'ADO.Query ("SELECT F1 FROM [Лист1$] UNION SELECT F2 FROM [Лист1$];")
      ' Range("G1").CopyFromRecordset ADO.Recordset
        
      ' Тут автоматически закроется соединение
      ' и уничтожиться объекты Recordset и Connection
End Sub
[/vba]
Уважаемые, помогите! Как правильно указать путь к другой книге?

Обн:
[vba]
Код
ADO.DataSource = "C:\Users\User\Desktop\AutoCad+Excel\acad.xls"
     ADO.Query ("SELECT F1 FROM [Лист1$];")
[/vba]
Оказалось дело в одной лишь строчечке :'(
Сам спросил - сам ответил :D


Место для рекламы.

Сообщение отредактировал Stormy - Пятница, 07.03.2014, 18:12
 
Ответить
Сообщение[vba]
Код
Sub Example()
Dim acad
      Dim ADO As New ADO
      acad = "'C:\Users\User\Desktop\AutoCad+Excel\[acad.xls]Лист1'!$A$4"
      ADO.Query ("SELECT F1 FROM acad;")
      Range("E1").CopyFromRecordset ADO.Recordset
        
      ADO.Query ("SELECT F2 FROM acad;")
      Range("F1").CopyFromRecordset ADO.Recordset
        
      ' Закрываем соединение, чтобы не висело : )
      ADO.Disconnect
        
       'ADO.Query ("SELECT F1 FROM [Лист1$] UNION SELECT F2 FROM [Лист1$];")
      ' Range("G1").CopyFromRecordset ADO.Recordset
        
      ' Тут автоматически закроется соединение
      ' и уничтожиться объекты Recordset и Connection
End Sub
[/vba]
Уважаемые, помогите! Как правильно указать путь к другой книге?

Обн:
[vba]
Код
ADO.DataSource = "C:\Users\User\Desktop\AutoCad+Excel\acad.xls"
     ADO.Query ("SELECT F1 FROM [Лист1$];")
[/vba]
Оказалось дело в одной лишь строчечке :'(
Сам спросил - сам ответил :D

Автор - Stormy
Дата добавления - 07.03.2014 в 17:31
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выбор данных и перенос на другой лист. (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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