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

Вход

Регистрация

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

 

= Мир MS Excel/Редактирование строк в ListBox - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Редактирование строк в ListBox (Макросы Sub)
Редактирование строк в ListBox
Stormy Дата: Воскресенье, 23.02.2014, 23:10 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Доброй ночи.
Пытаюсь сделать возможным редактирование строк в ListBox. За основу взял пример из этой темы Темас примером Изменил под собственные нужды, но теперь столкнулся с другой проблемой.
1. При пустом списке на Листе Экзель первая вставка из ListBox начинается с 7 строки в Экзель и соответственно в ListBox тоже отображается на 7 строчке.
2. При редактирование строки, индекс строки ListBox вставляется в столбец В , хотя изначально никакого индекса и не видно.

Помогите, пожалуйста, разобраться. Где я допускаю ошибку? В моем случае диапазон со списком фиксированный.
К сообщению приложен файл: 7536382.xls (58.5 Kb)


Место для рекламы.
 
Ответить
СообщениеДоброй ночи.
Пытаюсь сделать возможным редактирование строк в ListBox. За основу взял пример из этой темы Темас примером Изменил под собственные нужды, но теперь столкнулся с другой проблемой.
1. При пустом списке на Листе Экзель первая вставка из ListBox начинается с 7 строки в Экзель и соответственно в ListBox тоже отображается на 7 строчке.
2. При редактирование строки, индекс строки ListBox вставляется в столбец В , хотя изначально никакого индекса и не видно.

Помогите, пожалуйста, разобраться. Где я допускаю ошибку? В моем случае диапазон со списком фиксированный.

Автор - Stormy
Дата добавления - 23.02.2014 в 23:10
wild_pig Дата: Понедельник, 24.02.2014, 01:26 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Не оставлять пустых ячеек или проверить
[vba]
Код
Private Sub UserForm_Initialize()
      With Sheets("Лист1")
          lr = .Cells(.Rows.Count, 3).End(xlUp).Row
          ListBox1.List = .Range(.Cells(6, 3), .Cells(lr, 13)).Value
          If lr < 6 Then ListBox1.Clear
      End With
      Me.CommandButton2.Enabled = False
End Sub
[/vba]


Сообщение отредактировал wild_pig - Понедельник, 24.02.2014, 01:40
 
Ответить
СообщениеНе оставлять пустых ячеек или проверить
[vba]
Код
Private Sub UserForm_Initialize()
      With Sheets("Лист1")
          lr = .Cells(.Rows.Count, 3).End(xlUp).Row
          ListBox1.List = .Range(.Cells(6, 3), .Cells(lr, 13)).Value
          If lr < 6 Then ListBox1.Clear
      End With
      Me.CommandButton2.Enabled = False
End Sub
[/vba]

Автор - wild_pig
Дата добавления - 24.02.2014 в 01:26
Stormy Дата: Понедельник, 24.02.2014, 11:00 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
wild_pig,
Спасибо, чуть подправил под себя и все встало на свои места. hands


Место для рекламы.
 
Ответить
Сообщениеwild_pig,
Спасибо, чуть подправил под себя и все встало на свои места. hands

Автор - Stormy
Дата добавления - 24.02.2014 в 11:00
Stormy Дата: Понедельник, 24.02.2014, 17:39 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Уважаемые форумчане, прошу помощи.
Сделал тестовый вариант (ссылка в старттопике) все получилось и работает, но возникли некоторые подводные камушки.
Перенес на свой файл, вставка исправленной строки в листбокс ( на тоже самое место) не работает. То бишь вставляет черте куда и не знамо почему.
Поглядите, пожалуйста, в чем ошибка.
К сообщению приложен файл: _v2.xlsm (96.4 Kb)


Место для рекламы.
 
Ответить
СообщениеУважаемые форумчане, прошу помощи.
Сделал тестовый вариант (ссылка в старттопике) все получилось и работает, но возникли некоторые подводные камушки.
Перенес на свой файл, вставка исправленной строки в листбокс ( на тоже самое место) не работает. То бишь вставляет черте куда и не знамо почему.
Поглядите, пожалуйста, в чем ошибка.

Автор - Stormy
Дата добавления - 24.02.2014 в 17:39
Wasilich Дата: Понедельник, 24.02.2014, 18:22 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Пытаюсь сделать возможным редактирование строк в ListBox.
Просто интересно, какая необходимость редактировать в лист-боксе. Почему не в таблице? Зачем лишние телодвижения? %)
 
Ответить
Сообщение
Пытаюсь сделать возможным редактирование строк в ListBox.
Просто интересно, какая необходимость редактировать в лист-боксе. Почему не в таблице? Зачем лишние телодвижения? %)

Автор - Wasilich
Дата добавления - 24.02.2014 в 18:22
Stormy Дата: Понедельник, 24.02.2014, 19:36 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Wasilic,
Если разрешить оператору редактировать в таблице, то есть большая вероятность ошибки. А в лист-боксе после клика все редактируется через боксы. Как-то так.


Место для рекламы.

Сообщение отредактировал Stormy - Понедельник, 24.02.2014, 19:38
 
Ответить
СообщениеWasilic,
Если разрешить оператору редактировать в таблице, то есть большая вероятность ошибки. А в лист-боксе после клика все редактируется через боксы. Как-то так.

Автор - Stormy
Дата добавления - 24.02.2014 в 19:36
Stormy Дата: Вторник, 25.02.2014, 15:15 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Решил таким образом.

[vba]
Код
NomStrLb = Me.ListBox1.ListIndex 'Определил позицию строки в ЛисБокс
       NomStrExc = NomStrLb + 22   'Добавил к ней кол-во строк до нужно мне в Excel
Range("C10") = NomStrExc  '
[/vba]
Дальше обычным копированием рабочей строки в строку с подставленным номером.

Wasilic,
Спасибо, Вы подтолкнули мысль в нужном направление hands


Место для рекламы.
 
Ответить
СообщениеРешил таким образом.

[vba]
Код
NomStrLb = Me.ListBox1.ListIndex 'Определил позицию строки в ЛисБокс
       NomStrExc = NomStrLb + 22   'Добавил к ней кол-во строк до нужно мне в Excel
Range("C10") = NomStrExc  '
[/vba]
Дальше обычным копированием рабочей строки в строку с подставленным номером.

Wasilic,
Спасибо, Вы подтолкнули мысль в нужном направление hands

Автор - Stormy
Дата добавления - 25.02.2014 в 15:15
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Редактирование строк в ListBox (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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