вопрос по VBA

Программирование на Visual Basic for Applications
Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

вопрос по VBA

Сообщение Maks the best » 09.06.2005 (Чт) 12:51

Кто подскажет, такой вопрос ...
Как определить сколько с одного листа на печать уходит страниц?

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 09.06.2005 (Чт) 13:08

я имею ввиду лист Excel ...

a_mayor
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 02.06.2005 (Чт) 21:44

Сообщение a_mayor » 09.06.2005 (Чт) 14:20

Код: Выделить всё

HPageBreaks.Count

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 09.06.2005 (Чт) 14:27

Понимаешь, если на листе Excel было при выводе на печать больше одного листа (после разбиения на страницы) то ActiveWindow.SelectedSheets.HPageBreaks.Count
выдаёт всё равно один лист ...

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 14.06.2005 (Вт) 19:15

22
Последний раз редактировалось Al Khamid 03.11.2007 (Сб) 19:02, всего редактировалось 1 раз.
"Время пришло..." ©

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 15.06.2005 (Ср) 9:40

Спасибо, за ответ ! :)

Слушай, а как ты определяешь границу разрыва страницы, только по параметру высоты страницы? Просто при авторазбиении там она вальируется от этой величины и не всегда можно понять последний это лист или к примеру 72 из 143 :-) ...? У меня на 1 листе иногда до 150 - 200 страниц... Ну вообще, если сможешь, напиши свой метод...

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 17.06.2005 (Пт) 15:22

Последний раз редактировалось Al Khamid 08.12.2007 (Сб) 9:06, всего редактировалось 1 раз.

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 17.06.2005 (Пт) 15:26

Спасибо, посмотрю, попробую :)

Dave
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 18.02.2004 (Ср) 11:02
Откуда: Москва

Сообщение Dave » 29.06.2006 (Чт) 15:48

Извиняюсь, а никто более рационального и менее объмного спсособа определения количества страниц на листе не нашел?
Слабый пол сильнее сильного в силу сильной слабости сильного пола к слабому...

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 29.06.2006 (Чт) 15:56

я нашел, только пока чуть занят, завтра напишу
Изображение

Dave
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 18.02.2004 (Ср) 11:02
Откуда: Москва

Сообщение Dave » 29.06.2006 (Чт) 16:03

спасибо, видно не на много короче получилось решить проблему :D
Слабый пол сильнее сильного в силу сильной слабости сильного пола к слабому...

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 29.06.2006 (Чт) 16:08

намного, только есть нюансы там одни, надо мне на код взглянуть, а пока ника, так что узавтра :O)
Изображение

Dave
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 18.02.2004 (Ср) 11:02
Откуда: Москва

Сообщение Dave » 30.06.2006 (Пт) 8:46

не хочу показаться назойливой.... :lol:
Слабый пол сильнее сильного в силу сильной слабости сильного пола к слабому...

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

вот

Сообщение Maks the best » 30.06.2006 (Пт) 11:00

вобщем так:

Код: Выделить всё

Public s As Object
Public n As Integer

Sub num_s()

'номер первой страницы
n = 1
' цикл всех листов книги
For Each s In Sheets
' первый номер на листе s
s.PageSetup.FirstPageNumber = n
' номер в правом нижнем колонтитуле 8 шрифтом
s.PageSetup.RightFooter = "&8&P"
' корректировка n
n = s.HPageBreaks.Count + n + 1
Next s

End Sub
Изображение

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Re: вот

Сообщение Nicky » 30.06.2006 (Пт) 11:36

Maks the best писал(а):вобщем так:

Код: Выделить всё
Public s As Object
Public n As Integer

Sub num_s()

'номер первой страницы
n = 1
' цикл всех листов книги
For Each s In Sheets
' первый номер на листе s
s.PageSetup.FirstPageNumber = n
' номер в правом нижнем колонтитуле 8 шрифтом
s.PageSetup.RightFooter = "&8&P"
' корректировка n
n = s.HPageBreaks.Count + n + 1
Next s

End Sub

Не работает.
А вот это работает:
Код: Выделить всё
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 30.06.2006 (nicky)
'
' Сочетание клавиш: Ctrl+q
'
  With ThisWorkbook.ActiveSheet
    MsgBox "Лист: " & .Name & vbLf & "Страниц: " & (.HPageBreaks.Count + 1) * (.VPageBreaks.Count + 1)
  End With
End Sub

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 30.06.2006 (Пт) 11:41

Nicky
все работает :!:
Изображение

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 30.06.2006 (Пт) 11:46

Не работает. К тому же еще книгу изменяет. Бяка
Поднимите руки, у кого работает код Maks the best'а?
А у кого мой?

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 30.06.2006 (Пт) 11:52

ну единственное не учел VPageBreaks.Count

вот

Код: Выделить всё

Public s As Object
Public n As Integer

Sub num_s()

'номер первой страницы
n = 1
' цикл всех листов книги
For Each s In Sheets
' первый номер на листе s
s.PageSetup.FirstPageNumber = n
' номер в правом нижнем колонтитуле 8 шрифтом
s.PageSetup.RightFooter = "&8&P"
' корректировка n
n = s.HPageBreaks.Count + s.VPageBreaks.Count + n + 1
Next s

End Sub
Последний раз редактировалось Maks the best 30.06.2006 (Пт) 15:25, всего редактировалось 1 раз.
Изображение

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 30.06.2006 (Пт) 11:59

Maks the best писал(а):ну единственное не учел VPageBreaks.Count

Даже если исправить присутствующую в коде ошибку, все равно показывает неправильно.
Ты мой код смотрел? Чем он плох?
ИМХО ты подгоняешь результат под конкретную книгу

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 30.06.2006 (Пт) 12:54

я понял твой код, он и есть решение чтобы посмотреть сколько на листе страниц, просто я делал код не только чтоб посмотреть, уж msgbox в твоем случае можно просто заменить кнопкой предварительный просмотр. а чтоб нумировать страницы при выводе на принтер :shock:
Изображение

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Re: вопрос по VBA

Сообщение Nicky » 30.06.2006 (Пт) 13:26

А это тогда что?
Maks the best писал(а):Кто подскажет, такой вопрос ...
Как определить сколько с одного листа на печать уходит страниц?

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 30.06.2006 (Пт) 14:05

Nicky
вопрос был с контекстом простановки страниц, я техникой использования кнопки просмотра владел, дядя бил учил в документации к офису :!:
Изображение

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 30.06.2006 (Пт) 16:08

короче оба кода неправильно считают иногда если HPageBreaks.Count больше двух и VPageBreaks.Count больше нуля ... так что ...
Изображение


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50

    TopList  
cron