Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Закрепление области с применением SmallScroll - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Закрепление области с применением SmallScroll (Макросы/Sub)
Закрепление области с применением SmallScroll
rever27 Дата: Пятница, 26.06.2015, 15:31 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Облазил весь интернет, но так и не нашел похожих тем.
Суть задачи: нужно через Private Sub активного листа сделать закрепление области шапки в таблице. Таблицы две.
Т.е. чтобы при выполнении Скролла колесиком мышки (от A1 строчки ActiveWindow.SmallScroll Down:=6 и ниже) закреплялась шапка таблицы в строках 4:7
При дальнейшем скролле после ActiveWindow.SmallScroll Down:=33 - шапка в строках 34:37 и наоборот.
Все это должно работать без выделения ячеек (не Private Sub Worksheet_SelectionChange)
Надеюсь, понятно выразился
К сообщению приложен файл: 8401006.xlsx (31.5 Kb)
 
Ответить
СообщениеОблазил весь интернет, но так и не нашел похожих тем.
Суть задачи: нужно через Private Sub активного листа сделать закрепление области шапки в таблице. Таблицы две.
Т.е. чтобы при выполнении Скролла колесиком мышки (от A1 строчки ActiveWindow.SmallScroll Down:=6 и ниже) закреплялась шапка таблицы в строках 4:7
При дальнейшем скролле после ActiveWindow.SmallScroll Down:=33 - шапка в строках 34:37 и наоборот.
Все это должно работать без выделения ячеек (не Private Sub Worksheet_SelectionChange)
Надеюсь, понятно выразился

Автор - rever27
Дата добавления - 26.06.2015 в 15:31
Karataev Дата: Пятница, 26.06.2015, 22:29 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
средствами самого excel такое сделать нельзя,т.к. у листа и программы нет события, запускаемого прокручиванием колесика мыши.
 
Ответить
Сообщениесредствами самого excel такое сделать нельзя,т.к. у листа и программы нет события, запускаемого прокручиванием колесика мыши.

Автор - Karataev
Дата добавления - 26.06.2015 в 22:29
ikki Дата: Суббота, 27.06.2015, 00:37 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
точнее - никаким прокручиванием вообще )

как вариант - можно воспользоваться штатным средством "Представления" (вкладка Вид)
в Вашем файле я создал два представления - с именами "_47" и "3437"
применяете то или другое - закрепленная шапка будет меняться.
К сообщению приложен файл: 1448954.xlsx (31.4 Kb)


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 27.06.2015, 00:42
 
Ответить
Сообщениеточнее - никаким прокручиванием вообще )

как вариант - можно воспользоваться штатным средством "Представления" (вкладка Вид)
в Вашем файле я создал два представления - с именами "_47" и "3437"
применяете то или другое - закрепленная шапка будет меняться.

Автор - ikki
Дата добавления - 27.06.2015 в 00:37
rever27 Дата: Суббота, 27.06.2015, 12:56 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Karataev, События прокручивания - нету, но есть события Скролл Бара, он изменяется после прокрутки.
[vba]
Код
Private Sub ScrollBar1_Change()
ScrollBar1.Value = 1
ScrollBar1.Max = 20
ScrollBar1.Min = 1
ScrollBar1.LargeChange = 1
End Sub
[/vba]

Я представлю эту реализацию через .SmallScroll относительно первой строк с четко заданными параметрами, когда откреплять, а когда закреплять область.
Что то на подобии такого кода, но только рабочего )))
[vba]
Код
With ActiveWindow
     Select Case .SmallScroll
         Case Is > 6: .FreezePanes = True
         Case Else: .FreezePanes = False
     End Select
End With
[/vba]

ikki, Спасибо, но хотелось бы полного автоматизма, это все таки скорее макрос для удобства глаза, а не первой необходимости ))
 
Ответить
СообщениеKarataev, События прокручивания - нету, но есть события Скролл Бара, он изменяется после прокрутки.
[vba]
Код
Private Sub ScrollBar1_Change()
ScrollBar1.Value = 1
ScrollBar1.Max = 20
ScrollBar1.Min = 1
ScrollBar1.LargeChange = 1
End Sub
[/vba]

Я представлю эту реализацию через .SmallScroll относительно первой строк с четко заданными параметрами, когда откреплять, а когда закреплять область.
Что то на подобии такого кода, но только рабочего )))
[vba]
Код
With ActiveWindow
     Select Case .SmallScroll
         Case Is > 6: .FreezePanes = True
         Case Else: .FreezePanes = False
     End Select
End With
[/vba]

ikki, Спасибо, но хотелось бы полного автоматизма, это все таки скорее макрос для удобства глаза, а не первой необходимости ))

Автор - rever27
Дата добавления - 27.06.2015 в 12:56
ikki Дата: Суббота, 27.06.2015, 13:16 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
скролл-бар в Вашем первом коде никакого отношения к прокручиванию листа и полосам прокрутки листа не имеет.
это отдельный контрол, который Вы можете разместить на листе.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениескролл-бар в Вашем первом коде никакого отношения к прокручиванию листа и полосам прокрутки листа не имеет.
это отдельный контрол, который Вы можете разместить на листе.

Автор - ikki
Дата добавления - 27.06.2015 в 13:16
rever27 Дата: Суббота, 27.06.2015, 14:26 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
ikki, Я понимаю, я в этом дилетант, просто есть есть управление контроллера, то я думал, можно и обычным скроллом управлять.
А можно через Worksheet_SelectionChange проверку на текущий .SmallScroll, и от этого плясать?
 
Ответить
Сообщениеikki, Я понимаю, я в этом дилетант, просто есть есть управление контроллера, то я думал, можно и обычным скроллом управлять.
А можно через Worksheet_SelectionChange проверку на текущий .SmallScroll, и от этого плясать?

Автор - rever27
Дата добавления - 27.06.2015 в 14:26
ikki Дата: Суббота, 27.06.2015, 14:43 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
если Вы прокручиваете лист с помощью колесика или полос прокрутки - событие SelectionChange не возникает.
кроме того, SmallScroll - это метод, а не свойство.
проверять просто нечего.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеесли Вы прокручиваете лист с помощью колесика или полос прокрутки - событие SelectionChange не возникает.
кроме того, SmallScroll - это метод, а не свойство.
проверять просто нечего.

Автор - ikki
Дата добавления - 27.06.2015 в 14:43
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Закрепление области с применением SmallScroll (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!