Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

9 Август 2020, 12:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Поставить флажок (или иное значение) щелчком мышки  (Прочитано 683 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Konstanta
Форумчанин
***
Offline Offline

Сообщений: 59


« Стартовое сообщение: 19 Декабрь 2019, 15:43 »

Уважаемые форумчане, приветствую Вас!
Много лет работая в Excel я систематически пользовался очень удобным макросом, который выложили жители "Платнеты Excel" (Виват им!)
Если данный код разместить в исходном тексте страницы (в Excel она как объект рассматривается), то при двойном клике мышки в заданном диапазоне ячеек проставляется буква "a" стилизованная шрифтом "Marlett" под галочку (флажок).
Это безумно удобно, когда идёт множественный выбор (подбор)  отдельных строк списка (накладной и пр.)
При необходимости я менял введение "a" на дату или "ОК" или иное любое значение (формулу)
 

Код:
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("D2:J40")) Is Nothing Then
                    Target.Font.Name = "Marlett"
            If Target = vbNullString Then
                Target = "a"
            Else
                Target = vbNullString
            End If
        End If
End Sub


Видимо в силу того, что Calc по-другому работает с объектами (не нахожу их в редакторе макросов) в Calc данная штука не работает
При попытке вызова этого макроса из стандартного модуля выдаёт ошибку времени исполнения.
Есть ли мысли или может что подобное уже реализовано иначе?
На форуме ничего подобного я не нашёл.


« Последнее редактирование: 19 Декабрь 2019, 15:45 от Konstanta » Записан
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 934


« Ответ #1: 19 Декабрь 2019, 16:46 »

Заполняется только ячейка, на которую кликнули 2 раза? А если была заполнена то, очищается?
Значит плохо искали. Вот чуть переделанный код JohnSUN

Код:
Private Sub DblClick(oEvent as Variant)
   
    If oEvent.supportsService("com.sun.star.sheet.SheetCell") Then
    If (oEvent.RangeAddress.StartColumn >= 3) And _
    (oEvent.RangeAddress.StartColumn <= 5) And _
    (oEvent.RangeAddress.StartRow >= 1) And _
    (oEvent.RangeAddress.EndRow <= 39) Then ' В диапазоне "d2:f40"?
        newVal = oEvent.getString()
        If newval <> "" Then
        newVal = ""
        else
        newVal="V"
        end if
            oEvent.setString(newVal)
     End If
    End If
end sub
правда нужно привязать его к событию двойной клик в меню "Лист" , "События листа..."
« Последнее редактирование: 19 Декабрь 2019, 16:53 от Bigor » Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
Konstanta
Форумчанин
***
Offline Offline

Сообщений: 59


« Ответ #2: 19 Декабрь 2019, 17:58 »

Привязал!
Отлично работает! Спасибо!
Искал по ключевым словам "клик мышки", "галочк*", "флажок" ну и прочие подобные вариации
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!