Страницы: 1
RSS
Отображение списка в две колонки для печати
 
С Новым годом!
Данный вопрос обсуждался. Решение предлагалось при помощи надстройки PLEX.
Пробовал - у меня ничего не получилось.

Есть список 5-10 тыс строк. В списке 5 столбцов.
Список нужно распечатать в две колонки.

Прилагаю файл. В файле есть лист- ДАНО и лист как НАДО.
Спасибо.
 
для этого макроса на листе не должно быть скрытых строк
макрос нужно  запускать,когда активный лист-это исходный лист
Код
Sub Макрос()
    Dim shActive As Worksheet, shNew As Worksheet
    Dim total As Long, first As Long
    Set shActive = ActiveSheet
    total = shActive.Cells.Find(What:="?", LookIn:=xlValues, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
        , SearchFormat:=False).Row - 1
    first = Application.WorksheetFunction.RoundUp(total / 2, 0)
    Set shNew = Sheets.Add(, Sheets(Sheets.Count))
    shNew.Range("A1:E1").Value = shActive.Range("A1:E1").Value
    shNew.Range("F1:J1").Value = shActive.Range("A1:E1").Value
    shNew.Range("A2").Resize(first, 5).Value = shActive.Range("A2").Resize(first, 5).Value
    shNew.Range("F2").Resize(total - first, 5).Value = _
        shActive.Range("A" & first + 2).Resize(total - first, 5).Value
End Sub
 
Karataev, Огромное спасибо!

Прошу прощения. Но я не знаю куда вставить этот код макроса и как его запустить.
 
вам нужно один раз сделать работу или  периодически надо делать  эту работу?
 
Периодически
 
вставил макрос в файл и сделал кнопку для запуска  макроса
Изменено: Karataev - 02.01.2015 21:54:17
 
При запуске макроса всплывает окно
 
при открытии файла вверху появляется панель с кнопкой,на которой написано про макросы ?
я внес изменения в файл,поэтому на всякий случай  скачайте файл еще раз
 
Открыл книгу заново - работает.

Огромное спасибо!
 
Korss, у меня при первом скачивании сработало нормально
Лень двигатель прогресса, доказано!!!
 
раз делала выкладываю
от выделения отталкивается.
Код
Sub Разбить_по_столбцам()
Const newrr = 15 'новое кол-во строк
Set output = Sheets("Дано").[G1] 'куда выводить

rr = Selection.Rows.Count
cc = Selection.Columns.Count
Set cell = Selection.Cells(2, 1)

ii = Application.WorksheetFunction.RoundUp((rr - 1) / (newrr - 1), 0)
title0 = cell.Offset(-1, 0).Resize(1, cc)

For i = 0 To ii - 1
output.Offset(0, cc * i).Resize(1, cc) = title0
output.Offset(1, cc * i).Resize(newrr - 1, cc).Value = _
    cell.Offset((newrr - 1) * i, 0).Resize(newrr - 1, cc).Value
Next

End Sub
Работать надо не 12 часов, а головой.
 
Leanna,Спасибо. Попробовал.
С Вашего позволения уточню задачу.

Изначально список может быть до 20 000 строк по 5 столбцов.
Если будет 9000 строк две колонки будут занимать 4500 строк на листе.
Если 4000 то 2000 на листе.

Мне ответил  Karataev у него все как надо.
Но Вам тоже спасибо.
Изменено: Korss - 03.01.2015 00:46:57
 
Здравствуйте может кто ни будь помочь необходимо поделить список на две колонки, но в данном макросе делится ровно пополам по всему тексту, а нужно чтоб каждая вторая страница поднималась к первой.
Сейчас делается
1 5
2 6
3 7
4 8
а нужно
1 2
3 4
5 6
7 8

Количество строк до 100000. Пример во вложение.
Изменено: fater - 09.04.2017 09:40:29
 
Актуально ?
самому понадобилось... набросал программку
 
Stane, очень пригодился ответ! Спасибо большое!
Страницы: 1
Наверх