Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/40: Рейтинг темы: голосов - 40, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 11.09.2017
Сообщений: 8

Макрос выборки по заданной дате и перенос данных в другую книгу

11.09.2017, 23:49. Показов 7868. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 2 книги Excel. Первая - список результатов экзамена (фио, дата сдачи, результат и т.д.), вторая книга - готовая (в неё записываются только только те, кто сдал экзамен).
С помощью макросов нужно сделать отбор из первой книги и перенести отобранные данные в конец второй книги (дополнить её). Условия: создать поле, в которое вводится дата (например, 12.09.2017). Эта дата сравнивается с датами в таблице и во вторую книгу записываются только даты от 12.09.2017 (11.09.2017 и раньше - не нужны). Ну и чтобы это были только те записи, результат сдачи экзамен у которых "Сдал".
Подскажите пожалуйста, как такое можно реализовать?
Надеюсь, понятно объяснил))
Вложения
Тип файла: xlsx Отчет 08.09.2017-11.09.2017.xlsx (19.2 Кб, 42 просмотров)
Тип файла: xlsx Журнал по ПТМ.xlsx (17.9 Кб, 43 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.09.2017, 23:49
Ответы с готовыми решениями:

Макрос. Закрыть другую книгу
всем доброго времени суток Дано: в одной папке две книги : КН1 и КН2 рабочая - КН2. Есть формулы, которые ссылаются на КН1....

Макрос перенос из книги в книгу
Друзья, нужна помощь, только начал работать с VBA, помогите советом. Есть алгоритм, в нем участвуют два документа (книги), я работал по...

Добавление в макрос ссылки на другую книгу
Доброго времени суток! Есть макрос, который ищет значения по артикулу в одной таблице и добавляет их в исходную: For Each Cell In...

3
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
12.09.2017, 09:58
Лучший ответ Сообщение было отмечено OLEGatoRUS23 как решение

Решение

OLEGatoRUS23, посылаю вам ваши файлы. Журнал уже с макросом Perenos/Запустите его с датой 13.09.2017.
Я в ОТЧЕТЕ добавил человечка с этой датой для проверки
Вложения
Тип файла: rar Журнал.rar (37.2 Кб, 137 просмотров)
1
0 / 0 / 0
Регистрация: 11.09.2017
Сообщений: 8
12.09.2017, 10:27  [ТС]
Burk, спасибо Вам большое! Всё работает, но есть небольшое НО. Когда дату вводишь, то добавляются записи только с этой даты, а нужно, чтобы добавлялись и последующие даты тоже. То есть 13.09.2017+
Где подправить, подскажите пожалуйста) Спасибо!
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
12.09.2017, 11:47
OLEGatoRUS23, лень объяснять где и что нужно изменить, проще послать новый макрос, посмотрите внимательно измененный макрос. он работает и для > ДАТ

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
38
39
40
41
42
43
44
45
46
47
48
49
50
Sub Perenos()
Dim Wb As Workbook, Wo As Workbook, LastRow As Long, I As Long, FIO As String
Dim Ik As Long, Jk As Long, S As String, K As Integer, Dat As Date
Dim dS As Date
Set Wb = ThisWorkbook
Wb.Activate
Sheets(1).Activate
For I = 1 To Workbooks.Count
  If Left(LCase(Workbooks(I).Name), 5) = "отчет" Then
    Set Wo = Workbooks(I)
    Exit For
  End If
Next
'S = "13.09.2017"
S = InputBox("Введите дату в формате дд.мм.гггг")
If S = "" Then Exit Sub
Dat = S
Ik = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
Wo.Activate
Sheets(1).Activate
Jk = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
Wb.Activate
'MsgBox Ik & " " & Jk
With Wo.Sheets(1)
For I = 5 To Jk
  dS = Format(.Cells(I, 6), "dd.mm.yyyy")
  If dS >= Dat And LCase(.Cells(I, 9)) = "сдан" Then
    S = Format(dS, "dd.mm.yy")
    FIO = .Cells(I, 3)
    For K = 2 To Ik 'а вдруг уже есть в журнале
      If Cells(K, 8) = S And Cells(K, 2) = FIO Then GoTo OUT
    Next
    Ik = Ik + 1
    With Range("A" & Ik & ":L" & Ik)
      .Borders(xlEdgeLeft).LineStyle = xlContinuous
      .Borders(xlEdgeTop).LineStyle = xlContinuous
      .Borders(xlEdgeBottom).LineStyle = xlContinuous
      .Borders(xlEdgeRight).LineStyle = xlContinuous
      .Borders(xlInsideVertical).LineStyle = xlContinuous
    End With
    Cells(Ik, 1) = IIf(Ik = 2, 1, Cells(Ik - 1, 1) + 1)
    Cells(Ik, 2) = .Cells(I, 3)
    Cells(Ik, 3) = .Cells(I, 5)
    Cells(Ik, 4) = .Cells(I, 4)
    Cells(Ik, 8) = S
  End If
OUT:
Next
End With
End Sub
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.09.2017, 11:47
Помогаю со студенческими работами здесь

Перенос в другую категорию по дате
Здравствуйте. Подскажите пожалуйста как реализовать следуюший функционал, возможно есть плагин такой? Есть две категории, изначально...

Макрос для поиска заполненных строк в таблице и переноса их в другую книгу
Добрый день, хочу попросить помощи знающих, как написать подобный макрос. В общем - то дело в том, что есть две сводные таблицы, одна из...

Синтаксическая ошибка в запросе выборки данных по дате
Подскажите как правильно написать запрос Так работает: SqlCom = New OleDb.OleDbCommand("SELECT * FROM 2015 WHERE >...

Проверить код выборки с базы данных Access по дате
Доброго времени суток. Прошу проверить код правильно ли написан. Есть таблица ( в Access с полями , , , . Нужно чтобы при...

Перенос значений на другой лист по заданной дате
День добрый. Столкнулся с вопросом переноса данных из ячейки одного листа в ячейку на другой лист - ответ на него нашел: Sub test() ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru