Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.09.2008, 02:45   #11
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

при открытии документа выполнить вот это
Код:
    r = ActiveCell.Row
    c = ActiveCell.Column
    Range("A1:N29").Select
    ActiveWindow.Zoom = True
    Cells(r, c).Select
только вместо "A1:N29" пишем свой диапазон, который хотим видеть. эта штука сработает не только для разных разрешений монитора но и для того случая, когда эксель работает не в полноэкранном режиме.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 29.09.2008 в 15:05.
IgorGO вне форума
Старый 29.09.2008, 15:01   #12
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
любому автоматическому устройству необходим датчик, так и в Вашем случае. Как Excel определит где Вы работаете, дома или на работе? Сумеете решить эту задачу - тогда конечно можно и без кнопулек обойтись.
по разрешению и определит...

а лучше, может быть, использовать
application.activewindow.activepane .visiblerange.count ?

сколько видно, такой и масштаб..

или сколько надо, столько и отобразить, меняя масштаб..
slan вне форума
Старый 29.09.2008, 15:31   #13
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
по разрешению и определит...
хм..., логично !))
чёт я протупил ))
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 29.09.2008 в 15:51.
VictorM вне форума
Старый 29.09.2008, 21:38   #14
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
при открытии документа выполнить.
Игорь, вот переделал под свои 16 Листов, меняю на Листах, масштаб, все работает, НО, как только, перенес файл на др. ПК с 800 х 600, то происходит не соответствие, т. е. предел видимости таблицы "просится" еще увеличить, тот код, что я привел выше, работает почти идеально, чуть, чуть видимость таблицы, "просится" уменьшить.
Код:
Private Sub Workbook_Open()
Dim i As Integer, xK As Long
i = 11: xK = 25
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
            For L = 1 To 16
            Sheets(L).Select
            If L = 8 Then xK = 27
            If L = 14 Then xK = 21: i = 9
            If L > 14 Then xK = 27
    r = ActiveCell.Row
    c = ActiveCell.Column
    Range(Cells(1, 1), Cells(xK, i)).Select
    ActiveWindow.Zoom = True
    Cells(r, c).Select
    xK = 25
            Next
                Sheets("ЛЕН").Select
        .EnableEvents = True
        .ScreenUpdating = True
    End With
End Sub
slan!!
Что значит, красным или тут ошибка?
application.activewindow.activepane .visiblerange.c ount

Последний раз редактировалось valerij; 29.09.2008 в 22:13.
valerij вне форума
Старый 29.09.2008, 23:20   #15
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
предел видимости таблицы "просится" еще увеличить
Валера, а ты увеличь масштаб изображения на один процент вручную и увидишь как последняя строка или колонка полностью или частично уйдет за границы поля видимости. Проверь. Я тоже себя ловил на этой мысли.

"application.activewindow.activepan e.visiblerange.c ount" - в конце ".count", без пробела между ".c" и "ount".

Валера, смотри у тебя в цикле на 14 листе i поменял значение на 9 и не восстановил его 11, как задано перед циклом. хк ты восстанавливаешь к 25, а i остается 9 после 14-го листа, так задумано или ошибка?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 29.09.2008, 23:29   #16
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
а i остается 9 после 14-го листа, так задумано или ошибка?
Да, так задумано, Листы с 14 по 16, i = 9

Остальное попробую.
А этот код:
Код:
Application.ActiveWindow.ActivePane.VisibleRange.Count
Invalid use of Property

З. Ы.
Страно, если я этот код, вставляю без тег, то в Count, разделяется пробелом!
Application.ActiveWindow.ActivePane .VisibleRange.Count

Последний раз редактировалось valerij; 29.09.2008 в 23:53.
valerij вне форума
Старый 29.09.2008, 23:56   #17
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

на счет ".C ount" - вполне возможно. это было не проверенное предположение
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 30.09.2008, 01:22   #18
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
По умолчанию

Давненько попал на ресурс через ссылку в какой-то теме VictorM'а, за что очень благодарен ему.
Код:
Private Declare Function GetSystemMetrics _
        Lib "user32.dll" (ByVal nIndex As Long) As Long
Private Sub GetSystemScreen()
    Dim iX As Long, iY As Long
    iX = GetSystemMetrics(1&) 'высота в точках'
    iY = GetSystemMetrics(0&) 'соответсвенно, ширина'
    MsgBox "разрешение экрана : " & _
    iX & "x" & iY, vbExclamation, "Информация"
End Sub

ресурс msoffice.nm.ru
и запускай во время открытия книги.
tolikman вне форума
Старый 30.09.2008, 11:35   #19
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

Цитата:
Сообщение от valerij Посмотреть сообщение
slan!!
Что значит, красным или тут ошибка?
application.activewindow.activepane .visiblerange.c ount

пробел откуда-то влез - count - считать. вообще данное выражение находит количество видимых ячеек в активном окне

т.е. если окно максимизировать, посмотреть сколько ячеек видно и в цикле увеличивать/уменьшать масштаб до получения нужного количества видимых ячеек - разрешение экрана тут учитывается косвенно..
slan вне форума
Старый 30.09.2008, 11:41   #20
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

Цитата:
Сообщение от tolikman Посмотреть сообщение
Давненько попал на ресурс через ссылку в какой-то теме VictorM'а, за что очень благодарен ему.
Код:
Private Declare Function GetSystemMetrics _
        Lib "user32.dll" (ByVal nIndex As Long) As Long
Private Sub GetSystemScreen()
    Dim iX As Long, iY As Long
    iX = GetSystemMetrics(1&) 'высота в точках'
    iY = GetSystemMetrics(0&) 'соответсвенно, ширина'
    MsgBox "разрешение экрана : " & _
    iX & "x" & iY, vbExclamation, "Информация"
End Sub

ресурс msoffice.nm.ru
и запускай во время открытия книги.
ну можно и api, но есть же и свойства объектов window или aplication..

api могут быть с подозрением восприняты антивирусами..
slan вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение разрешения Sanek777 Общие вопросы Delphi 1 11.09.2008 17:43
Смена разрешения san72 Помощь студентам 0 04.06.2008 15:50
Определение разрешения монитора(ов) lamonana Общие вопросы Delphi 2 09.03.2008 18:56
данные о видеосистеме: тип видеоадаптера, тип монитора, режим монитора: разрешение, частота обновления WaxeP Win Api 9 15.04.2007 18:12
Логарифмический масштаб AfzaL Паскаль, Turbo Pascal, PascalABC.NET 2 03.12.2006 12:16