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

Вход

Регистрация

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

 

= Мир MS Excel/ListBox Поднять опустить, строку. - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » ListBox Поднять опустить, строку. (Макросы/Sub)
ListBox Поднять опустить, строку.
lopuxi Дата: Четверг, 11.02.2016, 14:18 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 108
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007, 2013
Добрый день.
У меня что-то не получается корректно поднять выделенную строку в Listbox, во второй колонке.
А еще ее надо опустить.

Суть того что я хочу довольно проста. Просто перемещать выделенную строку в ListBox вверх и вниз.

Я приложу файл, где все ОК, с первой колонкой. А со второй нет. Почему то при поднятии, к примеру выделенной строки №5, элемент во второй колонке поднимается не корректно...
И я ни как не пойму, что именно делаю не так. У меня такое ощущение что все не так...
Не ругайте строго :-)
К сообщению приложен файл: ListBox.xlsm(24Kb)


О_о ...и так можно было?

Сообщение отредактировал lopuxi - Четверг, 11.02.2016, 14:29
 
Ответить
СообщениеДобрый день.
У меня что-то не получается корректно поднять выделенную строку в Listbox, во второй колонке.
А еще ее надо опустить.

Суть того что я хочу довольно проста. Просто перемещать выделенную строку в ListBox вверх и вниз.

Я приложу файл, где все ОК, с первой колонкой. А со второй нет. Почему то при поднятии, к примеру выделенной строки №5, элемент во второй колонке поднимается не корректно...
И я ни как не пойму, что именно делаю не так. У меня такое ощущение что все не так...
Не ругайте строго :-)

Автор - lopuxi
Дата добавления - 11.02.2016 в 14:18
Manyasha Дата: Четверг, 11.02.2016, 17:01 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 662 ±
Замечаний: 0% ±

Excel 2007, 2010
lopuxi, вроде так:
[vba]
Код
Private Sub ButtonUP_Click()
    Dim ListUP As Integer
    With ListBox2
        ListUP = .ListIndex
        If ListUP > 1 Then
            .AddItem .List(ListUP, 0), ListUP - 1
            .Column(1, ListUP - 1) = .List(ListUP + 1, 1)
            .RemoveItem ListUP + 1
            .ListIndex = ListUP - 1
        End If
    End With
End Sub
[/vba][vba]
Код
Private Sub ButtonDown_Click()
    Dim ListDown As Integer
    With ListBox2
       ListDown = .ListIndex
       If ListDown < ListBox2.ListCount - 1 And ListDown > 0 Then
           .AddItem .List(ListDown), ListDown + 2
           .Column(1, ListDown + 2) = .List(ListDown, 1)
           .RemoveItem ListDown
           .ListIndex = ListDown + 1
       End If
    End With
End Sub
[/vba]
К сообщению приложен файл: ListBox-1.xlsm(23Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеlopuxi, вроде так:
[vba]
Код
Private Sub ButtonUP_Click()
    Dim ListUP As Integer
    With ListBox2
        ListUP = .ListIndex
        If ListUP > 1 Then
            .AddItem .List(ListUP, 0), ListUP - 1
            .Column(1, ListUP - 1) = .List(ListUP + 1, 1)
            .RemoveItem ListUP + 1
            .ListIndex = ListUP - 1
        End If
    End With
End Sub
[/vba][vba]
Код
Private Sub ButtonDown_Click()
    Dim ListDown As Integer
    With ListBox2
       ListDown = .ListIndex
       If ListDown < ListBox2.ListCount - 1 And ListDown > 0 Then
           .AddItem .List(ListDown), ListDown + 2
           .Column(1, ListDown + 2) = .List(ListDown, 1)
           .RemoveItem ListDown
           .ListIndex = ListDown + 1
       End If
    End With
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 11.02.2016 в 17:01
lopuxi Дата: Четверг, 11.02.2016, 18:11 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 108
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007, 2013
Manyasha,
Да, это невероятно, оно работает :)


О_о ...и так можно было?

Сообщение отредактировал lopuxi - Четверг, 11.02.2016, 18:12
 
Ответить
СообщениеManyasha,
Да, это невероятно, оно работает :)

Автор - lopuxi
Дата добавления - 11.02.2016 в 18:11
StoTisteg Дата: Пятница, 12.02.2016, 22:15 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Dim ListDown As Integer
[/vba]

[vba]
Код
Dim ListDown As Long
[/vba]
Ибо всякое бывает...
[moder]Для оформления кода используйте теги (кнопка #)[/moder]


Проверь всё. ThisWorkbook.Save. On Error Resume Next.

Сообщение отредактировал Pelena - Пятница, 12.02.2016, 22:23
 
Ответить
Сообщение[vba]
Код
Dim ListDown As Integer
[/vba]

[vba]
Код
Dim ListDown As Long
[/vba]
Ибо всякое бывает...
[moder]Для оформления кода используйте теги (кнопка #)[/moder]

Автор - StoTisteg
Дата добавления - 12.02.2016 в 22:15
Мир MS Excel » Вопросы и решения » Вопросы по VBA » ListBox Поднять опустить, строку. (Макросы/Sub)
Страница 1 из 11
Поиск:

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