мультивыбор в выпадающем списке

Автор lufthansa, 25 сентября 2018, 10:38

0 Пользователи и 1 гость просматривают эту тему.

alpold

Цитата: alpold от 19 декабря 2018, 12:43
Цитата: Bigor от 18 декабря 2018, 14:00
Так задай правильно адреса нужных ячеек.

Для столбца N поменяй в    If (oEvent.RangeAddress.StartColumn = 2) And  2 на 13
Ну и ниже нужно для строк отредактировать.

Спасибо!!! по строкам как раз таки менял..а вот столбец нет

а можно както сделать чтобы он чтото добавлял через запятую а чтото без ?

bigor

сделать то можно, только надо знать после чего ее не надо ставить, точнее перед чем
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

alpold

Цитата: Bigor от 20 декабря 2018, 17:52
сделать то можно, только надо знать после чего ее не надо ставить, точнее перед чем
перед OD и OS и OU

bigor

Цитата: alpold от 20 декабря 2018, 17:56перед OD и OS и OU
, если это единственные "слова" на букву O, то можно как в приложенном файле. Иначе условие if left(newVal,1,1)="O" надо будет расширять
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

alpold

Цитата: Bigor от 20 декабря 2018, 18:52
Цитата: alpold от 20 декабря 2018, 17:56перед OD и OS и OU
, если это единственные "слова" на букву O, то можно как в приложенном файле. Иначе условие if left(newVal,1,1)="O" надо будет расширять

единственные на английскую O

alpold

Цитата: Bigor от 20 декабря 2018, 18:52
Цитата: alpold от 20 декабря 2018, 17:56перед OD и OS и OU
, если это единственные "слова" на букву O, то можно как в приложенном файле. Иначе условие if left(newVal,1,1)="O" надо будет расширять

спасибо! еще вопрос. А если я хочу несколько разных мультидропов организовать на странице? как это сделать?? макросы же вписываются в событие листа а если у меня другой мультидроп в этом же листе?

bigor

В макросах идет проверка для каких ячеек будет работать, я думаю можно и несколько сделать
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

alpold

Цитата: Bigor от 21 декабря 2018, 12:59
В макросах идет проверка для каких ячеек будет работать, я думаю можно и несколько сделать
суть не в том чтобы указать только другие ячейки но и другой тип совмещения. В другом месте мне требуется не через запятую а через "-" их обьеденять

bigor

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

alpold


alpold

Цитата: Bigor от 21 декабря 2018, 13:50
Цитата: alpold от 21 декабря 2018, 13:18через "-" их обьеденять
можно и так

или хотябы каким образом новый диапозон добавлять ячеек ?

bigor

Если прямо в лоб, то примерно так. Если подумать, то можно пооптимизировать
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

alpold

Цитата: Bigor от 21 декабря 2018, 15:59
Если прямо в лоб, то примерно так. Если подумать, то можно пооптимизировать
If (oEvent.RangeAddress.StartColumn = 19) And _
    (oEvent.RangeAddress.StartRow > 0) And _
    (oEvent.RangeAddress.StartRow < 50) Then ' В диапазоне "T2:T50"?
        newVal = oEvent.getString()
        If Not isEmpty(oldValues) Then oldVal = oldValues(oEvent.RangeAddress.StartRow-1)(0)
        razd="-"
        If Len(oldVal) <> 0 And oldVal <> newVal Then
            If left(newVal,1,1)="O" Then razd="-"          
            oEvent.setString(oldVal & razd & newVal)            
        End If
        If Len(newVal) = 0 Then oEvent.ClearContents(7)
        on_ChangeSelection(oEvent)
    End If



Че поменять чтобы он после OD OS и OU ставил запятую?

bigor

If left(newVal,1,1)="O" Then newval=newval&"," попробуй так
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

alpold

Цитата: Bigor от 21 декабря 2018, 19:43If left(newVal,1,1)="O" Then newval=newval&","
а как сделать проверку того , чтобы не всегда он запятую ставил а только тогда когда дальше идет текст.