Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Журнал событий в хронологическом порядке - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Журнал событий в хронологическом порядке (Макросы/Sub)
Журнал событий в хронологическом порядке
Мурад Дата: Пятница, 14.08.2015, 17:07 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Добрый день! В теме nilem предложил вариант реализации журнала событий путем вызова окна сообщения нажатием правой клавиши мышкой в поле "Статус" листа "Таблица". В итоговом виде этот код выглядит следующим образом:
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("r7:r1000")) Is Nothing Then Exit Sub
Cancel = True
Dim s$, i As Integer
With Sheets("История").Rows(Target.Row)
     For i = 6 To 56 Step 5
     If (.Cells(i) <> "") And (.Cells(i + 1) = "") Then
     s = s & .Cells(i) & " " & .Cells(i - 2) & " направл. " & .Cells(i - 1) & vbCrLf
     ElseIf (.Cells(i) <> "") And (.Cells(i + 1) <> "") Then
     s = s & .Cells(i + 1) & " " & .Cells(i - 2) & " " & .Cells(i + 2) & " " & .Cells(i - 1) & vbCrLf
     ElseIf (.Cells(i) = "") And (.Cells(i + 1) <> "") Then
     s = s & .Cells(i + 1) & " " & .Cells(i - 2) & " " & .Cells(i + 2) & " " & .Cells(i - 1) & vbCrLf
     End If
     Next
End With
MsgBox s, 64
End Sub
[/vba]
На следующем этапе встала задача создать 2 перекрестных файла, в которых общая информация совпадает, однако журнал событий разный. Данной проблеме была посвящена тема. Здесь меня уже выручил RAN
Теперь остался последний этап - объединение журналов событий в третьем файле, файле Босса. Макрос для переброски данных я сделал аналогичному второму этапу, где мне помог RAN. Но встал вопрос. Как объединить историю событий из двух файлов в один... При нажатии правой кнопкой мыши на ячейке в поле "Статус" необходимо собрать историю по данной строке (записи) из двух файлов и выстроить ее в хронологическом порядке. С чего начать, подскажите, пожалуйста.
К сообщению приложен файл: Sotrudnik_1.xlsx (13.9 Kb) · Sotrudnik_2.xlsx (13.9 Kb)
 
Ответить
СообщениеДобрый день! В теме nilem предложил вариант реализации журнала событий путем вызова окна сообщения нажатием правой клавиши мышкой в поле "Статус" листа "Таблица". В итоговом виде этот код выглядит следующим образом:
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("r7:r1000")) Is Nothing Then Exit Sub
Cancel = True
Dim s$, i As Integer
With Sheets("История").Rows(Target.Row)
     For i = 6 To 56 Step 5
     If (.Cells(i) <> "") And (.Cells(i + 1) = "") Then
     s = s & .Cells(i) & " " & .Cells(i - 2) & " направл. " & .Cells(i - 1) & vbCrLf
     ElseIf (.Cells(i) <> "") And (.Cells(i + 1) <> "") Then
     s = s & .Cells(i + 1) & " " & .Cells(i - 2) & " " & .Cells(i + 2) & " " & .Cells(i - 1) & vbCrLf
     ElseIf (.Cells(i) = "") And (.Cells(i + 1) <> "") Then
     s = s & .Cells(i + 1) & " " & .Cells(i - 2) & " " & .Cells(i + 2) & " " & .Cells(i - 1) & vbCrLf
     End If
     Next
End With
MsgBox s, 64
End Sub
[/vba]
На следующем этапе встала задача создать 2 перекрестных файла, в которых общая информация совпадает, однако журнал событий разный. Данной проблеме была посвящена тема. Здесь меня уже выручил RAN
Теперь остался последний этап - объединение журналов событий в третьем файле, файле Босса. Макрос для переброски данных я сделал аналогичному второму этапу, где мне помог RAN. Но встал вопрос. Как объединить историю событий из двух файлов в один... При нажатии правой кнопкой мыши на ячейке в поле "Статус" необходимо собрать историю по данной строке (записи) из двух файлов и выстроить ее в хронологическом порядке. С чего начать, подскажите, пожалуйста.

Автор - Мурад
Дата добавления - 14.08.2015 в 17:07
Мурад Дата: Пятница, 14.08.2015, 17:07 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Третий файл - итоговый. Файл Босса.
К сообщению приложен файл: BOSS.xlsx (11.2 Kb)
 
Ответить
СообщениеТретий файл - итоговый. Файл Босса.

Автор - Мурад
Дата добавления - 14.08.2015 в 17:07
Мурад Дата: Пятница, 14.08.2015, 17:08 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Файлы выложены без первоначальных макросов внутри, для уменьшения размера.
 
Ответить
СообщениеФайлы выложены без первоначальных макросов внутри, для уменьшения размера.

Автор - Мурад
Дата добавления - 14.08.2015 в 17:08
Мурад Дата: Пятница, 14.08.2015, 17:18 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Все-таки, для предметности выложу первоначальный файл с макросом.
К сообщению приложен файл: example.xlsm (64.0 Kb)
 
Ответить
СообщениеВсе-таки, для предметности выложу первоначальный файл с макросом.

Автор - Мурад
Дата добавления - 14.08.2015 в 17:18
RAN Дата: Пятница, 14.08.2015, 17:19 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Например

И, надеюсь, в вашем Excel сортировка за неуплату не отключена? :)


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Пятница, 14.08.2015, 17:21
 
Ответить
СообщениеНапример

И, надеюсь, в вашем Excel сортировка за неуплату не отключена? :)

Автор - RAN
Дата добавления - 14.08.2015 в 17:19
Мурад Дата: Пятница, 14.08.2015, 17:32 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Excel корпоративный слава Богу! :) Спасибо еще раз, что подталкиваете к самостоятельному решению задачи!
 
Ответить
СообщениеExcel корпоративный слава Богу! :) Спасибо еще раз, что подталкиваете к самостоятельному решению задачи!

Автор - Мурад
Дата добавления - 14.08.2015 в 17:32
Мурад Дата: Вторник, 18.08.2015, 16:32 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Не могу понять, как прописать присвоение диапазона массиву. Работу по упорядочиванию массивов записей по дате передачи решил осуществлять пузырьковым методом:
[vba]
Код
for i=1 to n-1 do
    for j=i+1 to n do
      if a[j]>a[i] then
         temp=a[j]
         a[j]=a[i]
         a[i]=temp
       endif
    next
    next
       end
[/vba]
На этом коде решил построить свой:
[vba]
Код
Dim s$, i, j, k As Integer
DateRange(1 To 22) As Range '22 этапа, каждый из которых состоит из 1.Документ, 2.Проверяющий, 3.Дата передачи, 4.Дата возврата, 5.Решение. Дата передачи 1го этапа начинается с 6го столбца
For k=1 to 22 ' Цикл по этапам
       For i=6 to 106 step 5
             For j=i+5 to 111 step 5
                   With Sheets("История согласования").Rows(Target.Row)
                           If .Cells(j) > .Cells(i) Then
                    DateRange(k) = Range.Cells(i-2, i+2)      'Вот здесь я совсем запутался. Скажите, подход в корне неверный?
                            End If
                   End With
              Next
         Next
Next
[/vba]
 
Ответить
СообщениеНе могу понять, как прописать присвоение диапазона массиву. Работу по упорядочиванию массивов записей по дате передачи решил осуществлять пузырьковым методом:
[vba]
Код
for i=1 to n-1 do
    for j=i+1 to n do
      if a[j]>a[i] then
         temp=a[j]
         a[j]=a[i]
         a[i]=temp
       endif
    next
    next
       end
[/vba]
На этом коде решил построить свой:
[vba]
Код
Dim s$, i, j, k As Integer
DateRange(1 To 22) As Range '22 этапа, каждый из которых состоит из 1.Документ, 2.Проверяющий, 3.Дата передачи, 4.Дата возврата, 5.Решение. Дата передачи 1го этапа начинается с 6го столбца
For k=1 to 22 ' Цикл по этапам
       For i=6 to 106 step 5
             For j=i+5 to 111 step 5
                   With Sheets("История согласования").Rows(Target.Row)
                           If .Cells(j) > .Cells(i) Then
                    DateRange(k) = Range.Cells(i-2, i+2)      'Вот здесь я совсем запутался. Скажите, подход в корне неверный?
                            End If
                   End With
              Next
         Next
Next
[/vba]

Автор - Мурад
Дата добавления - 18.08.2015 в 16:32
Pelena Дата: Вторник, 18.08.2015, 16:40 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19188
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
как прописать присвоение диапазона массиву

В Готовых решениях Считывание диапазона в массив


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
как прописать присвоение диапазона массиву

В Готовых решениях Считывание диапазона в массив

Автор - Pelena
Дата добавления - 18.08.2015 в 16:40
Мурад Дата: Вторник, 18.08.2015, 17:15 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Pelena, Там простой случай описывается.. У меня 22 диапазона по 5 ячеек, идущих друг за другом. В середине каждого из диапазона находится проверяемый элемент..
 
Ответить
СообщениеPelena, Там простой случай описывается.. У меня 22 диапазона по 5 ячеек, идущих друг за другом. В середине каждого из диапазона находится проверяемый элемент..

Автор - Мурад
Дата добавления - 18.08.2015 в 17:15
Мурад Дата: Среда, 19.08.2015, 11:28 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Выкладываю последний вариант файла.
На листе "Таблица" при нажатии правой кнопкой мыши выскакивает окно сообщения с журналом событий. Как вы заметите, события в этом журнале не выстраиваются в хронологическом порядке. Они идут в том порядке, в котором они занесены на листе "История согласования". Конечная цель состоит в том, чтобы выстроить в окне сообщения журнал событий в хронологическом порядке.
К сообщению приложен файл: BOSS.xlsm (36.4 Kb)
 
Ответить
СообщениеВыкладываю последний вариант файла.
На листе "Таблица" при нажатии правой кнопкой мыши выскакивает окно сообщения с журналом событий. Как вы заметите, события в этом журнале не выстраиваются в хронологическом порядке. Они идут в том порядке, в котором они занесены на листе "История согласования". Конечная цель состоит в том, чтобы выстроить в окне сообщения журнал событий в хронологическом порядке.

Автор - Мурад
Дата добавления - 19.08.2015 в 11:28
nilem Дата: Среда, 19.08.2015, 13:06 | Сообщение № 11
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
можно дописать код

и еще добавим функцию


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеможно дописать код

и еще добавим функцию

Автор - nilem
Дата добавления - 19.08.2015 в 13:06
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Журнал событий в хронологическом порядке (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!