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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос для выборки данных из листа по условию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Макрос для выборки данных из листа по условию
ska Дата: Четверг, 10.03.2016, 17:02 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Здравствуйте, помогите написать макрос для выборки данных из одного листа и вставки в другой лист по условию.

Например, при вводе вручную на листе "Выборка" значения ячейки "IDДанные" требуется вставить в определенные ячейки столбца 5, столбца 6 и столбца 7 данные из определенных ячеек листа "Данные" и соответствующей строки.

К сообщению приложен файл: 8533266.xlsx (13.8 Kb)
 
Ответить
СообщениеЗдравствуйте, помогите написать макрос для выборки данных из одного листа и вставки в другой лист по условию.

Например, при вводе вручную на листе "Выборка" значения ячейки "IDДанные" требуется вставить в определенные ячейки столбца 5, столбца 6 и столбца 7 данные из определенных ячеек листа "Данные" и соответствующей строки.


Автор - ska
Дата добавления - 10.03.2016 в 17:02
китин Дата: Четверг, 10.03.2016, 17:07 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Именно макрос нужен?Здесь вполне формулами решаемо. Только поконкретнее из каких столбцов данные забирать


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеИменно макрос нужен?Здесь вполне формулами решаемо. Только поконкретнее из каких столбцов данные забирать

Автор - китин
Дата добавления - 10.03.2016 в 17:07
ska Дата: Четверг, 10.03.2016, 17:12 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Суть в том, что для некоторых случаев не будет данных в листе "Данные" и придется их вносить руками, формулы полетят.
Столбцы могут быть разными, это не важно, интересен сам пример макроса. Важно выбрать данные из определенных ячеек определенной строки листа "Данные" и вставить их в определенные ячейки той строки, куда руками ввели значение "IDДанные"
 
Ответить
СообщениеСуть в том, что для некоторых случаев не будет данных в листе "Данные" и придется их вносить руками, формулы полетят.
Столбцы могут быть разными, это не важно, интересен сам пример макроса. Важно выбрать данные из определенных ячеек определенной строки листа "Данные" и вставить их в определенные ячейки той строки, куда руками ввели значение "IDДанные"

Автор - ska
Дата добавления - 10.03.2016 в 17:12
ska Дата: Четверг, 10.03.2016, 17:20 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Может аналогичный пример кто подскажет?
 
Ответить
СообщениеМожет аналогичный пример кто подскажет?

Автор - ska
Дата добавления - 10.03.2016 в 17:20
Manyasha Дата: Четверг, 10.03.2016, 18:32 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 901 ±
Замечаний: 0% ±

Excel 2010, 2016
ska, конкретно по Вашему примеру:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim idData As Range
    Set idData = Intersect(Target, Columns("b:b"))
    If Not idData Is Nothing Then
        Set shData = Sheets("Данные")
        For Each cell In idData
            If cell <> "" Then
                With shData
                    r = .Columns(1).Find(cell, , xlValues, xlWhole).Row
                    c = .Rows(1).Find("Столбец5", , xlValues, xlWhole).Column
                    Cells(cell.Row, "e").Resize(, 3) = .Cells(r, c + 1).Resize(, 3).Value
                End With
            Else
                Cells(cell.Row, "e").Resize(, 3).ClearContents 'если не надо, убрать
            End If
        Next cell
    End If
End Sub
[/vba]
К сообщению приложен файл: 8533266-1.xlsm (21.5 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеska, конкретно по Вашему примеру:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim idData As Range
    Set idData = Intersect(Target, Columns("b:b"))
    If Not idData Is Nothing Then
        Set shData = Sheets("Данные")
        For Each cell In idData
            If cell <> "" Then
                With shData
                    r = .Columns(1).Find(cell, , xlValues, xlWhole).Row
                    c = .Rows(1).Find("Столбец5", , xlValues, xlWhole).Column
                    Cells(cell.Row, "e").Resize(, 3) = .Cells(r, c + 1).Resize(, 3).Value
                End With
            Else
                Cells(cell.Row, "e").Resize(, 3).ClearContents 'если не надо, убрать
            End If
        Next cell
    End If
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 10.03.2016 в 18:32
ska Дата: Четверг, 10.03.2016, 18:44 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Manyasha, огромное СПАСИБО!!!
 
Ответить
СообщениеManyasha, огромное СПАСИБО!!!

Автор - ska
Дата добавления - 10.03.2016 в 18:44
ska Дата: Четверг, 10.03.2016, 19:48 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Manyasha, а при таком алгоритме есть ограничения на тип данных / объем данных и прочие моменты?
 
Ответить
СообщениеManyasha, а при таком алгоритме есть ограничения на тип данных / объем данных и прочие моменты?

Автор - ska
Дата добавления - 10.03.2016 в 19:48
  • Страница 1 из 1
  • 1
Поиск:

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