Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 24.04.2019
Сообщений: 6
1

Записывание данных в Excel при их изменении

07.05.2019, 11:24. Просмотров 1386. Ответов 4
Метки нет (Все метки)

Всем привет, помогите, пжл...
Задача такая, есть excel документ, там 2 листа, в обоих разные таблицы, нужно сделать следующее, при вводе в разные ячейки листа №1 и изменении даты, при нажатие на кнопку сохранить, происходит запись этих данных на 2ой лист в каждую новую строку до бесконечности.
есть кнопка, есть макрос, но он записывает постоянно в 2 строку каждые новые данные, а надо чтобы записывал в каждую следующую пустую ниже... хелп ми.

макрос

Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub RecordData()
    Dim whIn As Worksheet, whOut As Worksheet, lngI As Long
    Set whIn = Worksheets("12"): Set whOut = Worksheets("13")
    With whOut
        lngI = .Range("A1").End(xlDown).Row
        whIn.Range("N2").Copy .Cells(lngI + 1, "A")
        whIn.Range("C8 : D8").Copy .Cells(lngI + 1, "B")
        whIn.Range("C13 : D13").Copy .Cells(lngI + 1, "E")
    End With
End Sub
ps где стоит : нет пробелов по бокам... просто тут смайл появляется почему то
0
Миниатюры
Записывание данных в Excel при их изменении   Записывание данных в Excel при их изменении  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2019, 11:24
Ответы с готовыми решениями:

Записывание данных в input
допустим пишем в <input type='text' id='global'> цыфры. к примеру 249. мне нужно что бы <input...

Автосохранение файла Excel при изменении любой ячейки
Уважаемые форумчане!!! Подскажите пожалуйста, как в Excel сделать так, чтобы при каждом изменении...

При изменении аргументов пользовательской функции вылетает Excel
Коллеги, добрый день! Могли бы вы подсказать непрофессионалу в VBA, почему при изменении...

Выполнение действия при изменении значения в ячейке Excel
Возможно ли создать условие при котором при изменении значения в ячейке с датой выполнялось...

4
5341 / 1406 / 331
Регистрация: 23.12.2010
Сообщений: 2,078
Записей в блоге: 1
07.05.2019, 16:05 2
Нормально все работает, строки добавляются.
Если лист 13 пустой, то лучше:
Visual Basic
1
lngI =.Cells(.Rows.Count, 1).End(xlUp).Row
1
0 / 0 / 0
Регистрация: 24.04.2019
Сообщений: 6
13.05.2019, 14:39  [ТС] 3
Здравствуйте, помогите, пожалуйста, задача дополнилась, суть остается та же, только теперь нужно, чтобы при нажатии кнопки "Сохранить", макрос смотрел какой указан месяц в поле N2 (дата), и делал сохранение в определенный лист (январь, февраль и т.д.) соответственно указанному месяцу.
И второе, чтобы если запись с такой же датой уже сохранялась на каком либо листе, то перезаписывал ее, а новые запии не повторяющиеся продолжали записываться дальше....
Спасибо за внимание, очень надеюсь на Вас или еще кого-нибудь)))

актуальный макрос
Кликните здесь для просмотра всего текста

Option Explicit

Sub RecordData()
Dim whIn As Worksheet, whOut As Worksheet, lngI As Long
Set whIn = Worksheets("Рапорт"): Set whOut = Worksheets("Январь")
With whOut

lngI = .Range("A1").End(xlDown).Row
lngI = .Cells(.Rows.Count, 1).End(xlUp).Row

whIn.Range("N2").Copy .Cells(lngI + 1, "A")
whIn.Range("C8").Copy .Cells(lngI + 1, "B")
whIn.Range("C13").Copy .Cells(lngI + 1, "C")
whIn.Range("D8").Copy .Cells(lngI + 1, "E")
whIn.Range("D13").Copy .Cells(lngI + 1, "F")

End With
End Sub
0
0 / 0 / 0
Регистрация: 24.04.2019
Сообщений: 6
13.05.2019, 14:46  [ТС] 4
скрин файла
Кликните здесь для просмотра всего текста
Записывание данных в Excel при их изменении
0
5341 / 1406 / 331
Регистрация: 23.12.2010
Сообщений: 2,078
Записей в блоге: 1
14.05.2019, 12:45 5
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Sub RecordData()
    Dim whIn As Worksheet, i&, k&, LastRow&, A, Dic As Object, TekData As Date, Mes$
    Set whIn = Worksheets("Рапорт")
    If IsEmpty(whIn.Range("N2")) Then Exit Sub
    Set Dic = CreateObject("Scripting.Dictionary")
    Dic.CompareMode = 1
    For k = 2 To 13
        With Worksheets(k)
            If .AutoFilterMode Then .AutoFilter.ShowAllData
            LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
            If LastRow = 1 Then LastRow = 2
            A = .Range("A1:A" & LastRow).Value
        End With
        For i = 1 To UBound(A)
            If A(i, 1) <> "" And IsDate(A(i, 1)) Then
               Dic.Item(CDate(A(i, 1))) = i
            End If
        Next i
    Next
    TekData = CDate(whIn.Range("N2"))
    Mes = LCase(Format(TekData, "MMMM"))
    With Worksheets(Mes)
        If Dic.Exists(TekData) Then
            k = Dic(TekData)
        Else
            k = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            Dic.Item(TekData) = k
        End If
        .Cells(k, "A") = TekData
        .Cells(k, "A").NumberFormat = "dd/mm/yyyy"
        .Cells(k, "B") = whIn.Range("C8")
        .Cells(k, "C") = whIn.Range("C13")
        .Cells(k, "E") = whIn.Range("D8")
        .Cells(k, "F") = whIn.Range("D13")
    End With
    Set Dic = Nothing
End Sub
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2019, 12:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Обновить Excel документ при изменении XML файла
Здравствуйте уважаемые знатоки:) Мне нужна ваша помощь. В общем опишу ситуацию. Создал я...

Ошибка открытия формы при изменении имени файла Excel
Уважаемые коллеги, добрый день. Рассчитываю на вашу помощь в такой проблеме. Разработал простую...

Организовать совместную работу с обновлением данных на всех клиентах при изменении данных на одном
Добрый день! Решил сделать небольшое клиент серверное приложение (MS SQL =&gt; WCF Services =&gt; WPF...

Запуск процедуры при изменении данных в диапазоне ячеек( трансляция данных через DDE сервер)
Запуск процедуры при изменении данных в диапазоне ячеек, данные меняются в течении всего рабочего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.