Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Единая кнопка для всех вкладок MultiPage
 
Добрый вечер!
В форме несколько вкладок (7) с ListBox'ами. В каждом ListBox'е отображается перечень из соответствующего диапазона. Также есть две кнопки - "Добавить" и "Удалить" для возможности вносить корректировки в перечень выбранной вкладки. Вопрос - как можно реализовать возможность внесения корректировок  в перечень той или иной вкладки?
 
Добавлять/удалять записи в/из таблицу и обновлять Userform
 
Offtop
Вопрос к Юрию и Виктору - эта тема удовлетворяет правилам форума название темы?
С одной стороны
Цитата
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=profile_view&UID=35
То есть совсем одна.
С другой стороны уже
Цитата
есть две кнопки
И детализация вопроса - квинтэссенция
Цитата
как можно реализовать возможность внесения корректировок в перечень той или иной вкладки
На мой взгляд, совсем не сбивается с названием темы. Что найдёт по названию темы ищущий?
Изменено: Андрей VG - 22 Фев 2017 23:38:18
 
Андрей, на мой взгляд название вполне адекватное )
При условии, что одной кнопкой требуется обработать все вкладки.  
 
Цитата
Юрий М написал:
При условии, что одной кнопкой требуется обработать все вкладки.
Не совсем так. Одной кнопкой требуется обработать только активную вкладку.
Если делать на каждой вкладке отдельную кнопку, например для удаления, т.о. я использую код
Код
Private Sub delData_Click()
Dim I As Integer, iRow As Long
    For I = 0 To Me.ListBox.ListCount
        If Me.ListBox.Selected(I) = True Then
            iRow = Me.ListBox.List(Me.ListBox.ListIndex, 0)
            Me.ListBox.RemoveItem I
            Exit For
        End If
    Next
    With Sheets("Справочник")
        Range(.Cells(iRow, 1), .Cells(iRow, 1)).Delete
    End With
End Sub

А как сделать только для активной вкладки ?
Изменено: Nickname_82 - 23 Фев 2017 11:43:14
 
Цитата
Nickname_82 написал:
Одной кнопкой требуется обработать только активную вкладку
Что же тогда в названии темы Вы пишете?
Цитата
Nickname_82 написал:
Единая кнопка для всех вкладок
 
Цитата
Юрий М написал:
Что же тогда в названии темы Вы пишете?
Упс. Наверное, я не совсем правильно сформулировал наименование темы. Кнопка то одна для всех вкладок и выполняет одну единственную функцию для активной вкладки  
 
Цитата
Nickname_82 написал:
Наверное, я не совсем правильно сформулировал наименование темы
Предложите тогда новое название - модераторы поменяют.
 
вариант для удаления
Код
Private Sub delData_Click()
Dim ncol%, nrow%
ncol = Choose(Me.MultiPage1.Value + 1, 1, 3, 5, 7, 9, 11, 13)
nrow = Me.Controls("Listbox" & Me.MultiPage1.Value + 1).ListIndex
Cells(nrow + 2, ncol).Delete
Me.Controls("Listbox" & Me.MultiPage1.Value + 1).List(nrow, 0) = ""
Me.Controls("Listbox" & Me.MultiPage1.Value + 1).List(nrow, 1) = ""
End Sub
 
Цитата
V написал:
вариант для удаления
Спасибо большое! Работает!
А если необходимо наоборот добавлять Значение в один из перечень. Без дополнительной формы, в которое и будет вноситься новое значение, не обойтись.
До того как у меня не было вкладок значение я вносил при помощи кода:
Код
Private Sub addData_Click()
LastRow = Cells(Cells.Rows.Count, 1).End(xlUp).Row + 1
    Worksheets("Справочник").Cells(LastRow, 1).Value = NewData.Text
    If MsgBox("Добавить еще значение?", vbYesNo + vbInformation, "Запись внесена") = vbYes Then
        NewData.Value = ""
    Else
        Unload Me
    End If
End Sub
Как объяснить куда должна попадать NewData.Text ?
 
так? проверку кнопки (да или отмена) не делал
Код
Private Sub addData_Click()
Dim ncol%, nrow%, txt$
ncol = Choose(Me.MultiPage1.Value + 1, 1, 3, 5, 7, 9, 11, 13)
nrow = Me.Controls("Listbox" & Me.MultiPage1.Value + 1).ListCount
txt = InputBox("Введите значение", "ВВОД ДАННЫХ")
If txt <> "" Then
With Me.Controls("Listbox" & Me.MultiPage1.Value + 1)
  .AddItem ""
  .List(nrow, 0) = nrow + 1
  .List(nrow, 1) = txt
End With
Cells(Rows.Count, ncol).End(xlUp).Offset(1, 0) = txt
End If
End Sub
 
Цитата
V написал:
так? проверку кнопки (да или отмена) не делал
Да, все так! Спасибо большое!
Только два момента. Возможно ли их исправить?
Первый - ввод значения только через InputBox или можно все-таки вносить данные через свою форму?
Второй - когда удаляешь одно из значений (неважно в какой вкладке), то после добавления нового значения в ListBox'е оно появляется после пустой строчки. Т.О. получается пробел. И такая проблема только в ListBox, на листе "Справочник" пустых строк нет. После повторного запуска формы, пробелы пропадают.
 
Цитата
Nickname_82 написал:
Первый - ввод значения только через InputBox или можно все-таки вносить данные через свою форму?
Конечно можно. Только вы вначале просили без дополнительной формы.
 
Цитата
V написал:
Конечно можно
Но как ? При создании собственной формы она ругается на MultiPage1 (((
Страницы: 1
Читают тему (гостей: 1)
Наверх