Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Некорректная загрузка данных в комбобокс - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Некорректная загрузка данных в комбобокс
Сергей13 Дата: Пятница, 01.11.2019, 02:36 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте!
Ребята помогите разобраться - при открытие формы происходит заполнение списка комбобокса с таблицы и ввод в поле комбобокса новых данных с ячейки (для комбобокса установлено свойство Style=2).
[vba]
Код
FormLogbook.Cmb2.Value = DpdSheet.Range("D4").Value 'Ввод новых данных в поле комбобокса с ячейки.
[/vba]
В зависимости от расположение строки (выше или ниже кода заполнения списка), вводимого значения (текстовый или числовой), свойства (Style=0 или Style=2) то выдает ошибку то работает без ошибки.
К сообщению приложен файл: 3060154.xlsm (21.3 Kb)


Сообщение отредактировал Сергей13 - Пятница, 01.11.2019, 02:37
 
Ответить
СообщениеЗдравствуйте!
Ребята помогите разобраться - при открытие формы происходит заполнение списка комбобокса с таблицы и ввод в поле комбобокса новых данных с ячейки (для комбобокса установлено свойство Style=2).
[vba]
Код
FormLogbook.Cmb2.Value = DpdSheet.Range("D4").Value 'Ввод новых данных в поле комбобокса с ячейки.
[/vba]
В зависимости от расположение строки (выше или ниже кода заполнения списка), вводимого значения (текстовый или числовой), свойства (Style=0 или Style=2) то выдает ошибку то работает без ошибки.

Автор - Сергей13
Дата добавления - 01.11.2019 в 02:36
krosav4ig Дата: Пятница, 01.11.2019, 16:15 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
[vba]
Код
Private Sub UserForm_Initialize() 'Событие открытия формы FormLogbook
    
    Set GroupSheet = ThisWorkbook.Worksheets("group")            'Лист group
    Set DpdSheet = ThisWorkbook.Worksheets("dpd")                'Лист dpd
    Dim v As Variant, tabl_art As Range
    v = CStr(DpdSheet.Range("D4").Value): Set tabl_art = GroupSheet.Range("tabl_art")
    With FormLogbook.Cmb2
        .List = GetArr(GroupSheet.Range("tabl_art")) 'Загрузка данны, заполнение списка
        If tabl_art.Find(v, , xlValues, xlWhole, , , , , False) Is Nothing Then
            .AddItem v
            With tabl_art(tabl_art.Rows.Count + 1, 1)
                .NumberFormat = "@": .Value = v
            End With
        End If
        .Value = v                    'Ввод новых данных в поле комбобокса
    End With
End Sub
[/vba]
при Style=fmStyleDropDownList(0) свойство Value может принимать только значения, перечисленные в свойстве List


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 01.11.2019, 16:16
 
Ответить
СообщениеЗдравствуйте
[vba]
Код
Private Sub UserForm_Initialize() 'Событие открытия формы FormLogbook
    
    Set GroupSheet = ThisWorkbook.Worksheets("group")            'Лист group
    Set DpdSheet = ThisWorkbook.Worksheets("dpd")                'Лист dpd
    Dim v As Variant, tabl_art As Range
    v = CStr(DpdSheet.Range("D4").Value): Set tabl_art = GroupSheet.Range("tabl_art")
    With FormLogbook.Cmb2
        .List = GetArr(GroupSheet.Range("tabl_art")) 'Загрузка данны, заполнение списка
        If tabl_art.Find(v, , xlValues, xlWhole, , , , , False) Is Nothing Then
            .AddItem v
            With tabl_art(tabl_art.Rows.Count + 1, 1)
                .NumberFormat = "@": .Value = v
            End With
        End If
        .Value = v                    'Ввод новых данных в поле комбобокса
    End With
End Sub
[/vba]
при Style=fmStyleDropDownList(0) свойство Value может принимать только значения, перечисленные в свойстве List

Автор - krosav4ig
Дата добавления - 01.11.2019 в 16:15
Сергей13 Дата: Пятница, 01.11.2019, 18:23 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, Приветствую!
Походу неверно изложил сказанное выше «ввод в поле комбобокса новых данных», при этом в тестовом примере не вписал в таблицу данные идентичные данным в ячейке переменной v.
Имеется ввиду что данные новые но уже ранее введены в таблицу иным кодом их необходимо лишь при активации данной формы отобразить в поле комбобокса взяв из нужной ячейки и все.
Последовательность выполнения такова:
[vba]
Код
FormLogbook.Cmb2.List = GetArr(GroupSheet.Range("tabl_art")) 'Загрузка данных с таблицы tabl_art
FormLogbook.Cmb2.Value = v 'Отобразить в поле комбобокса данные переменной v которые уже имеются в загруженном списке
[/vba]


Сообщение отредактировал Сергей13 - Пятница, 01.11.2019, 19:19
 
Ответить
Сообщениеkrosav4ig, Приветствую!
Походу неверно изложил сказанное выше «ввод в поле комбобокса новых данных», при этом в тестовом примере не вписал в таблицу данные идентичные данным в ячейке переменной v.
Имеется ввиду что данные новые но уже ранее введены в таблицу иным кодом их необходимо лишь при активации данной формы отобразить в поле комбобокса взяв из нужной ячейки и все.
Последовательность выполнения такова:
[vba]
Код
FormLogbook.Cmb2.List = GetArr(GroupSheet.Range("tabl_art")) 'Загрузка данных с таблицы tabl_art
FormLogbook.Cmb2.Value = v 'Отобразить в поле комбобокса данные переменной v которые уже имеются в загруженном списке
[/vba]

Автор - Сергей13
Дата добавления - 01.11.2019 в 18:23
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!