Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Combobox и принуждение / 20 сообщений из 20, страница 1 из 1
19.08.2011, 11:29
    #37403087
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
Коллеги, подскажите по примеру
с combobox, так как не вкурить, как заставить отображаться ещё больше колонок в выпадающем списке (в примере их две, а надо штук 6).
...
Рейтинг: 0 / 0
19.08.2011, 11:31
    #37403097
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
Ivan33Коллеги, подскажите по примеру
с combobox, так как не вкурить, как заставить отображаться ещё больше колонок в выпадающем списке (в примере их две, а надо штук 6).
вот такой вариант стрёмный
...
Рейтинг: 0 / 0
07.09.2011, 17:26
    #37429516
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
Добрый день. Не хотел топик создавать новый. Но:
Есть Combobox. Мне нужно при нажатии кнопки, что бы проверялся Combobox.
Если он пустой то месседж показать
если есть какое-то значение, то выполнить процедуру.
Сделал так... Но не работает...
Код: plaintext
1.
2.
3.
4.
If Len(ComboBox1.Value)= 0  Then
    MsgBox "sss"
        Exit Sub
    End If 
...
Рейтинг: 0 / 0
07.09.2011, 17:36
    #37429534
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
-O_o-,

Код: plaintext
1.
2.
 'для информации - ActiveDocument.ComboBox1.Clear 'убирает, стирает, очищает Clear - Очистить все внесённые в ComboBox строки
        'для информации - Количество_строк_в_ComboBox1 = ActiveDocument.ComboBox1.ListCount
        'для информации - ActiveDocument.ComboBox1.List = intМассив загоняет в ComboBox1 массив одной строкой кода
Топик назван шикарно , надо подумать, что Ивану ответить
...
Рейтинг: 0 / 0
07.09.2011, 17:39
    #37429541
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
смотрите у cboPart КолумнКоунт чему равно?? - 2??, а надо 6
...
Рейтинг: 0 / 0
07.09.2011, 17:46
    #37429555
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
Ципихович Эндрю,
у меня в Combobox RowSourse равен диапазону в котором 961 строка.
когда делаю так
ComboBox1.ListCount - то значение равно 961.
а меня именно интересует пусто Combobox или нет в момент нажатия кнопки.
не понял вас ) и что такое cboPart ?
...
Рейтинг: 0 / 0
07.09.2011, 17:51
    #37429572
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
сделал вот так
Код: plaintext
1.
2.
3.
    If Len(ComboBox1.Text) =  0  Then
    MsgBox "sss"
        Exit Sub
    End If
...
Рейтинг: 0 / 0
07.09.2011, 17:54
    #37429579
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
-O_o-,
что такое cboPart?
это ответ для Ивана
а меня именно интересует пусто Combobox или нет в момент нажатия кнопки
На здоровье перед тем как кнопку нажать узнайте
Количество_строк_в_ComboBox1 = ActiveDocument.ComboBox1.ListCount
...
Рейтинг: 0 / 0
07.09.2011, 17:58
    #37429583
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
Что значит "пусто"?
Если у вас .RowSource задан как диапазон листа, то комбобокс пустым быть не может.
Если же вас интересует тот вопрос, что у вас данных в диапазоне нет - так и проверять на "пустоту" придется либо заданный диапазон, либо циклом весь List() комбобокса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
For i= 1  To ComboBox1.ListCount- 1 
    If Not (IsEmpty(ComboBox1.List(i,  0 )) And IsEmpty(ComboBox1.List(i,  1 ))) Then Exit For
Next
If i>=ComboBox1.ListCount Then
    MsgBox "Combo is Empty"
Else
    ' ...
End If
...
Рейтинг: 0 / 0
07.09.2011, 18:00
    #37429586
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
AndreTMЧто значит "пусто"?
Если у вас .RowSource задан как диапазон листа, то комбобокс пустым быть не может.
Если же вас интересует тот вопрос, что у вас данных в диапазоне нет - так и проверять на "пустоту" придется либо заданный диапазон, либо циклом весь List() комбобокса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
For i= 1  To ComboBox1.ListCount- 1 
    If Not (IsEmpty(ComboBox1.List(i,  0 )) And IsEmpty(ComboBox1.List(i,  1 ))) Then Exit For
Next
If i>=ComboBox1.ListCount Then
    MsgBox "Combo is Empty"
Else
    ' ...
End If

ну я проверяю на наличие текста в Combobox . Если ничего не выбрано в нем. То нужно выдать месседж. Если что-то выбрано то делать процедуру...
Мое решение работает Возможно не совсем правильно... но текста меньше и ошибок пока нет...
спасибо.
...
Рейтинг: 0 / 0
07.09.2011, 18:03
    #37429593
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
-O_o-, какое Ваше в 17:26??
что по малому куску
If Len(ComboBox1.Value)=0 Then
MsgBox "sss"
Exit Sub
End If
Можно понять
...
Рейтинг: 0 / 0
07.09.2011, 18:06
    #37429598
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
Ципихович Эндрю-O_o-, какое Ваше в 17:26??
что по малому куску
If Len(ComboBox1.Value)=0 Then
MsgBox "sss"
Exit Sub
End If
Можно понять
ну это я значение Combobox хотел узнать... по этому и поставил Value вместо Техт
...
Рейтинг: 0 / 0
07.09.2011, 18:13
    #37429615
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
-O_o-, я про то что ни цикла ни остальных признаков нет
...
Рейтинг: 0 / 0
07.09.2011, 18:17
    #37429625
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
-O_o-,

Повесьте обработку на событие Change комбобокса. Тогда и кнопка не понадобится...
Кроме того, хелп говорит:
.ListIndex
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
The ListIndex property contains an index of the selected row in a list.
Values of ListIndex range from –1 to one less than the total number of rows in a list (that is, ListCount – 1).
When no rows are selected, ListIndex returns –1. When the user selects a row in a ListBox or ComboBox,
the system sets the ListIndex value. The ListIndex value of the first row in a list is 0,
the value of the second row is 1, and so on.

Note If you use the MultiSelect property to create a ListBox that allows multiple selections,
the Selected property of the ListBox (rather than the ListIndex property) identifies the selected rows.
The Selected property is an array with the same number of values as the number of rows in the ListBox.
For each row in the list box, Selected is True if the row is selected and False if it is not. In a ListBox that
allows multiple selections, ListIndex returns the index of the row that has focus, regardless of whether
that row is currently selected.
...
Рейтинг: 0 / 0
07.09.2011, 18:27
    #37429646
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
Ципихович Эндрю-O_o-, я про то что ни цикла ни остальных признаков нет
Вот весь код. ниже процедура которую мне сделали... Я пока еще не дошел к тому, что бы разобраться как она работает
И перед ее запуском мне нужно проверить, пустой Combobox или нет. Все.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Private Sub CommandButton1_Click()
    Dim nRange
    If Len(ComboBox1.Text) =  0  Then
    MsgBox "sss"
        Exit Sub
    End If
    For Each nRange In ActiveWorkbook.Names
        If nRange.name = "rel_plan_city" Then Exit For
    Next
    Dim aCity(), aCity2()
    aCity = nRange.RefersToRange.Value
    aCity2 = aCity
    ReDim aCity2( 1  To UBound(aCity2,  1 ),  1  To UBound(aCity2,  2 ))
    Dim i, j
    j =  0 
    For i =  1  To UBound(aCity,  1 )
        If IsEmpty(aCity(i,  1 )) Then Exit For
        If aCity(i,  1 ) <> Me.ComboBox1.Value Then
            j = j +  1 
            aCity2(j,  1 ) = aCity(i,  1 )
            aCity2(j,  2 ) = aCity(i,  2 )
        End If
    Next
    For i =  0  To Me.ListBox1.ListCount -  1 
        If Me.ListBox1.Selected(i) Then
            j = j +  1 
            aCity2(j,  1 ) = Me.ComboBox1.Value
            aCity2(j,  2 ) = Me.ListBox1.List(i,  0 )
        End If
    Next
    nRange.RefersToRange.Value = aCity2
    ComboBox1.Value = ""
    MsgBox "бла-бла-бла!!!"
   End Sub
...
Рейтинг: 0 / 0
07.09.2011, 18:32
    #37429659
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
-O_o-,
обалдеть вторая строка If Len(ComboBox1.Text) = 0 Then
и что она там считает??
...
Рейтинг: 0 / 0
07.09.2011, 18:35
    #37429664
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
Ципихович Эндрю-O_o-,
обалдеть вторая строка If Len(ComboBox1.Text) = 0 Then
и что она там считает??
...
Рейтинг: 0 / 0
07.09.2011, 19:02
    #37429699
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
-O_o-,

я уже выше ответил, вроде:

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub CommandButton1_Click()
    If ComboBox1.ListIndex = - 1  Then
        MsgBox "Выберите в комбо"
        Exit Sub
    End If
    Dim nRange
    ...
...
Рейтинг: 0 / 0
08.09.2011, 11:30
    #37430309
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
AndreTM-O_o-,

я уже выше ответил, вроде:

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub CommandButton1_Click()
    If ComboBox1.ListIndex = - 1  Then
        MsgBox "Выберите в комбо"
        Exit Sub
    End If
    Dim nRange
    ...

ну а чем мой вариант хуже? я не пойму...
...
Рейтинг: 0 / 0
08.09.2011, 19:53
    #37431553
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combobox и принуждение
-O_o-ну а чем мой вариант хуже? я не пойму...
Потому что у вас может быть строка в комбо с "пустым" значением .BoundColumn, и тогда .Text будет пустым, но паттерн-то - непуст.
В то же время, ListIndex=-1 соответсвует вашему требованию - невыбрано значение в комбо.

И вообще, я тут подумал - если вы так беспокоитесь, чтобы сначала выбиралось значение в комбобоксе - так инициализируйте листбокс .Enabled в False, а при выборе значения в комбо - переключайте в True. Тогда точно сначала придется выбрать значение в комбо
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Combobox и принуждение / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]