- Сообщения
- 5
- Реакции
- 0
У меня есть файл Excel, который состоит из множества страниц. нужно сделать сводную таблицу в другом файле. Как это сделать?
				
			Krendelechek сказал(а):У меня есть файл Excel, который состоит из множества страниц. нужно сделать сводную таблицу в другом файле. Как это сделать?
Великолепно! Именно это мне и нужно!aleksasha сказал(а):Если вас устроит собирание информации со всех листов на один, то могу предложить макрос, который добавляет пустой лист и на него "собирает" данные с остальных листов.
Krendelechek сказал(а):Великолепно! Именно это мне и нужно!
Sub All_to_last_page()
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Activate
Worksheets(Worksheets.Count).Name = "All"
Cells.Select
Selection.NumberFormat = "@"
myStroka1 = 1                      ' Объявляем номер начальной строки последнего листа
myCount = Worksheets.Count         ' Кол-во страниц
    
    For i = 1 To (myCount - 1)     ' с 1 по предпоследний лист перебираем
      myStroka = 1                 '
      myStolbets = 1               '
      myName = Worksheets(i).Name  ' Извлекаем имя текущего листа
        ' Пока на искомом листе три ячейки в строке подряд не будут пустыми
        If Worksheets(i).Cells(myStroka, myStolbets).Value <> "" Or Worksheets(i).Cells(myStroka, myStolbets + 1).Value <> "" Or Worksheets(i).Cells(myStroka, myStolbets + 2).Value <> "" Then
             Cells(myStroka1, 1).Value = myName  ' Вписываем имя листа
             Cells(myStroka1, 1).Font.Bold = True
             myStroka1 = myStroka1 + 1
        End If
        
        Do While Worksheets(i).Cells(myStroka, myStolbets).Value <> "" Or Worksheets(i).Cells(myStroka, myStolbets + 1).Value <> "" Or Worksheets(i).Cells(myStroka, myStolbets + 2).Value <> ""
        
                Worksheets(myCount).Cells(myStroka1, myStolbets).Value = Worksheets(i).Cells(myStroka, myStolbets).Value
                Worksheets(myCount).Cells(myStroka1, myStolbets + 1).Value = Worksheets(i).Cells(myStroka, myStolbets + 1).Value
                Worksheets(myCount).Cells(myStroka1, myStolbets + 2).Value = Worksheets(i).Cells(myStroka, myStolbets + 2).Value
                Worksheets(myCount).Cells(myStroka1, myStolbets + 3).Value = Worksheets(i).Cells(myStroka, myStolbets + 3).Value
        
            myStroka1 = myStroka1 + 1
            myStroka = myStroka + 1
        Loop
    Next i
Worksheets(myCount).Activate
Range("A1").Select
End SubНикакого секрета. Нужно просто снести количество сданых объявлений по каждому агентству. На листах они идут к-во умножить на цену=сумма... по дням недели. Теперь нужна сводная количество по дням и по фирмам. Только и всего. Простите, я по вашему макросу ничего не понимаю... (краснеет) Не могли бы вы более популярно объяснить как пользоваться вашей шпаргалкой? )))aleksasha сказал(а):"Сводной таблицей" не стоило называть подобный сбор данных. В Экселе этим термином называю нечто другое... Если не секрет, какого рода данные собираете?
Krendelechek сказал(а):Чей-то он (макрос) как-то так работает... непонятно... Скорее всего это я что-то не так сделала. Расскажите... КАК надо!
