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

Вход

Регистрация

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

 

= Мир MS Excel/Изменение и удаление данных через форму - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение и удаление данных через форму (Макросы/Sub)
Изменение и удаление данных через форму
justdedmorozec Дата: Вторник, 02.02.2021, 17:43 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Добрый день. Не могли бы помочь с созданием аналога стандартной формы Екселя для редактирования и удаления строчек из таблицы? Пробовал различные примеры из сети, но на основе них так и не смог сделать нужную мне форму. Элемент ListBox добавлен для проверки, но основная цель вывод данных на TextBox.
[vba]
Код
    
    Sub Stripping()

        Me.TextBox1 = ""
        
        CommandButtonArrange.Enabled = True
    
    End Sub

    Private Sub CommandButtonArrange_Click()

        Dim iLastRow As Long
        Dim iFoundRng As Range
        Dim iBazaSht As Worksheet
        Dim iResponse As Byte
    
        If Me.TextBox1 = "" Then
            MsgBox "Заполни недостающие поля", vbExclamation, "Заполнены не все поля"
            Exit Sub
        End If
        
        Set iBazaSht = ThisWorkbook.Sheets("Лист1") 'имя листа, куда будем вносить информацию
        Set iFoundRng = iBazaSht.Columns(2).Find(what:=Me.TextBox1.Text, LookAt:=xlWhole) 'ячейка целиком
    
        With Sheets(iBazaSht.Name)
            iLastRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
            .Cells(iLastRow, 2) = Me.TextBox1
    
        End With
    
    Call Stripping
    
        
    '    MsgBox "Информация добавлена в базу!", vbInformation, "База"

    End Sub

Private Sub CommandButtonChange_Click()

    If IsEmpty(ThisWorkbook.Sheets("Лист1").Range("A3")) = True Then
        MsgBox "Нет записей для изменений"
    Else
        ComboBoxRecordNumber.Enabled = True
        ComboBoxRecordNumber.Locked = False
        ComboBoxRecordNumber.BackColor = &H80000005
        
    r = Cells(Rows.Count, "a").End(xlUp).Row  'Последняя непустая ячейка в столбце "a"
    
'    Me.ComboBoxRecordNumber.RowSource = "Отчёт!a3:a" & r

    With Sheets("Лист1")
        Me.ComboBoxRecordNumber.List = .Range("A3", .Cells(Rows.Count, "A").End(xlUp)).Value
    End With

    r = Cells(Rows.Count, "a").End(xlUp).Row  'Последняя непустая ячейка в столбце "d"
        For i = 3 To r
        If Cells(i, "a") = ComboBoxRecordNumber.Value Then ListBox1.AddItem Cells(i, "b")
    Next
    End If

End Sub

Private Sub ComboBoxRecordNumber_Change()

    r = Cells(Rows.Count, "a").End(xlUp).Row  'Последняя непустая ячейка в столбце "d"
    For i = 3 To r
    If Cells(i, "a") = ComboBoxRecordNumber.Value Then ListBox1.AddItem Cells(i, "b")

'    For i = 3 To 15
'        If Sheets("Отчёт").Cells(i, "a") = ComboBoxRecordNumber.Value Then Me.Date1.Text = Cells(i, "b")
'            Date1.AddItem Cells(i, "b")
'            Me.TextBoxNameDO.Value = Cells(i, "f")
'            Me.TextBoxPlayground.Value = Cells(i, "g")
    Next

End Sub

Private Sub CommandButtonDel_Click()

End Sub

Private Sub CommandButton1_Click()

End Sub

    Private Sub UserForm_Initialize()
            
    End Sub

[/vba]
К сообщению приложен файл: 3454391.xlsm (23.8 Kb)


Сообщение отредактировал justdedmorozec - Среда, 03.02.2021, 09:24
 
Ответить
СообщениеДобрый день. Не могли бы помочь с созданием аналога стандартной формы Екселя для редактирования и удаления строчек из таблицы? Пробовал различные примеры из сети, но на основе них так и не смог сделать нужную мне форму. Элемент ListBox добавлен для проверки, но основная цель вывод данных на TextBox.
[vba]
Код
    
    Sub Stripping()

        Me.TextBox1 = ""
        
        CommandButtonArrange.Enabled = True
    
    End Sub

    Private Sub CommandButtonArrange_Click()

        Dim iLastRow As Long
        Dim iFoundRng As Range
        Dim iBazaSht As Worksheet
        Dim iResponse As Byte
    
        If Me.TextBox1 = "" Then
            MsgBox "Заполни недостающие поля", vbExclamation, "Заполнены не все поля"
            Exit Sub
        End If
        
        Set iBazaSht = ThisWorkbook.Sheets("Лист1") 'имя листа, куда будем вносить информацию
        Set iFoundRng = iBazaSht.Columns(2).Find(what:=Me.TextBox1.Text, LookAt:=xlWhole) 'ячейка целиком
    
        With Sheets(iBazaSht.Name)
            iLastRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
            .Cells(iLastRow, 2) = Me.TextBox1
    
        End With
    
    Call Stripping
    
        
    '    MsgBox "Информация добавлена в базу!", vbInformation, "База"

    End Sub

Private Sub CommandButtonChange_Click()

    If IsEmpty(ThisWorkbook.Sheets("Лист1").Range("A3")) = True Then
        MsgBox "Нет записей для изменений"
    Else
        ComboBoxRecordNumber.Enabled = True
        ComboBoxRecordNumber.Locked = False
        ComboBoxRecordNumber.BackColor = &H80000005
        
    r = Cells(Rows.Count, "a").End(xlUp).Row  'Последняя непустая ячейка в столбце "a"
    
'    Me.ComboBoxRecordNumber.RowSource = "Отчёт!a3:a" & r

    With Sheets("Лист1")
        Me.ComboBoxRecordNumber.List = .Range("A3", .Cells(Rows.Count, "A").End(xlUp)).Value
    End With

    r = Cells(Rows.Count, "a").End(xlUp).Row  'Последняя непустая ячейка в столбце "d"
        For i = 3 To r
        If Cells(i, "a") = ComboBoxRecordNumber.Value Then ListBox1.AddItem Cells(i, "b")
    Next
    End If

End Sub

Private Sub ComboBoxRecordNumber_Change()

    r = Cells(Rows.Count, "a").End(xlUp).Row  'Последняя непустая ячейка в столбце "d"
    For i = 3 To r
    If Cells(i, "a") = ComboBoxRecordNumber.Value Then ListBox1.AddItem Cells(i, "b")

'    For i = 3 To 15
'        If Sheets("Отчёт").Cells(i, "a") = ComboBoxRecordNumber.Value Then Me.Date1.Text = Cells(i, "b")
'            Date1.AddItem Cells(i, "b")
'            Me.TextBoxNameDO.Value = Cells(i, "f")
'            Me.TextBoxPlayground.Value = Cells(i, "g")
    Next

End Sub

Private Sub CommandButtonDel_Click()

End Sub

Private Sub CommandButton1_Click()

End Sub

    Private Sub UserForm_Initialize()
            
    End Sub

[/vba]

Автор - justdedmorozec
Дата добавления - 02.02.2021 в 17:43
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение и удаление данных через форму (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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