Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2009, 14:11   #11
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

Вообще в листбокс будет загружаться 4 столбца и множество строк
и нужно чтобы мы могли выбрать лбое значение из этой "матрицы", хоть с какого столбца и хоть на какой строке и отредактировать его...
желательно чтоб изменения сразу динамически отражались на листе
ну или хотя бы кнопкой "Добавить"...
Для меня сделать такую задачу тяжело, поэтому очень прошу помощи у знающих людей, помогите ПОЖАЛУЙСТО!
буду оочень признателен!
Артур Иваныч вне форума Ответить с цитированием
Старый 19.11.2009, 15:23   #12
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Вот так можно двойным щелчком редактировать содержимое любой ячейки в листбоксе: (в любом столбце любой строки)

Код:
Dim col As Double

Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    On Error Resume Next: If col < 0 Then Exit Sub
    Dim Строка As String: Строка = ListBox2.List(ListBox2.ListIndex, col)
    НоваяСтрока = InputBox("Введите название этапа", "Редактирование строки листбокса", Строка)
    If Len(НоваяСтрока) Then ListBox2.List(ListBox2.ListIndex, col) = НоваяСтрока
End Sub

Private Sub ListBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    cw = Split(Replace(Me.ListBox2.ColumnWidths, " pt", ""), ";"): s = 0: col = -1
    For i = LBound(cw) To UBound(cw)
        s = s + Val(cw(i)): If X < s Then col = i: Exit For
    Next
End Sub
Пример файла:

EducatedFool вне форума Ответить с цитированием
Старый 19.11.2009, 15:43   #13
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

ОГРОМЕННОЕ спасибо!!!
Всё отлично!
но хотелось бы знать, вот что:
вот мы редактируем и нажимаем "Добавить" и он наше редактирование реализует в листе!
а как можно сделать так, чтоб как только мы отредактировали какую-нибудь ячейку и чтобы сразу автоматически в лесте изменилось?
Артур Иваныч вне форума Ответить с цитированием
Старый 19.11.2009, 21:53   #14
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

Разве такое не реально сделать?
просто если честно то я сам не представляю как это в коде ВБА будет выглядеть((
Артур Иваныч вне форума Ответить с цитированием
Старый 20.11.2009, 01:12   #15
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Разве такое не реально сделать?
Реально. Вполне реально.
Но лично я не намерен реализовывать все Ваши задумки "за спасибо"
Завтра Вы надумаете сделать выпадающий список на основе текстбокса, а сами не намерены хоть немного изучить VBA, чтобы воплотить свои фантазии в виде кода...
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Папки в листбоксе beemoto Общие вопросы Delphi 9 20.05.2009 19:04
Редактирование данных БД, расположенных на разных формах mn-home БД в Delphi 3 06.03.2009 13:38
Файлы в листбоксе blackstersl Общие вопросы Delphi 12 01.10.2008 10:47
SQL запрос и редактирование данных Dux БД в Delphi 7 01.09.2008 12:17
номер элемента в листбоксе RoadTrain Общие вопросы Delphi 2 20.11.2007 15:54