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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск заполненных ячеек и вывод данных в другую ячейку - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск заполненных ячеек и вывод данных в другую ячейку (Макросы/Sub)
Поиск заполненных ячеек и вывод данных в другую ячейку
Hoxton Дата: Воскресенье, 24.01.2016, 23:41 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток.

Имеются 2 таблицы для сбора данных об отсутствующих работниках в одну общую. Нужен макрос, который будет выводить ФИО отсутствующего работника рядом со строкой общей таблицы (болезнь, отпуск и т.д.).
Пробовал использовать функции ИНДЕКС и ПОИСКПОЗ, но в данном случае выводилось только первое ФИО из диапазона. В VBA разбираюсь довольно плохо, поэтому обращаюсь к Вам за помощью. Файл-пример прикреплен.

Заранее благодарю за помощь.
К сообщению приложен файл: 4051189.xls(22Kb)
 
Ответить
СообщениеДоброго времени суток.

Имеются 2 таблицы для сбора данных об отсутствующих работниках в одну общую. Нужен макрос, который будет выводить ФИО отсутствующего работника рядом со строкой общей таблицы (болезнь, отпуск и т.д.).
Пробовал использовать функции ИНДЕКС и ПОИСКПОЗ, но в данном случае выводилось только первое ФИО из диапазона. В VBA разбираюсь довольно плохо, поэтому обращаюсь к Вам за помощью. Файл-пример прикреплен.

Заранее благодарю за помощь.

Автор - Hoxton
Дата добавления - 24.01.2016 в 23:41
Manyasha Дата: Понедельник, 25.01.2016, 10:55 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1819
Репутация: 751 ±
Замечаний: 0% ±

Excel 2007, 2010
Hoxton, А куда выводить-то? Нарисуйте в фале результат, который нужен.


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеHoxton, А куда выводить-то? Нарисуйте в фале результат, который нужен.

Автор - Manyasha
Дата добавления - 25.01.2016 в 10:55
Roman777 Дата: Понедельник, 25.01.2016, 11:14 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 748
Репутация: 81 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Hoxton,
Такой попробуйте
[vba]
Код
Sub Äîá()
Dim i&, i_n&, j&, j_n&, n&, i2&, i2_n&
Dim t() As String
For n = 2 To 3
  If i_n < Worksheets(n).Cells(Rows.Count, 2).End(xlUp).Row Then
     i_n = Worksheets(n).Cells(Rows.Count, 2).End(xlUp).Row
  End If
  If j_n < Worksheets(n).Cells(1, Columns.Count).End(xlToLeft).Column Then
     j_n = Worksheets(n).Cells(1, Columns.Count).End(xlToLeft).Column
  End If
  ReDim Preserve t(2, i_n, j_n)
  For i = 1 To i_n
    For j = 2 To j_n
      t(n - 1, i, j) = Worksheets(n).Cells(i, j)
    Next j
  Next i
Next n
i2_n = Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row
Worksheets(1).Cells(1, 4).Resize(i2_n, 6).Clear
For i2 = 5 To 8
  For n = 2 To 3
      For j = 1 To j_n
        If t(n - 1, 1, j) = Worksheets(1).Cells(i2, 2) Then
           For i = 1 To i_n
              If t(n - 1, i, j) = "1" Then
                 If Worksheets(1).Cells(i2, 4) <> "" Then
                    Worksheets(1).Cells(i2, 4) = Worksheets(1).Cells(i2, 4) & ", " & t(n - 1, i, 2)
                 Else
                    Worksheets(1).Cells(i2, 4) = t(n - 1, i, 2)
                 End If
              End If
           Next i
        End If
      Next j
  Next n
Next i2
End Sub
[/vba]
Поскольку макрос ищет по названиям столбцов, то на Общей странице и на остальных, они должны быть одинаковы.
К сообщению приложен файл: 8458085.xls(44Kb)


Много чего не знаю!!!!
 
Ответить
СообщениеHoxton,
Такой попробуйте
[vba]
Код
Sub Äîá()
Dim i&, i_n&, j&, j_n&, n&, i2&, i2_n&
Dim t() As String
For n = 2 To 3
  If i_n < Worksheets(n).Cells(Rows.Count, 2).End(xlUp).Row Then
     i_n = Worksheets(n).Cells(Rows.Count, 2).End(xlUp).Row
  End If
  If j_n < Worksheets(n).Cells(1, Columns.Count).End(xlToLeft).Column Then
     j_n = Worksheets(n).Cells(1, Columns.Count).End(xlToLeft).Column
  End If
  ReDim Preserve t(2, i_n, j_n)
  For i = 1 To i_n
    For j = 2 To j_n
      t(n - 1, i, j) = Worksheets(n).Cells(i, j)
    Next j
  Next i
Next n
i2_n = Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row
Worksheets(1).Cells(1, 4).Resize(i2_n, 6).Clear
For i2 = 5 To 8
  For n = 2 To 3
      For j = 1 To j_n
        If t(n - 1, 1, j) = Worksheets(1).Cells(i2, 2) Then
           For i = 1 To i_n
              If t(n - 1, i, j) = "1" Then
                 If Worksheets(1).Cells(i2, 4) <> "" Then
                    Worksheets(1).Cells(i2, 4) = Worksheets(1).Cells(i2, 4) & ", " & t(n - 1, i, 2)
                 Else
                    Worksheets(1).Cells(i2, 4) = t(n - 1, i, 2)
                 End If
              End If
           Next i
        End If
      Next j
  Next n
Next i2
End Sub
[/vba]
Поскольку макрос ищет по названиям столбцов, то на Общей странице и на остальных, они должны быть одинаковы.

Автор - Roman777
Дата добавления - 25.01.2016 в 11:14
Hoxton Дата: Понедельник, 25.01.2016, 11:22 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Roman777, огромное спасибо! Как раз то, что мне необходимо.


Сообщение отредактировал Hoxton - Понедельник, 25.01.2016, 11:27
 
Ответить
СообщениеRoman777, огромное спасибо! Как раз то, что мне необходимо.

Автор - Hoxton
Дата добавления - 25.01.2016 в 11:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск заполненных ячеек и вывод данных в другую ячейку (Макросы/Sub)
Страница 1 из 11
Поиск:

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