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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2014, 01:07   #11
явген
Пользователь
 
Аватар для явген
 
Регистрация: 06.08.2011
Сообщений: 40
По умолчанию

Макросом это хорошая идея, но знать бы каким таким макросом.
Явген
явген вне форума Ответить с цитированием
Старый 03.02.2014, 01:11   #12
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

знать бы что макрос должен делать и написать можно было
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 03.02.2014, 01:15   #13
явген
Пользователь
 
Аватар для явген
 
Регистрация: 06.08.2011
Сообщений: 40
По умолчанию

Макрос должен выделить ячейку, а потом снять это выделение если нужно, но желательно это надо сделать кликом мыши.
Большое спасибо.
Явген
явген вне форума Ответить с цитированием
Старый 03.02.2014, 09:25   #14
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

В модуль листа:
Код:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Interior.ColorIndex <> xlNone Then
        Target.Interior.ColorIndex = xlNone
        Cancel = True
    End If
End Sub
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 03.02.2014, 09:48   #15
явген
Пользователь
 
Аватар для явген
 
Регистрация: 06.08.2011
Сообщений: 40
По умолчанию

Огромное спасибо Kuklp, буду разбираться.
Явген
явген вне форума Ответить с цитированием
Старый 03.02.2014, 12:27   #16
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Грубо, но работает. Позволяет добавлять ячейку к уже выбранным, и исключать ее при повторном "клике". Кто все исправит - молодец)

Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Dim p As Boolean: p = False
err.Clear
Dim Items As New Collection

For Each r In Target
    Items.Add r.Address, r.Address
    If err.Number <> 0 Then
         Items.Remove (r.Address)
         p = True
         err.Clear
    End If
Next
If p = False Then Exit Sub
err.Clear
n = Application.RoundUp(Items.Count / 30, 0) - 1
Dim MI() As String
ReDim MI(n)
For I = 0 To n
    temp = ""
    For j = I * 30 + 1 To I * 30 + 30
        temp = temp + Items(j) + ","
        If err.Number <> 0 Then
            Exit For
        End If
    Next
    MI(I) = Left(temp, Len(temp) - 1)
Next


Dim ran As Range: Set ran = Range(MI(0))
For I = 1 To n
    Set ran = Union(ran, Range(MI(I)))
Next

ran.Select
Range(Items(Items.Count)).Activate
End Sub
maksim_serg вне форума Ответить с цитированием
Старый 03.02.2014, 12:42   #17
явген
Пользователь
 
Аватар для явген
 
Регистрация: 06.08.2011
Сообщений: 40
По умолчанию

Спасибо большое maksim_serg.
Но у меня макрос не запускается, может глянешь?
Вложения
Тип файла: rar Книга1.rar (7.5 Кб, 6 просмотров)
Явген
явген вне форума Ответить с цитированием
Старый 03.02.2014, 12:46   #18
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Этот код нужно поместить в "лист1 (лист1)"
Выделяешь группу ячеек, а потом щелкаешь по листу с зажатой CTRL (только на первом листе разумеется)
maksim_serg вне форума Ответить с цитированием
Старый 03.02.2014, 13:13   #19
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

maksim_serg, это часть задачи... собрали коллекцию адресов ячеек (хотя можно было собрать сами ячейки в диапазон, добавляя, удаляя с помощью Intersect, Union)

такой диапазон очень удобно обозначить каким-то способом всех сразу и одной командой, но...
у каждой из ячеек могло быть СВОЕ СПЕЦИФИЧЕСКОЕ ФОРМАТИРОВАНИЕ, когда ячейка добавляется в диапазон это форматирование необходимо запомнить, а когда удаляется вернуть обратно

получив код от kuklp, явген со словами
Цитата:
буду разбираться.
видимо ушел в нирвану, от того насколько точно макрос решает его задачу или насколько он космически далек от решения.

Господа, Вы настойчиво пытаетесь решать задачу, условия которой не известны.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 03.02.2014, 13:17   #20
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

ну почему не ясно, что он хочет...
Цитата:
Сообщение от явген Посмотреть сообщение
Вопрос в следующем: как можно сделать, что бы одним кликом мыши выделить одну или последовательно несколько разных ячеек и как тем же кликом мыши отменить выделение отдельных ячеек без отмены выделения остальных.
будем ждать когда выйдет из нирваны)
maksim_serg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ctrl+shift+g delphi 7 Jleksern Общие вопросы Delphi 4 25.08.2012 20:33
как отследить нажатие Ctrl+Shift v4567 Qt и кроссплатформенное программирование С/С++ 4 31.05.2011 18:42
Ctrl + Shift + C не работает Neobrat Общие вопросы Delphi 3 15.10.2010 00:17
Ctrl+Shift+Enter наоборот mihakr Microsoft Office Excel 3 13.03.2009 12:25
Обработка Ctrl+V и Shift+Ins в SpinEdit ZeLiK Общие вопросы Delphi 9 26.02.2008 02:22