Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2019, 09:43   #1
Morrowind1985
Новичок
Джуниор
 
Регистрация: 20.03.2019
Сообщений: 2
Вопрос Сбор данных в таблице

Доброго всем дня!
Попробую описать суть проблемы.
Мне нужно сделать так, чтобы постоянно вводимые данные в одну ячейку после нажатия кнопки Enter переносились и собрались на другом листе по порядку в определенном столбце.
Т.е. я ввожу данные в ячейку,нажимаю Enter, данные в ячейке исчезают, но отображаются в столбце на другом листе. Я ввожу следующие данные в эту же ячейку, опять нажимаю Enter и данные переносятся в столбец на другом листе ниже по порядку и т.д. (собирались)
Спасибо за помощь
Morrowind1985 вне форума Ответить с цитированием
Старый 20.03.2019, 09:52   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

если разрешены макросы, то это можно сделать макросом (Worksheet_Change, например).

вот макрос для нужного листа, который выдаёт сообщение, если изменилась ячейка A3 (просто для примера)
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Range("A3"), Range(Target.Address)) Is Nothing Then

        ' Display a message when one of the designated cells has been
        ' changed.
        ' Place your code here.
        MsgBox "Cell " & Target.Address & " has changed."

    End If
End Sub
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.03.2019, 10:00   #3
Morrowind1985
Новичок
Джуниор
 
Регистрация: 20.03.2019
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
если разрешены макросы, то это можно сделать макросом (Worksheet_Change, например).

вот макрос для нужного листа, который выдаёт сообщение, если изменилась ячейка A3 (просто для примера)
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Range("A3"), Range(Target.Address)) Is Nothing Then

        ' Display a message when one of the designated cells has been
        ' changed.
        ' Place your code here.
        MsgBox "Cell " & Target.Address & " has changed."

    End If
End Sub


Как Вы понимаете, я с этим не сталкивался.
Есть ли ссылка на какой-нибудь источник, где это раскрывается подробнее?
Можете подсказать?
Спасибо
Morrowind1985 вне форума Ответить с цитированием
Старый 20.03.2019, 11:58   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно, например, так:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long, x As Range
    Set x = Range("A1") 'Контролируемая ячейка
    If Target.Address <> x.Address Then Exit Sub
    With Sheets("Лист2") 'Лист, в который помещаем результат
        i = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        .Cells(i, 1) = x.Value
        .Cells(i, 2) = Format(Now, "DD.MM.YYYY hh:mm:ss")
    End With
    Application.EnableEvents = False
    [A1].ClearContents
    Application.EnableEvents = True
End Sub
Пример во вложении.
Код должен находиться в модуле того листа, из ячейки которого требуется перемещать вводимые данные.
Вложения
Тип файла: rar Пример.rar (13.1 Кб, 13 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сбор данных JS Юрий241 JavaScript, Ajax 0 27.01.2019 14:06
Сбор и проверка данных. Naemnick Фриланс 1 08.06.2013 16:52
Сбор данных RelaX Inc. Безопасность, Шифрование 8 28.03.2013 17:55
Макрос на сбор данных Вадичок Microsoft Office Excel 2 01.10.2012 08:09
Сбор данных OgE®_M@G Microsoft Office Excel 6 05.11.2008 05:57