Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 15 ]
- GPELLIHuK
- рядовой
- Неактивен
- Зарегистрирован: 13.02.2014
- Сообщений: 6
Тема: Сортировка страниц в word
Вообщем проблема такова. В документе ворд собрано 300-о с лишним станиц с платежными поручениями и как бы прям очень хотелось чтобы они были по суммам по порядочку. Все попытки рассортировать сей документ не принесли плодов. может кто сможет подсказать как быть в такой ситуации, может макрос какой подможет?

- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Сортировка страниц в word
Можно макросом, но лучше увидеть пример страницы
Лучше день потерять — потом за пять минут долететь!
- GPELLIHuK
- рядовой
- Неактивен
- Зарегистрирован: 13.02.2014
- Сообщений: 6
Re: Сортировка страниц в word
вот пример. каждая платежка занимает отдельную страницу все 300 страниц выкидывать не буду. надо чтоб сортировались страници по колонке "сумма" . А как это сделать ума не приложу... 
Post's attachmentsПример плат. поруч.docx 53.14 Кб, 9 скачиваний с 2014-02-14
You don't have the permssions to download the attachments of this post.

- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Сортировка страниц в word
Ок. Попробуйте мой вариант. Подключите этот шаблон через Надстройки, откройте нужный документ, нажмите Alt+S (или Alt+F8 и выполнить макрос SortTables). После этого, по идее, должен создаться новый документ с таблицами, отсортированными по возрастанию суммы.
Макрос не ахти какой, на скорую руку. Буду рад, если помогут оптимизировать.
Option Explicit
Public Type Tbl
Start As Long
Sum As Single
End Type
Public Sub SortTables()
Dim ar() As Tbl, oNewDoc As Document, oCurrDoc As Document
Dim t As Tbl
ReDim ar(0)
Set oCurrDoc = ActiveDocument
With oCurrDoc.Range.Find
.Text = "<[0-9]@-[0-9]{2}>"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
While .Execute
t.Start = .Parent.Tables(1).Range.Start
t.Sum = CSng(Replace(.Parent.Text, "-", ","))
ar(UBound(ar)) = t
ReDim Preserve ar(UBound(ar) + 1)
Wend
End With
ReDim Preserve ar(UBound(ar) - 1)
Dim i As Long, j As Long, temp As Tbl
For i = 0 To UBound(ar) - 1
For j = i + 1 To UBound(ar)
If ar(i).Sum > ar(j).Sum Then
temp = ar(i)
ar(i) = ar(j)
ar(j) = temp
End If
Next j, i
Set oNewDoc = Documents.Add
Dim oRng As Range
For i = 0 To UBound(ar)
oCurrDoc.Range(ar(i).Start, ar(i).Start).Tables(1).Range.Copy
oNewDoc.Paragraphs.Last.Range.PasteAndFormat (wdFormatOriginalFormatting)
If i < UBound(ar) Then oNewDoc.Paragraphs.Last.Range.InsertBreak wdPageBreak
Next i
End Sub
Post's attachmentsSorPayroll.dot 34 Кб, 2 скачиваний с 2014-02-14
You don't have the permssions to download the attachments of this post.
Лучше день потерять — потом за пять минут долететь!

- Вождь
- Модератор
- Неактивен
- Зарегистрирован: 07.01.2010
- Сообщений: 745
- Поблагодарили: 181
Re: Сортировка страниц в word
Сортировать можно на месте с помощью MoveText. В остальном, я похоже бы сделал.
Есть еще извращенная идея как это сделать руками: поместить платежки в таблицу, в первый столбец, ячейка - платежка, сделать закладки на суммы, вывести перекрестные ссылки с сумм во второй столбец, и просто отсортировать таблицу по второму столбцу.
Макросы под заказ и готовый пакет - mtdmacro.ru
- GPELLIHuK
- рядовой
- Неактивен
- Зарегистрирован: 13.02.2014
- Сообщений: 6
Re: Сортировка страниц в word
отписываюсь по макрасу. Первые листов 7-8 сортирует корректно, но дальше получается вообще не понятно. Происходит следующее: следующие листы сортирует в хаотичном порядке и почему то если в исходном документе было 260 листов, то в созданом их уже 366, я просто в макросах вообще 0... help please

- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Сортировка страниц в word
Странно. Ладно, добавим DoEvents, может на переключении между документами спотыкается.
Post's attachmentsSorPayroll.dot 35 Кб, 3 скачиваний с 2014-02-14
You don't have the permssions to download the attachments of this post.
Лучше день потерять — потом за пять минут долететь!
- GPELLIHuK
- рядовой
- Неактивен
- Зарегистрирован: 13.02.2014
- Сообщений: 6
Re: Сортировка страниц в word
печаль... все равно страниц 10-15 все ровно, а потом все в разнобой...
а можете отхоровожить макрос до идеала скажем зелененьких так за 5? я бы оригинал документа скинул бы на маил
- GPELLIHuK
- рядовой
- Неактивен
- Зарегистрирован: 13.02.2014
- Сообщений: 6
Re: Сортировка страниц в word
или назавите пожалуйста свой ценник за работу. любая работа должна оплачиваться

- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Сортировка страниц в word
Решение найдено. Оказывается при поиске ошибочно находились цифры, не являющиеся суммой. Проблема решилась проверкой, что в ячейке ничего не содержится кроме найденного текста:
Public Type Tbl
Start As Long
Sum As Single
End Type
Public Sub SortTables()
Dim ar() As Tbl, oNewDoc As Document, oCurrDoc As Document
Dim t As Tbl
ReDim ar(0)
Set oCurrDoc = ActiveDocument
With oCurrDoc.Range.Find
.Text = "<[0-9]@-[0-9]{2}>"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
While .Execute
.Parent.Select
If Len(.Parent.Cells(1).Range.Text) = Len(.Parent.Text) + 2 Then
t.Start = .Parent.Start
t.Sum = CSng(Replace(.Parent.Text, "-", ","))
ar(UBound(ar)) = t
ReDim Preserve ar(UBound(ar) + 1)
End If
Wend
End With
ReDim Preserve ar(UBound(ar) - 1)
Dim i As Long, j As Long, temp As Tbl
For i = 0 To UBound(ar) - 1
For j = i + 1 To UBound(ar)
If ar(i).Sum > ar(j).Sum Then
temp = ar(i)
ar(i) = ar(j)
ar(j) = temp
End If
Next j, i
Set oNewDoc = Documents.Add
For i = 0 To UBound(ar)
oCurrDoc.Range(ar(i).Start, ar(i).Start).Tables(1).Range.Copy
oNewDoc.Paragraphs.Last.Range.PasteAndFormat (wdFormatOriginalFormatting)
If i < UBound(ar) Then oNewDoc.Paragraphs.Last.Range.InsertBreak wdPageBreak
DoEvents
StatusBar = "Обработано " & i & " таблиц из " & UBound(ar)
Next i
End Sub
Лучше день потерять — потом за пять минут долететь!
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
Re: Сортировка страниц в word
viter.alex пишет:Решение найдено. Оказывается при поиске ошибочно находились цифры, не являющиеся суммой. Проблема решилась проверкой, что в ячейке ничего не содержится кроме найденного текста
Вообще макрос по моему мнению не правильно составлен. Надо делать перебор таблиц и создавать либо Array, либо Collection на основе ячееек каждой таблицы 89 (Номер платежки), 91 (Дата платежа), 135 (Сумма платежа).
Тогда можно будет сортировать эти таблицы по указанным параметрам. На основе этих данных уже можно будет составить процедуры:
1. Переход на указанную платежку.
2. Печать указанных платежек.
3. Создание сортировачного документа по выбранному параметру.

- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Сортировка страниц в word
В плане дальнейшего развития конечно, но задача была только отсортировать по сумме
Лучше день потерять — потом за пять минут долететь!
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
Re: Сортировка страниц в word
viter.alex пишет:В плане дальнейшего развития конечно, но задача была только отсортировать по сумме
Так таже по сумме ячека будет 135
- Зарегистрирован: 23.04.2014
- Сообщений: 1
Re: Сортировка страниц в word
Подскажите нашли ли вы решение проблемы, тема еще актуальна

- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Сортировка страниц в word
Решение найдено и опубликовано в этом сообщении
Лучше день потерять — потом за пять минут долететь!
Сообщений [ 15 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сортировка страниц в word
Любую работу можно сделать несколькими различными способами. В силах человека выбрать наиболее удобный для себя, оптимальный и рациональный. Наш сайт о Microsoft Office Word даст ответ про: нельзя создать формулу в ворде.
Если говорить о работе с текстами: написании рефератов, дипломов, статей, редактировании различных документов и оформлении презентаций, то Microsoft Word дает массу возможностей для этого. Наш сайт о Microsoft Office Word даст ответ про: чем открыть файл формата docx.
Познакомиться с ними, расширить свои познания о программе или поделиться секретами и хитростями с другими пользователями вы можете на форуме Ворд Эксперт. Наш сайт о Microsoft Office Word даст ответ про: ячейки таблицы переходят на другую страницу.
Здесь собрана основная информация и ответы на наиболее популярные вопросы по работе с приложением. Например, о создании макросов, о колонтитулах, удалении лишних пробелов. На портале о Microsoft Office Word вы узнаете про: почему в word не активный уровень.
В основных разделах можно обсудить настройки самого Ворда и способы работы с текстом в различных версиях программы. На портале о Microsoft Office Word вы узнаете про: обьеденить word в один.
Подфорум «Автоматизация» предлагает освоить технику создания макросов и задания шаблонов для различных операций и функций. На портале о Microsoft Office Word вы узнаете про: что делать если текст без пробелов.
Здесь же на форуме можно найти готовые решения, разнообразные шаблоны, макросы для редактирования таблиц, оглавлений и многое другое. Наш сайт о Microsoft Office Word даст ответ про: офис 2007 tabs ribbons описание.
Возможно и оставить заявку, описав свою проблему в соответствующем подразделе. Если у вас есть какие –то оригинальные идеи и решения – форум лучшее место поделиться ими с другими пользователями Ворда. На портале о Microsoft Office Word вы узнаете про: как отключить calibri.