Страницы: 1
RSS
Как перренести данные из формы в таблицу, Где ошибка?
 
Доброго времени соток.
Весь мозг взорвал. Не вижу - в чём проблема?  :(
Код
Private Sub CommandButton4_Click() ' внесение изменений в бланки
Dim myTable As ListObject, myTableA4 As ListObject 
Dim x As Long
Dim n, myArray 
    n = GeneralForm1.ComboBox1.Value 
    Set myTable = Worksheets("Накладная").ListObjects("Nakladnaya") 
    Set myTableA4 = Worksheets("Накладная").ListObjects("NakladnayaA4")
    myArray = myTable.DataBodyRange 
        For x = LBound(myArray) To UBound(myArray) 
            If n = myArray(x, 2) Then 
                Call SheetActivate
                        myArray(x, 2) = GeneralForm1.TextBox3.Value
                        myArray(x, 3) = GeneralForm1.TextBox2.Value
                        myArray(x, 4) = GeneralForm1.TextBox1.Value
            End If
        Next x
End Sub
Почему при нажатии на кнопку ничего не происходит?
Спасибо.
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
 
Цитата
KonstantinK написал: Почему при нажатии на кнопку ничего не происходит?
А что должно происходить? У Вас заполняется массив myArray какими то данными из TextBox'ов. И все
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
массив myArray
Я так понимаю, что myArray это "Лист Накладная- Объект Nakladnaya- Данные таблицы- конкретная строка и столбец"
Соответственно туда я и пытаюсь передать данные при наступлении определённых условий из формы.
Или не так?
Тогда как?
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
 
не так. Вы таблицу загнали в виртуальный массив
myArray = myTable.DataBodyRange
а потом в этом виртуальном массива меняете значения
myArray(x, 2) = GeneralForm1.TextBox3.Value
но массив так и остается виртуальным.

П.С. для облегчения жизни помогающих прикладывайте файл пример.
Изменено: V - 14.02.2019 10:46:59
 
Вот и всё, как всегда.
Кому интересно - что делает этот код:
Меняем выбранные значения из  Умной таблицы сразу в двух таких таблицах.через форму vba.
Код
Private Sub CommandButton4_Click() 
Dim myTable As Worksheet, myTableA4 As Worksheet 
Dim x As Long
Dim n, myArray  
Dim ListObj As ListObject, ListObjA4 As ListObject 
Dim ListRow As ListRow, ListRowA4 As ListRow
    n = GeneralForm1.ComboBox1.Value 
    Set myTable = Worksheets("Накладная")
    Set myTableA4 = Worksheets("Накладная")
    Set ListObj = myTable.ListObjects("Nakladnaya") 
    Set ListObjA4 = myTableA4.ListObjects("NakladnayaA4")
    myArray = ListObj.DataBodyRange 
        For x = LBound(myArray) To UBound(myArray) 
            Set ListRow = ListObj.ListRows(x)
            Set ListRowA4 = ListObjA4.ListRows(x)
                If n = myArray(x, 2) Then 
                    Call SheetActivate
                         ListRow.Range(2) = GeneralForm1.TextBox3.Value
                         ListRow.Range(3) = GeneralForm1.TextBox2.Value
                         ListRow.Range(4) = GeneralForm1.TextBox1.Value
                         ListRowA4.Range(2) = GeneralForm1.TextBox3.Value
                         ListRowA4.Range(3) = GeneralForm1.TextBox2.Value
                         ListRowA4.Range(4) = GeneralForm1.TextBox1.Value
                End If
        Next x
End Sub

Только здесь корявенько.
Код
                         ListRow.Range(2) = GeneralForm1.TextBox3.Value
                         ListRow.Range(3) = GeneralForm1.TextBox2.Value
                         ListRow.Range(4) = GeneralForm1.TextBox1.Value
                         ListRowA4.Range(2) = GeneralForm1.TextBox3.Value
                         ListRowA4.Range(3) = GeneralForm1.TextBox2.Value
                         ListRowA4.Range(4) = GeneralForm1.TextBox1.Value
Как бы окультурить? Кроме With конечно, с этим проблем нет.
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
Страницы: 1
Наверх