Доброе время суток. На форме расположен комбобокс для выбора товара.Если нужно удалить товар,то выбираем нужный товар для удаления и жмем по кнопке "Удалить". В результате удаляются данные в комбобоксе и базе данных. Сейчас код работает некорректно. Товар удаляется после того ,как форму закрыть и по новому отобразить. Возможно скорректировать код , что бы удаление с комба производилось сразу по нажатию на кнопку?
Доброе время суток. На форме расположен комбобокс для выбора товара.Если нужно удалить товар,то выбираем нужный товар для удаления и жмем по кнопке "Удалить". В результате удаляются данные в комбобоксе и базе данных. Сейчас код работает некорректно. Товар удаляется после того ,как форму закрыть и по новому отобразить. Возможно скорректировать код , что бы удаление с комба производилось сразу по нажатию на кнопку?parovoznik
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]
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
Perfect2You, спасибо за кооректировку кода. При нажатии на кнопку "Удалить" в комбобоксе выбранные данные отражаются,но после изменения в комбе их уже нет. (удалились). Wasilich,добавил две строчки в код ,который отредактировал Rerfect2You и все удалилось.
[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]
Perfect2You, спасибо за кооректировку кода. При нажатии на кнопку "Удалить" в комбобоксе выбранные данные отражаются,но после изменения в комбе их уже нет. (удалились). Wasilich,добавил две строчки в код ,который отредактировал Rerfect2You и все удалилось.
[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
parovoznik, день добрый, можете подсказать, если создать на странице db еще одну похожую таблицу и продублировать форму поменяв адреса, то продублированная форма не работает. подскажите в чем дело.? В Excel полный ноль. Буду очень благодарен за помощь.
parovoznik, день добрый, можете подсказать, если создать на странице db еще одну похожую таблицу и продублировать форму поменяв адреса, то продублированная форма не работает. подскажите в чем дело.? В Excel полный ноль. Буду очень благодарен за помощь.ytnjfxghn
Сообщение отредактировал ytnjfxghn - Четверг, 07.12.2023, 15:04