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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2010, 15:29   #1
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию Координатное выделение

Где нашёл, не помню - да простит меня автор

В приложенном файле интересующий меня пример.
В приложенном файле один лист
В файле, на который хочу перенести подобную фишку, состоит из 12 листов. Как быть, куда поместить модуль?
Вложения
Тип файла: rar Coord_selection.rar (17.1 Кб, 93 просмотров)
kzld вне форума Ответить с цитированием
Старый 02.11.2010, 15:33   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Всё в модуль книги, кнопки исправить на другие макросы:

Код:
Public NoEvents As Boolean
Public Sub SelOn()
    NoEvents = False
End Sub
Public Sub SelOff()
    NoEvents = True
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim addr As String
    Dim x As Variant
    Dim rng, c, r, cll As String
    
    If NoEvents Then Exit Sub
    If Target.Cells.Count > 1 Then Exit Sub
        addr = ActiveCell.Address()
    x = Split(addr, "$")
    
    c = x(1)
    r = x(2)
    rng = c & ":" & c & "," & r & ":" & r
    Range(rng).Select
    cll = c & r
    Range(cll).Activate
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 02.11.2010, 18:41   #3
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Всё в модуль книги, кнопки исправить на другие макросы:
Спасибо. Всё работает
kzld вне форума Ответить с цитированием
Старый 08.02.2011, 00:28   #4
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию

А как можно ограничить диапазон ( например A3:O45) и изменить цвет координатного выделения ?

Последний раз редактировалось Uralmaster; 08.02.2011 в 10:27.
Uralmaster вне форума Ответить с цитированием
Старый 10.02.2011, 15:58   #5
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию вот пример макроса коорд выделения

вот пример макроса коорд выделения в диапазоне и цвет можно делать
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'координатное выделение
    On Error Resume Next 'по ошибке перейти к выполнению следующей строки
    Application.ScreenUpdating = False 'чтоб не моргало
    Dim x As Range: Set x = [B11:J5000]: x.Interior.ColorIndex = xlNone
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, x) Is Nothing Then
    Intersect(x, Target.EntireRow).Interior.ColorIndex = 35
    Intersect(x, Target.EntireColumn).Interior.ColorIndex = 35
    Target.Interior.ColorIndex = xlNone
End If
End Sub
диапазон B11:J5000 цвет зеленый

но одно но - макрос использует форматирование ячеек поэтому в диапазоне координатного выделения если есть какие то форматированные ячейки по цвету то они забьются

поэтому хотелось бы узнать как в макросе от уважаемого Hugo121 выделить диапазон B11:J5000 цвет сделать зеленый
и как оставить только горизонтальное выделение ?
Uralmaster вне форума Ответить с цитированием
Старый 10.02.2011, 16:39   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Как оставить только горизонтальное -
заменить
Код:
    rng = c & ":" & c & "," & r & ":" & r
на
Код:
    rng = r & ":" & r
Ну соотвественно там появляются лишние переменные "c" и "x", которые впрочем не мешают.
Про цвет не понял.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 10.02.2011, 18:54   #7
sanych_09
Пользователь
 
Аватар для sanych_09
 
Регистрация: 18.01.2011
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Как оставить только горизонтальное -
заменить
Код:
    rng = c & ":" & c & "," & r & ":" & r
на
Код:
    rng = r & ":" & r
Ну соотвественно там появляются лишние переменные "c" и "x", которые впрочем не мешают.
Про цвет не понял.
Добрый день!
а как сделать, чтобы координатное выделение было по умолчанию (т.е. запускалось сразу при открытии книги) на определенном листе?

заранее спасибо!
sanych_09 вне форума Ответить с цитированием
Старый 10.02.2011, 19:46   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Добрый вечер
Так в примере http://programmersforum.ru/attachmen...4&d=1288700914 так и сделано - при изменении выделения на листе срабатывает координатное выделение, если оно не отключено кнопкой.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 10.02.2011, 21:11   #9
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию про цвет

цвет - это цвет фона линй горизонтального и вертикального выделения
щас скрин приложу
Uralmaster вне форума Ответить с цитированием
Старый 10.02.2011, 21:13   #10
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию

и еще как можно диапазон координатного выделения ограничить например областью B8:G5000
так выглядит

Последний раз редактировалось Uralmaster; 10.02.2011 в 21:52.
Uralmaster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение masterenergy Microsoft Office Excel 2 04.09.2009 19:45
Выделение в TEdit Devoto Общие вопросы Delphi 3 15.04.2009 20:42
выделение StasSv Microsoft Office Excel 8 26.01.2009 14:02
выделение StasSv Microsoft Office Excel 2 10.11.2008 17:15
Выделение картинки SergGhost Мультимедиа в Delphi 14 28.09.2008 13:01