Страницы: 1
RSS
Копирование ячеек с флажками протягиванием
 
Хочу осведомиться, при протягивании ячейки с флажком (чек-боксом) каждую новую связь руками устанавливать нужно ? Почему снятие $ в "связь с ячейкой" не "отпускает" новый флажок от старой ячейки ?
 
Цитата
Олега написал: каждую новую связь руками устанавливать нужно ?
Можно макросом.
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Олега написал:
Почему снятие $ в "связь с ячейкой" не "отпускает" новый флажок от старой ячейки ?
Потому что эти элементы в принципе не поддерживают относительные ссылки. Поэтому да, только макросом или руками менять связь с ячейкой для каждого флажка отдельно. Или пересмотреть подход к задаче, т.к. много флажков на листе могут впоследствии значительно утяжелить файл и усложнить работу в нем.
Может в сторону обработки двойного клика посмотреть? Пометка элементов списка
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
А порой и просто выпадающий список и формат уже спасют. разве что не так красиво при выборе, зато без скриптов, активиксов .... На крайний случай можно V использовать.
Изменено: БМВ - 09.03.2017 13:28:14
По вопросам из тем форума, личку не читаю.
 
Просто попробовал. Частный случай.
Скрытый текст
Изменено: Маугли - 10.03.2017 13:43:09 (Так правильней)
 
Прошу извинить за отсутствие.
Цитата
The_Prist написал:
Может в сторону обработки двойного клика посмотреть?  Пометка элементов списка
Спасибо, попробовал. После DoubleClick один клик без снятия выделения ячейки уже не получается. Неудобство можно ликвидировать ? (добавить снятие выделения в макрос)
Изменено: Олега - 10.03.2017 23:17:22
 
Попробуйте DoubleClick в таком варианте: если флажок был - убираем, иначе ставим.
 
Цитата
БМВ написал:
А порой и просто выпадающий список и формат уже спасют. разве что не так красиво при выборе, зато без скриптов, активиксов .... На крайний случай можно V использовать.
В своей скромной задаче - размножаю и сокращаю кол-во столбцов в таблице. В нижней ячейке каждого столбца  необходимо иметь 2 состояния, сегодня я ставлю 1 или пусто. Мысль про чек-бокс или галочку - это именно и для красоты, ну и для быстроты тоже.
 
Цитата
Юрий М написал:
Попробуйте DoubleClick в таком варианте: если флажок был - убираем, иначе ставим.
Дело в том, что пенёк (. Смысл общий уловил, но с реализацией увы..
Кстати лучше бы клик был один (и на вкл. и на выкл., как в боксе)
Изменено: Олега - 10.03.2017 23:24:59
 
Цитата
Олега написал:
лучше бы клик был один (и на вкл. и на выкл., как в боксе)
Тогда будет срабатывать и при случайном выделении ячейки.
Ещё вариант: на правый клик.
Что выбираете: двойной, правый, обычный? ))
 
Обычный, левый. Ведь на включение один клик (выделение) устраивает (у автора) . Почему на выключение д.б. иным ?
Тут бы на практике по-пробовать.. Возможен ли один клик ещё и без снятия выделения ячейки ?

В моем варианте выделение диапазона, включая ячейку под галочку, к срабатыванию не ведет, даже если выделение начинать с неё. Опробовано. Реакция только на мышь и на переход с соседней ячейки стрелками клавиатуры. Соседние ячейки по плану станут защищенными, их выделение можно отключить, если не путаю. В общем маловероятно случайное выделение.
Изменено: Олега - 11.03.2017 10:30:43
 
Цитата
Олега написал:
Возможен ли один клик ещё и без снятия выделения ячейки ?
Начинаю уже сомневаться - правильно ли я понимаю, что Вам  требуется. Сначала считал, что первый ЛКМ (левый клик мышкой) ставит галку, повторный ЛКМ снимает её. А сейчас получается, что второй не должен снимать?
 
Цитата
Юрий М написал:
первый ЛКМ (левый клик мышкой) ставит галку, повторный ЛКМ снимает её
Вы правильно считали.
После первого ЛКМ есть два варианта::
1. перейти к другой ячейке и только потом кликнуть на нужной
2. оставаясь на нужной, сделать на ней же второй ЛКМ.

В варианте Николая Павлова после двойного клика сначала нужно покинуть ячейку. Только после этого одиночный ЛКМ на ней поставит галочку. Это такой же минус.
Изменено: Олега - 11.03.2017 20:50:41
 
Второй вариант не получится: мы УЖЕ в ячейке ))
См. код для первого варианта:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
            Application.EnableEvents = False
            Target.Font.Name = "Marlett"
            If Target = "" Then
                Target = "a"
                Target.Offset(0, 1).Select
            Else
                Target = ""
                Target.Offset(0, 1).Select
            End If
        End If
    Application.EnableEvents = True
End Sub
 
Юрий,
А что это уважаемый модератор правила нарушает  ? Тема то " Копирование ячеек с флажками протягиванием "  :-)

Олега, просто обращаю внимание, что Target.Offset(0, 1).Select возможно потребуется заменить на Target.Offset(1, 0).Select или Target.Offset(-1, 0).Select в зависисмости от того что у вас за область для обработки.
По вопросам из тем форума, личку не читаю.
 
Так мы и от КОПИРОВАНИЯ ушли давно )) Хотя, согласен - нарушаю. Дико извиняюсь ))
По поводу замены смещения: прыжок вправо возможен вплоть до предпоследнего столбца (а их сейчас очень много). :-)

Олега, Я бы всё же посмотрел в сторону Двойного (или правого) клика - тогда можно оставаться в ячейке и значительно снижается возможность случайного изменения.
 
Как понял, без выделения другой ячейки текущего выделения не снять  ((
Увеличил смещение по горизонту (думал спрячу где-то там новое выделение), но и экран туда же смещается..

Странное явление. При установке защиты листа и ЛКМ появляется табл.Run-time error '1004': Нельзя установить свойство Name класса Font.
В коде выделяет желтым Target.Font.Name = "Marlett"
 
Цитата
Олега написал:
Как понял, без выделения другой ячейки текущего выделения не снять
Цитата
Юрий М написал:
Я бы всё же посмотрел в сторону Двойного (или правого) клика - тогда можно оставаться в ячейке
 
Потому что в параметрах защиты надо оставить возможность изменять форматирования ячеек. Есть там такой пункт.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist написал:
Потому что в параметрах защиты надо оставить возможность изменять форматирования ячеек
Спасибо, опробовал, работает. )
Цитата
Юрий М написал:
Я бы всё же посмотрел в сторону Двойного (или правого) клика - тогда можно оставаться в ячейке
Согласный ! Дайте попробовать, заценить в деле оставшиеся варианты (2 шт.). Лишь бы не было пост-смещения (автоматического или ручного).
Цитата
БМВ написал:
обращаю внимание, что Target.Offset(0, 1).Select возможно потребуется заменить....
Со стороной смещения я все понял. Оно само по себе некрасиво выглядит.
 
Да практически всё то же самое. Вот на двойной:
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
            Target.Font.Name = "Marlett"
            If Target = "" Then
                Target = "a"
            Else
                Target = ""
            End If
        End If
    Cancel = True
End Sub
На правый всё аналогично.
 
Всё ! Желаемый эффект достигнут, спасибо огромное !
Если можно без новой темы. Как для разных состояний использовать символы из разных фонтов ?
Изменено: Олега - 11.03.2017 23:25:27
 
Менять Font.Name
И закончили здесь - и так уже давно вышли за рамки )
 
Да. Еще раз спасибо, Пойду прикручивать ))
 
Прикрутил. Однако после вписывания кода пропала возможность редактирования в прочих ячейках листа. Без видимой зависимости в некоторых ячейках такая способность осталась.Защита снята.Такой же эффект в чистом файлике.
 
Код
    End If
    Cancel = True

поменяйте местами
 
Спасибо, помогло.
Страницы: 1
Наверх