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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2009, 12:32   #1
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию Почему не работает...хм....понять не могу!

Имеется ЛистБокс под именем StatBox1
ниже код, который не хочет работать

Код:
Private Sub StatBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    On Error Resume Next
    If coll < 0 Then Exit Sub
    Dim Строка As String: Строка = StatBox1.List(StatBox1.ListIndex, coll)
    НоваяСтрока = InputBox("Изменение записи", "Редактирование данных", Строка)
    If Len(НоваяСтрока) Then StatBox1.List(StatBox1.ListIndex, coll) = НоваяСтрока
End Sub

Private Sub StatBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
    cw = Split(Replace(Me.StatBox1.ColumnWidths, " pt", ""), ";"): s = 0: coll = -1
    For i = LBound(cw) To UBound(cw)
        s = s + Val(cw(i)): If x < s Then coll = i: Exit For
    Next
End Sub
в чём проблема в коде?
Артур Иваныч вне форума Ответить с цитированием
Старый 01.12.2009, 13:15   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Чтобы проверить код, нужен файл Excel с формой.

Вы предлагаете нам создать этот файл самостоятельно, лишь чтобы проверить ваш макрос?

Цитата:
ниже код, который не хочет работать
Что, компьютер при запуске кода вам так и говорит человеческим голосом - "код не хочет работать"?
EducatedFool вне форума Ответить с цитированием
Старый 01.12.2009, 13:32   #3
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

StatBox1 - это листбокс
который содержит 4 столбца
и множество строк
при двойном нажатии на ЛЮБое значение в листбоксе далжно выводиться редактирование...
кстати это Ваш код!
я его решил перенести в другую форму...но чёт не пашет
Артур Иваныч вне форума Ответить с цитированием
Старый 01.12.2009, 14:10   #4
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Вы хотя бы уберите строку
Код:
On Error Resume Next
и посмотрите есть ли ошибка и если есть, то где именно. А по фразе "но чёт не пашет" непонятно, что у Вас там не пашет.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 01.12.2009, 14:43   #5
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

вот оригинальный код:
Код:
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
а вот файл тут выгружен:
http://www.programmersforum.ru/showt...t=70249&page=2


Тут всё отлично работает
но я этот код решил внедрить в другую книгу, в мою работу
а у меня не пашет...точнее сказать редактирует только первый столбец листбокса(((а остальные ннет
Артур Иваныч вне форума Ответить с цитированием
Старый 01.12.2009, 15:08   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Во-первых, Вы забыли про строку Dim coll As Long
Поставьте её первой строкой в модуле формы.

Во-вторых, назначьте вручную значения ширины столбцов.
Для этого в свойство ColumnWidths вашего листбокса StatBox1 впишите строку типа 55;60;40;200;135

Сразу после ввода эта строка преобразуется в что-то вроде этого: 55 pt;60 pt;40 pt;200 pt;135 pt
И макрос начнёт работать.
EducatedFool вне форума Ответить с цитированием
Старый 01.12.2009, 15:36   #7
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

Всё сделал
всё равно не работает
точнее работает только для первого столбца листбокса
а на остальные не хочет((
Артур Иваныч вне форума Ответить с цитированием
Старый 01.12.2009, 16:03   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Всё сделал
всё равно не работает
Ну так если Вы сами не можете это сделать, нафига устраивать все эти обсуждения?
Выложите свой файл - получите готовый код.

Я вот создал новый файл с формой и листбоксом, сделал листбокс 5-колоночным, произвёл указанные в предыдущем посте манипуляции, - и всё заработало.
EducatedFool вне форума Ответить с цитированием
Старый 01.12.2009, 16:34   #9
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

но у меня не работает
только по первому столбцу редактирует
Артур Иваныч вне форума Ответить с цитированием
Старый 01.12.2009, 17:58   #10
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Ну так если Вы сами не можете это сделать, нафига устраивать все эти обсуждения?
Выложите свой файл - получите готовый код.
я имел в виду что всё сделал, то есть добавил Coll As Long, размерности указал!

вроде всё норм, но не пашет((
Артур Иваныч вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять почему блокируется папка Paul Hindenburg Общие вопросы Delphi 4 07.05.2009 10:47
Плииз!!! помогите! Не могу понять почему не работает! (Паскаль) Викуська_ Помощь студентам 5 21.04.2009 20:37
Не могу понять почему вылетает 3 процедурка, помогите Taisja Помощь студентам 2 04.06.2008 21:28