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

Вход

Регистрация

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

 

= Мир MS Excel/Удалить выбранные данные в комбобоксе и базе данных - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удалить выбранные данные в комбобоксе и базе данных (Макросы/Sub)
Удалить выбранные данные в комбобоксе и базе данных
parovoznik Дата: Воскресенье, 12.03.2017, 20:49 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Доброе время суток.
На форме расположен комбобокс для выбора товара.Если нужно удалить товар,то
выбираем нужный товар для удаления и жмем по кнопке "Удалить".
В результате удаляются данные в комбобоксе и базе данных. Сейчас код работает некорректно.
Товар удаляется после того ,как форму закрыть и по новому отобразить.
Возможно скорректировать код , что бы удаление с комба производилось сразу по нажатию на кнопку?
К сообщению приложен файл: Delete.xlsm (23.6 Kb)
 
Ответить
СообщениеДоброе время суток.
На форме расположен комбобокс для выбора товара.Если нужно удалить товар,то
выбираем нужный товар для удаления и жмем по кнопке "Удалить".
В результате удаляются данные в комбобоксе и базе данных. Сейчас код работает некорректно.
Товар удаляется после того ,как форму закрыть и по новому отобразить.
Возможно скорректировать код , что бы удаление с комба производилось сразу по нажатию на кнопку?

Автор - parovoznik
Дата добавления - 12.03.2017 в 20:49
Perfect2You Дата: Воскресенье, 12.03.2017, 21:33 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 237
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Удаление у Вас происходит. Не происходит обновления списка у ListBox.
Достаточно добавить одну строчечку
[vba]
Код
ComboBox1.List = sdsheet1.Range("A2", sdsheet1.Cells(Rows.Count, "A").End(xlUp)).Value
[/vba]
чтобы цикл стал выглядеть так:
[vba]
Код
    For x = 2 To lr
        If Me.ComboBox1.Column(0, ComboBox1.ListIndex) = sdsheet1.Cells(x, 1) Then
           sdsheet1.Range("A" & (x)).Delete Shift:=xlUp
           ComboBox1.List = sdsheet1.Range("A2", sdsheet1.Cells(Rows.Count, "A").End(xlUp)).Value
           Exit For
        End If
    Next
[/vba]
 
Ответить
СообщениеУдаление у Вас происходит. Не происходит обновления списка у ListBox.
Достаточно добавить одну строчечку
[vba]
Код
ComboBox1.List = sdsheet1.Range("A2", sdsheet1.Cells(Rows.Count, "A").End(xlUp)).Value
[/vba]
чтобы цикл стал выглядеть так:
[vba]
Код
    For x = 2 To lr
        If Me.ComboBox1.Column(0, ComboBox1.ListIndex) = sdsheet1.Cells(x, 1) Then
           sdsheet1.Range("A" & (x)).Delete Shift:=xlUp
           ComboBox1.List = sdsheet1.Range("A2", sdsheet1.Cells(Rows.Count, "A").End(xlUp)).Value
           Exit For
        End If
    Next
[/vba]

Автор - Perfect2You
Дата добавления - 12.03.2017 в 21:33
Wasilich Дата: Воскресенье, 12.03.2017, 22:21 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
А так не проще?
[vba]
Код
    ComboBox1 = ""
    UserForm_Initialize
End Sub
[/vba]
 
Ответить
СообщениеА так не проще?
[vba]
Код
    ComboBox1 = ""
    UserForm_Initialize
End Sub
[/vba]

Автор - Wasilich
Дата добавления - 12.03.2017 в 22:21
parovoznik Дата: Понедельник, 13.03.2017, 00:58 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Perfect2You, спасибо за кооректировку кода. При нажатии на кнопку "Удалить" в комбобоксе выбранные данные отражаются,но после изменения в комбе их уже нет. (удалились). :)
Wasilich,добавил две строчки в код ,который отредактировал Rerfect2You и все удалилось. hands

[vba]
Код
Private Sub Btn_Удалить_Click()
   Dim sdsheet1 As Worksheet
    Set sdsheet1 = ThisWorkbook.Sheets("db")
    lr = sdsheet1.Range("A65536").End(xlUp).Row
    Dim i As Integer, iRow As Long, x As Integer
    If ComboBox1.ListIndex = -1 Then
        MsgBox "Вы не выбрали ТМЦ для удаления!", 48, "Ошибка"
        Exit Sub
    End If
    a = MsgBox("Вы действительно хотите удалить Товар?", 36, "Подтверждение удаления")
    If a = vbNo Then Exit Sub
   For x = 2 To lr
        If Me.ComboBox1.Column(0, ComboBox1.ListIndex) = sdsheet1.Cells(x, 1) Then
        sdsheet1.Range("A" & (x)).Delete Shift:=xlUp
        ComboBox1.List = sdsheet1.Range("A2", sdsheet1.Cells(Rows.Count, "A").End(xlUp)).Value
        Exit For
        End If
    Next
    ComboBox1 = ""
    UserForm_Initialize
End Sub
[/vba]
К сообщению приложен файл: Delete2.xlsm (23.0 Kb)
 
Ответить
СообщениеPerfect2You, спасибо за кооректировку кода. При нажатии на кнопку "Удалить" в комбобоксе выбранные данные отражаются,но после изменения в комбе их уже нет. (удалились). :)
Wasilich,добавил две строчки в код ,который отредактировал Rerfect2You и все удалилось. hands

[vba]
Код
Private Sub Btn_Удалить_Click()
   Dim sdsheet1 As Worksheet
    Set sdsheet1 = ThisWorkbook.Sheets("db")
    lr = sdsheet1.Range("A65536").End(xlUp).Row
    Dim i As Integer, iRow As Long, x As Integer
    If ComboBox1.ListIndex = -1 Then
        MsgBox "Вы не выбрали ТМЦ для удаления!", 48, "Ошибка"
        Exit Sub
    End If
    a = MsgBox("Вы действительно хотите удалить Товар?", 36, "Подтверждение удаления")
    If a = vbNo Then Exit Sub
   For x = 2 To lr
        If Me.ComboBox1.Column(0, ComboBox1.ListIndex) = sdsheet1.Cells(x, 1) Then
        sdsheet1.Range("A" & (x)).Delete Shift:=xlUp
        ComboBox1.List = sdsheet1.Range("A2", sdsheet1.Cells(Rows.Count, "A").End(xlUp)).Value
        Exit For
        End If
    Next
    ComboBox1 = ""
    UserForm_Initialize
End Sub
[/vba]

Автор - parovoznik
Дата добавления - 13.03.2017 в 00:58
ytnjfxghn Дата: Четверг, 07.12.2023, 14:59 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

2021
parovoznik, день добрый, можете подсказать, если создать на странице db еще одну похожую таблицу и продублировать форму поменяв адреса, то продублированная форма не работает. подскажите в чем дело.? В Excel полный ноль. Буду очень благодарен за помощь.


Сообщение отредактировал ytnjfxghn - Четверг, 07.12.2023, 15:04
 
Ответить
Сообщениеparovoznik, день добрый, можете подсказать, если создать на странице db еще одну похожую таблицу и продублировать форму поменяв адреса, то продублированная форма не работает. подскажите в чем дело.? В Excel полный ноль. Буду очень благодарен за помощь.

Автор - ytnjfxghn
Дата добавления - 07.12.2023 в 14:59
mgt Дата: Четверг, 07.12.2023, 15:44 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 98
Репутация: 25 ±
Замечаний: 0% ±

Excel 2010
Пример
К сообщению приложен файл: delete2.xlsm (24.9 Kb)
 
Ответить
СообщениеПример

Автор - mgt
Дата добавления - 07.12.2023 в 15:44
ytnjfxghn Дата: Четверг, 07.12.2023, 16:36 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

2021
mgt, очень благодарен. Можете подсказать в чем отличие кода форм?
 
Ответить
Сообщениеmgt, очень благодарен. Можете подсказать в чем отличие кода форм?

Автор - ytnjfxghn
Дата добавления - 07.12.2023 в 16:36
mgt Дата: Четверг, 07.12.2023, 16:45 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 98
Репутация: 25 ±
Замечаний: 0% ±

Excel 2010
Столбец А заменить на нужный (в примере В)

В строчке ниже указать номер столбца (в примере это 2, т.к. B второй по счету - Cells(x, 2))
[vba]
Код

If Me.ComboBox1.Column(0, ComboBox1.ListIndex) = sdsheet1.Cells(x, 2) Then
[/vba]


Сообщение отредактировал mgt - Четверг, 07.12.2023, 16:47
 
Ответить
СообщениеСтолбец А заменить на нужный (в примере В)

В строчке ниже указать номер столбца (в примере это 2, т.к. B второй по счету - Cells(x, 2))
[vba]
Код

If Me.ComboBox1.Column(0, ComboBox1.ListIndex) = sdsheet1.Cells(x, 2) Then
[/vba]

Автор - mgt
Дата добавления - 07.12.2023 в 16:45
ytnjfxghn Дата: Четверг, 07.12.2023, 16:47 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

2021
mgt, весьма благодарен. Спасибо большое.
 
Ответить
Сообщениеmgt, весьма благодарен. Спасибо большое.

Автор - ytnjfxghn
Дата добавления - 07.12.2023 в 16:47
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удалить выбранные данные в комбобоксе и базе данных (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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