Страницы: 1
RSS
Форма для заполнения таблицы, Разыскивается способ заполнения таблицы.
 
Хочется реализовать, для своих нужд оффлайн аналог гугл форм. Знаний как обычно не хватает, а гуглёж к искомому результату не привел. Зато привел на этот форум.

Итак чего хочется. Курсивом необязательные пункты

Файлик excel где на первом листе будет аналог гугл форм. С возможностью редактирования. Желательно не очень сложного. Образец как должно выглядеть
Внизу формы кнопка "Отправить" Которая переносит данные на второй лист и очищается для новой записи.

На втором листе таблица для ввода данных автоматом добавляющая к каждой новой записи дату и время (возможно средствами формы организовать). Ну и немного формул для простых расчётов вводимых данных.

На третьем сводная таблица. Но это я смогу сам реализовать.
Изменено: Александр - 06.12.2022 13:10:12
 
Пусть это будем моим дневничком по реализации идеи. Никто ж не ответил.

Накидал шаблон.  Буду искать как переносить данные в другую таблицу и очищать форму.
 
Код
Option Explicit

Private Sub Worksheet_selectionChange(ByVal Target As Range)
    If Target.Cells(1, 1).Value = "Отправить" Then
        myAdd Array(Now, Range("E5").Value, Get2(), Get3(1, 5), Get3(6, 10), Get3(11, 13))
    End If
End Sub

Function Get2() As String
    Dim ss As String
    Dim ob As OptionButton
    For Each ob In ActiveSheet.OptionButtons
        If ob.Value = 1 Then ss = ss & ob.Caption
    Next
    Get2 = ss
End Function

Function Get3(i1 As Long, i2 As Long) As String
    Dim ss As String
    Dim cb As CheckBox
    Dim ii As Long
    For ii = i1 To i2
        Set cb = ActiveSheet.CheckBoxes(ii)
        If cb.Value = 1 Then ss = ss & " " & ii & " " & cb.Caption
    Next
    Get3 = ss
End Function

Sub myAdd(arr As Variant)
    With Sheets("Данные")
        With .Cells(.Rows.Count, 1).End(xlUp).Cells(2, 1)
            With .Resize(1, UBound(arr) - LBound(arr) + 1)
                .Value = arr
            End With
        End With
    End With
    Application.StatusBar = arr(LBound(arr))
End Sub
Для этой задачи также подойдут пользовательские формы:
Работа с пользовательскими формами в VBA (baguzin.ru)
Изменено: МатросНаЗебре - 06.12.2022 15:40:53
Страницы: 1
Наверх