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

Вход

Регистрация

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

 

= Мир MS Excel/Cоздание отчетов на новых листах в Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Cоздание отчетов на новых листах в Excel
Veterk Дата: Вторник, 06.03.2012, 11:56 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте Уважаемые форумчане, требуется Ваша профессиональная помощь. Сам к сожалению не смог найти решения данной проблемы.

Есть Excel таблица, на первом листе таблица из которой нужно получать отчеты на других листах ( какого вида можно увидеть в приложенном файле.
Причем на первом листе могут добавляться строки с товаром. В отчет же переносятся при формированиитолько те строки где присутсвует товар.

Буду благодарен за Вашу помощь.

С Уважением.
К сообщению приложен файл: sklad.rar (1.6 Kb)
 
Ответить
СообщениеЗдравствуйте Уважаемые форумчане, требуется Ваша профессиональная помощь. Сам к сожалению не смог найти решения данной проблемы.

Есть Excel таблица, на первом листе таблица из которой нужно получать отчеты на других листах ( какого вида можно увидеть в приложенном файле.
Причем на первом листе могут добавляться строки с товаром. В отчет же переносятся при формированиитолько те строки где присутсвует товар.

Буду благодарен за Вашу помощь.

С Уважением.

Автор - Veterk
Дата добавления - 06.03.2012 в 11:56
Jhonson Дата: Вторник, 06.03.2012, 12:41 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Для наименований:
[vba]
Code
=ИНДЕКС(Склад!$A$2:$A$5;НАИМЕНЬШИЙ(ЕСЛИ(СМЕЩ(Склад!$C$2:$C$5;;ПОИСКПОЗ($C$1;Склад!$C$1:$F$1;0)-1)<>0;СТРОКА(Склад!$C$2:$C$5)-1);СТРОКА(A1)))
[/vba]
Формула массива.

Для количества:
[vba]
Code
=ИНДЕКС(Склад!$C$2:$F$5;ПОИСКПОЗ(B3;Склад!$A$2:$A$5;);ПОИСКПОЗ($C$1;Склад!$C$1:$F$1;))
[/vba]
Обычная формула.

От ошибки избавляемся любым способом!

Добавил лист с выбором фирмы!
Еще можно сводными!
К сообщению приложен файл: 4070598.xls (27.5 Kb)


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Вторник, 06.03.2012, 12:57
 
Ответить
СообщениеДля наименований:
[vba]
Code
=ИНДЕКС(Склад!$A$2:$A$5;НАИМЕНЬШИЙ(ЕСЛИ(СМЕЩ(Склад!$C$2:$C$5;;ПОИСКПОЗ($C$1;Склад!$C$1:$F$1;0)-1)<>0;СТРОКА(Склад!$C$2:$C$5)-1);СТРОКА(A1)))
[/vba]
Формула массива.

Для количества:
[vba]
Code
=ИНДЕКС(Склад!$C$2:$F$5;ПОИСКПОЗ(B3;Склад!$A$2:$A$5;);ПОИСКПОЗ($C$1;Склад!$C$1:$F$1;))
[/vba]
Обычная формула.

От ошибки избавляемся любым способом!

Добавил лист с выбором фирмы!
Еще можно сводными!

Автор - Jhonson
Дата добавления - 06.03.2012 в 12:41
Veterk Дата: Вторник, 06.03.2012, 13:33 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

А возможно ли такое сделать в виде какого-нибудь макроса для вот такой таблицы?
Видел в свое время где-то но как так делают не знаю.
К сообщению приложен файл: 2569056.rar (38.2 Kb)


Сообщение отредактировал Veterk - Вторник, 06.03.2012, 13:35
 
Ответить
СообщениеА возможно ли такое сделать в виде какого-нибудь макроса для вот такой таблицы?
Видел в свое время где-то но как так делают не знаю.

Автор - Veterk
Дата добавления - 06.03.2012 в 13:33
Jhonson Дата: Вторник, 06.03.2012, 16:36 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Наверное так, сделал на скорую руку:
[vba]
Code
Sub perenos()
Dim firm() As String, sh As Object
Dim i#, ch#, fin#, h#, kol#
fin = Sheets("общий").Cells(Rows.Count, 1).End(xlUp).Row
kol = 7
Do While Sheets("общий").Cells(1, kol) <> ""
      kol = kol + 1
Loop
For i = 7 To kol - 2
      Sheets.Add After:=Sheets(Sheets.Count)
Next i
h = 7
For Each sh In ThisWorkbook.Worksheets
ch = 1
If sh.Name <> "общий" Then
      For i = 2 To fin Step 2
          If Worksheets("общий").Cells(i + 1, h) <> 0 Then
              sh.Cells(ch + 1, 2) = Worksheets("общий").Cells(i, 1)
              sh.Cells(ch + 1, 3) = Worksheets("общий").Cells(i + 1, h)
              ch = ch + 1
          End If
      Next i
      h = h + 1
End If
Next
End Sub
[/vba]
К сообщению приложен файл: 2644197.rar (46.1 Kb)


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Вторник, 06.03.2012, 16:36
 
Ответить
СообщениеНаверное так, сделал на скорую руку:
[vba]
Code
Sub perenos()
Dim firm() As String, sh As Object
Dim i#, ch#, fin#, h#, kol#
fin = Sheets("общий").Cells(Rows.Count, 1).End(xlUp).Row
kol = 7
Do While Sheets("общий").Cells(1, kol) <> ""
      kol = kol + 1
Loop
For i = 7 To kol - 2
      Sheets.Add After:=Sheets(Sheets.Count)
Next i
h = 7
For Each sh In ThisWorkbook.Worksheets
ch = 1
If sh.Name <> "общий" Then
      For i = 2 To fin Step 2
          If Worksheets("общий").Cells(i + 1, h) <> 0 Then
              sh.Cells(ch + 1, 2) = Worksheets("общий").Cells(i, 1)
              sh.Cells(ch + 1, 3) = Worksheets("общий").Cells(i + 1, h)
              ch = ch + 1
          End If
      Next i
      h = h + 1
End If
Next
End Sub
[/vba]

Автор - Jhonson
Дата добавления - 06.03.2012 в 16:36
Veterk Дата: Вторник, 06.03.2012, 17:31 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Quote (Jhonson)
Наверное так, сделал на скорую руку:

Спасибо тебе огромное.
 
Ответить
Сообщение
Quote (Jhonson)
Наверное так, сделал на скорую руку:

Спасибо тебе огромное.

Автор - Veterk
Дата добавления - 06.03.2012 в 17:31
  • Страница 1 из 1
  • 1
Поиск:

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