Вопрос задан 01.05.2019 в 00:54. Предмет Информатика. Спрашивает Черняк Максим.

Помогите с написанием программы в VBA EXCEL Создать таблицу со следующими реквизитами: фамилия,

адрес, дата, стоимость заказа, сумма аванса, задолженность, вид заказа. В отчете учесть итоговую информацию=задолженность+стоимость-аванс.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Корепин Артём.
'На первом листе внесите данные
'При добавлении записей формулу вычисления задолженности добавлять не надо
'Запускаете макрос - результат (отчет) на втором листе
'На первом листе формулы пересчитывается - результаты обновляются
'Форма в этом случае -излишне
Dim i, j, s, a

Sub Othet ()
Dim info As Variant

'Clear OTHET(2 list)
 Sheets(2).Select
    Range("A1:I1").Select
    With Selection
        .HorizontalAlignment = xlGeneral:        .VerticalAlignment = xlBottom
        .AddIndent = False:        .IndentLevel = 0:   .ShrinkToFit = False:            .MergeCells = True
    End With
    Selection.Font.Bold = True
    With Selection
    End With
Sheets(2).Cells(1, 1) = "ОТЧЕТ"

'Shapka 1 list
Sheets(1).Select
 info = Array("", "фамилия", "адрес", "дата", "стоимость заказа", "сумма аванса", "задолженность", "вид заказа")
For i = 1 To UBound(info)
 Cells(1, i) = info(i)
Next

i = 2
'Расчет долга
While Cells(i, 1) <> ""
  Cells(i, 5) = "=D" + Chr(48 + i) + "-E" + Chr(48 + i)
  i = i + 1
Wend
Rows("1:1").Select
Selection.AutoFilter
a = "" + ">" + InputBox("Укажите задолженность", "", 0) + ""
Selection.AutoFilter field:=5, Criteria1:=a, Operator:=xlAnd
Range("A1:G" + Chr(48 + i) + "").Copy Sheets(2).Range("a2")

Sheets(1).Select
Selection.AutoFilter
End Sub










0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Создание таблицы в VBA Excel

Для создания таблицы с указанными реквизитами в VBA Excel, вам потребуется использовать объекты и методы Excel. Вот пример кода, который поможет вам создать таблицу:

```vba Sub CreateTable() Dim ws As Worksheet Dim tbl As ListObject ' Указываем лист, на котором будет создана таблица Set ws = ThisWorkbook.Worksheets("Название листа") ' Создаем таблицу Set tbl = ws.ListObjects.Add(xlSrcRange, ws.Range("A1:G1"), , xlYes) ' Задаем заголовки столбцов tbl.HeaderRowRange.Value = Array("Фамилия", "Адрес", "Дата", "Стоимость заказа", "Сумма аванса", "Задолженность", "Вид заказа") ' Форматируем таблицу tbl.TableStyle = "TableStyleMedium2" End Sub ```

В этом примере создается таблица на указанном листе с заголовками столбцов, соответствующими вашим реквизитам. Вы можете изменить `"Название листа"` на имя листа, на котором вы хотите создать таблицу.

Расчет задолженности

Для расчета задолженности, используя формулу "задолженность = стоимость заказа - аванс", вы можете добавить следующий код после создания таблицы:

```vba Sub CalculateDebt() Dim ws As Worksheet Dim tbl As ListObject Dim lastRow As Long ' Указываем лист, на котором находится таблица Set ws = ThisWorkbook.Worksheets("Название листа") ' Указываем таблицу Set tbl = ws.ListObjects("Имя таблицы") ' Получаем последнюю заполненную строку в таблице lastRow = tbl.Range.Rows.Count ' Расчет задолженности для каждой строки в таблице For i = 2 To lastRow tbl.Range.Cells(i, tbl.ListColumns("Задолженность").Index).Formula = "=" & tbl.Range.Cells(i, tbl.ListColumns("Стоимость заказа").Index).Address & "-" & tbl.Range.Cells(i, tbl.ListColumns("Сумма аванса").Index).Address Next i End Sub ```

В этом примере мы предполагаем, что таблица уже создана на указанном листе и имеет имя `"Имя таблицы"`. Вы можете изменить `"Название листа"` и `"Имя таблицы"` на соответствующие значения в вашем файле.

Итоговая информация

Для учета итоговой информации, вы можете использовать встроенные функции Excel, такие как `SUM`, `AVERAGE`, `COUNT`, и т.д. Вот пример кода, который поможет вам получить итоговую информацию для столбца "Задолженность":

```vba Sub CalculateSummary() Dim ws As Worksheet Dim tbl As ListObject ' Указываем лист, на котором находится таблица Set ws = ThisWorkbook.Worksheets("Название листа") ' Указываем таблицу Set tbl = ws.ListObjects("Имя таблицы") ' Добавляем итоговую строку tbl.ShowTotals = True ' Указываем функцию для столбца "Задолженность" tbl.ListColumns("Задолженность").TotalsCalculation = xlTotalsCalculationSum End Sub ```

В этом примере мы предполагаем, что таблица уже создана на указанном листе и имеет имя `"Имя таблицы"`. Вы можете изменить `"Название листа"` и `"Имя таблицы"` на соответствующие значения в вашем файле.

Надеюсь, эти примеры помогут вам создать таблицу с указанными реквизитами и учесть итоговую информацию. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать!

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос