как вставить checkbox?

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
ropHocTau
Сообщения: 3
Зарегистрирован: 18 май 2009, 10:13

Товарищи, помогите чайнику (мне).
Идея такова: создать чекбоксы в - для того чтобы проставлять галочки в нужных строках, а потом сортировать только помеченные галочкой строки.

Я не знаю как вставлять чекбоксы (ячейки с галочкой) в столбец I (с I2 вниз) и как потом создать макрос по выборке этих строк которые будут помечены галочкой. ОБЪЯСНИТЕ плзз.
Прилагаю файл.

Заранее спасибо.
Вложения
Book33.zip
(44.14 КБ) 32 скачивания
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Чекбоксы как элемент управления здесь не нужны.
Просто вставляйте в ячейку символ Сhr(252) в шрифте Wingdings

Код: Выделить всё

With ActiveCell
      .Value = Chr(252)
      .Font.Name = "Wingdings"
End With
Переключение можно сделать в обработчике обычного/двойного клика или
события изменения ячейки.
Отбор строк как всегда автофильтром
Андрей Энтелис,
aentelis.livejournal.com
ropHocTau
Сообщения: 3
Зарегистрирован: 18 май 2009, 10:13

Кхм-кхм, я чайник, точнее мега-чайник.
И куда вставлять этот код не знаю. И я не знаком в VB.
Но ведь должна быть возможность в Экселе сделать в ячейке чекбокс... :confused: .... без всяких кодов, просто инструментами...

из вышеупомянутого поста мне понятна строчка про автофильтр, а остальное темный лес... но все равно спасибо Aent-у
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Если не знаете (и не имеете возможности изучать ) VBA - используйте для маркирования нужных записей отдельный столбец (I ?), помещая туда, скажем "!" для маркируемых записей.
Чекбокс в ячейку поместить конечно можно (используя, например, панель "элементы
управления"). Можно и в его свойствах прописать Сaption ="" и LinkedCELL = адрес
ячейки куда помещается значение (ИСТИНА или ЛОЖЬ).
Только всё это будет очень криво и не работоспособно с мало мальски приличным
количеством строк ...
Если очень уж хочется что бы по клику мыши маркировалась строка,
Нажмите Alt-F11 и добавьте для Sheet1 код

Код: Выделить всё

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    With Target
        If .Column <> 9 Or .Row = 2 Then Exit Sub
        Application.EnableEvents = False
        .Value = IIf(.Value = "!", vbNullString, "!")
        Application.EnableEvents = True
        Cancel = True
    End With
End Sub
Андрей Энтелис,
aentelis.livejournal.com
ropHocTau
Сообщения: 3
Зарегистрирован: 18 май 2009, 10:13

Спасибо за поддержку, Aent.
Я решил:
1. пока обойтись без чекбоксов
2. начать изучать ВБА
:)
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Верной дорогой идёте, товарищи!
;)
Андрей Энтелис,
aentelis.livejournal.com
Ответить