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

Вход

Регистрация

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

 

= Мир MS Excel/Выбор товара из справочника - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выбор товара из справочника (Макросы/Sub)
Выбор товара из справочника
Мурад Дата: Суббота, 18.09.2021, 08:52 | Сообщение № 21
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Pelena, да, именно так. Спасибо большое.
 
Ответить
СообщениеPelena, да, именно так. Спасибо большое.

Автор - Мурад
Дата добавления - 18.09.2021 в 08:52
Мурад Дата: Суббота, 18.09.2021, 15:29 | Сообщение № 22
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Pelena, можете уточнить, как вы отключили проверку объявления переменной массива Z() при работающем Option Explicit?
Я вставил код в боевой файл, изменил диапазон массива справочников. При активации макроса выходит сообщение "Variable not defined" и выделяется строка кода
[vba]
Код
Private Sub TextBox1_Change()
[/vba] и переменная Z.
Объявил переменную массива Z() as String, но ошибка повторяется.
 
Ответить
СообщениеPelena, можете уточнить, как вы отключили проверку объявления переменной массива Z() при работающем Option Explicit?
Я вставил код в боевой файл, изменил диапазон массива справочников. При активации макроса выходит сообщение "Variable not defined" и выделяется строка кода
[vba]
Код
Private Sub TextBox1_Change()
[/vba] и переменная Z.
Объявил переменную массива Z() as String, но ошибка повторяется.

Автор - Мурад
Дата добавления - 18.09.2021 в 15:29
RAN Дата: Суббота, 18.09.2021, 16:12 | Сообщение № 23
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
как вы отключили проверку объявления переменной массива Z() при работающем Option Explicit?

Да никак. Смотрите внимательно.
[vba]
Код
Option Explicit

Public Z
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
как вы отключили проверку объявления переменной массива Z() при работающем Option Explicit?

Да никак. Смотрите внимательно.
[vba]
Код
Option Explicit

Public Z
[/vba]

Автор - RAN
Дата добавления - 18.09.2021 в 16:12
Мурад Дата: Суббота, 18.09.2021, 16:38 | Сообщение № 24
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Елки-палки) Переменная Z объявлена в модуле книги. А я искал в коде листов и формы.
Спасибо за подсказку.
 
Ответить
СообщениеЕлки-палки) Переменная Z объявлена в модуле книги. А я искал в коде листов и формы.
Спасибо за подсказку.

Автор - Мурад
Дата добавления - 18.09.2021 в 16:38
RAN Дата: Суббота, 18.09.2021, 16:42 | Сообщение № 25
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Переменная Z объявлена в модуле книги

Нет. Это не модуль книги, а стандартный модуль. Не надо путать.


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 18.09.2021, 16:42
 
Ответить
Сообщение
Переменная Z объявлена в модуле книги

Нет. Это не модуль книги, а стандартный модуль. Не надо путать.

Автор - RAN
Дата добавления - 18.09.2021 в 16:42
Мурад Дата: Суббота, 18.09.2021, 16:57 | Сообщение № 26
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Т.е. если я направлю книгу сотрудникам для выбора товаров, то у них макрос будет выдавать ошибку, также как и у меня?
 
Ответить
СообщениеТ.е. если я направлю книгу сотрудникам для выбора товаров, то у них макрос будет выдавать ошибку, также как и у меня?

Автор - Мурад
Дата добавления - 18.09.2021 в 16:57
Pelena Дата: Суббота, 18.09.2021, 17:12 | Сообщение № 27
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
в боевой файл
тоже добавьте стандартный модуль и объявите переменную. Если же стандартные модули уже есть в "боевом" файле, то добавьте Public Z в любой из них


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
в боевой файл
тоже добавьте стандартный модуль и объявите переменную. Если же стандартные модули уже есть в "боевом" файле, то добавьте Public Z в любой из них

Автор - Pelena
Дата добавления - 18.09.2021 в 17:12
Мурад Дата: Суббота, 18.09.2021, 17:37 | Сообщение № 28
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
добавил, спасибо.
а есть возможность переноса текста в листбоксе, чтобы пользователь мог прочитать наименование товара полностью? Форму поиска увеличить могу вширь.


Сообщение отредактировал Мурад - Суббота, 18.09.2021, 17:38
 
Ответить
Сообщениедобавил, спасибо.
а есть возможность переноса текста в листбоксе, чтобы пользователь мог прочитать наименование товара полностью? Форму поиска увеличить могу вширь.

Автор - Мурад
Дата добавления - 18.09.2021 в 17:37
Pelena Дата: Суббота, 18.09.2021, 18:00 | Сообщение № 29
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Форму поиска увеличить могу вширь
увеличивайте. А за ширину столбцов отвечает свойство ColumnWidth

К сообщению приложен файл: 8740975.jpg (68.8 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Форму поиска увеличить могу вширь
увеличивайте. А за ширину столбцов отвечает свойство ColumnWidth


Автор - Pelena
Дата добавления - 18.09.2021 в 18:00
Мурад Дата: Суббота, 18.09.2021, 18:56 | Сообщение № 30
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Допилил немного, чтобы колонки в листбоксе имели левое и правое выравнивания (для товара и цены):
[vba]
Код
Me.ListBox1.TextAlign = fmTextAlignRight
Me.ListBox1.ColumnWidths = "370;80"
Me.ListBox1.AddItem
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 0) = Z(i, 1) & Space(200)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Z(i, 2) & " руб."
[/vba]
так смотрится намного лучше


Сообщение отредактировал Мурад - Суббота, 18.09.2021, 18:58
 
Ответить
СообщениеДопилил немного, чтобы колонки в листбоксе имели левое и правое выравнивания (для товара и цены):
[vba]
Код
Me.ListBox1.TextAlign = fmTextAlignRight
Me.ListBox1.ColumnWidths = "370;80"
Me.ListBox1.AddItem
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 0) = Z(i, 1) & Space(200)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Z(i, 2) & " руб."
[/vba]
так смотрится намного лучше

Автор - Мурад
Дата добавления - 18.09.2021 в 18:56
Мурад Дата: Среда, 22.09.2021, 22:56 | Сообщение № 31
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Подскажите, в текущем варианте кода при активации ячейки отображается пустая форма, в которой начинают появляться записи при вводе хотя бы 1 символа в поле поиска. Как сделать так, чтобы при активации ячейки отображалась форма уже со всеми записями и далее список меняется, как обычно, при вводе фразы в поле поиска.
Я пробовал до условия с циклом писать Me.Listbox1.List = Z (или Z()), не работает. Нужен еще один цикл, но без проверки условия ввода текста в поле поиска?
 
Ответить
СообщениеПодскажите, в текущем варианте кода при активации ячейки отображается пустая форма, в которой начинают появляться записи при вводе хотя бы 1 символа в поле поиска. Как сделать так, чтобы при активации ячейки отображалась форма уже со всеми записями и далее список меняется, как обычно, при вводе фразы в поле поиска.
Я пробовал до условия с циклом писать Me.Listbox1.List = Z (или Z()), не работает. Нужен еще один цикл, но без проверки условия ввода текста в поле поиска?

Автор - Мурад
Дата добавления - 22.09.2021 в 22:56
Erjoma1981 Дата: Четверг, 23.09.2021, 10:04 | Сообщение № 32
Группа: Проверенные
Ранг: Участник
Сообщений: 66
Репутация: 25 ±
Замечаний: 0% ±

Excel 2010, 2019
Попробуйте
[vba]
Код
Private Sub UserForm_Initialize()
    ListBox1.List = Z
End Sub
[/vba]

Если текст выбора стерли, а нужно что бы отразился весь список, то в проверке
[vba]
Код
If Len(txt) Then
[/vba]
вставьте [vba]
Код
Else  ListBox1.List = Z
[/vba]
 
Ответить
СообщениеПопробуйте
[vba]
Код
Private Sub UserForm_Initialize()
    ListBox1.List = Z
End Sub
[/vba]

Если текст выбора стерли, а нужно что бы отразился весь список, то в проверке
[vba]
Код
If Len(txt) Then
[/vba]
вставьте [vba]
Код
Else  ListBox1.List = Z
[/vba]

Автор - Erjoma1981
Дата добавления - 23.09.2021 в 10:04
Мурад Дата: Четверг, 23.09.2021, 10:57 | Сообщение № 33
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Erjoma1981, спасибо за подсказку!
Немного поправил код, чтобы список отображался в нужном формате.
 
Ответить
СообщениеErjoma1981, спасибо за подсказку!
Немного поправил код, чтобы список отображался в нужном формате.

Автор - Мурад
Дата добавления - 23.09.2021 в 10:57
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выбор товара из справочника (Макросы/Sub)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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