Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Автоматизация распределения грузовых мест
 
Цитата
Цитата
UDF
Скрытый текст
Код
?
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
Function ГРМЕСТ(iTbl As Range)
Dim iCl As Range, mCl As Range
Dim arr()
Dim I&, N&
Dim dic As Object
Dim iKey, iTmp
ReDim arr(1 To iTbl.Rows.Count, 1 To 2)
For I = 1 To iTbl.Rows.Count
 If iTbl(I, 2).MergeCells Then
   N = I
   Set dic = CreateObject("Scripting.Dictionary")
   For Each mCl In iTbl(I, 2).MergeArea.Cells
     iKey = mCl.Offset(, -1)
     If Not dic.Exists(iKey) Then
       iTmp = dic.Item(iKey)
       arr(N, 1) = iTbl(I, 2).Value
       arr(N, 2) = iTbl(I, 2).Value
     Else
       arr(N, 1) = ""
       arr(N, 2) = ""
     End If
   N = N + 1
 Next
 I = N - 1
 Else
   arr(I, 1) = iTbl(I, 2).Value
   arr(I, 2) = ""
 End If
Next
ГРМЕСТ = arr
End Function
П.С. С 'Количеством место частично' не понятно, что будет нужно, если в объединенном блоке будут как повторяющиеся так и уникальные Коды. Пока сделано для наглядности с повтором Прикрепленные файлы Изменено: Sanja - 08.05.2025 09:03:13
Цитата
написал:
UDFСкрытый текстКод ? 12345678910111213141516171819202122232425262728293031Functio­n ГРМЕСТ(iTbl As Range)Dim iCl As Range, mCl As RangeDim arr()Dim I&, N&Dim dic As ObjectDim iKey, iTmpReDim arr(1 To iTbl.Rows.Count, 1 To 2)For I = 1 To iTbl.Rows.Count  If iTbl(I, 2).MergeCells Then    N = I    Set dic = CreateObject("Scripting.Dictionary")    For Each mCl In iTbl(I, 2).MergeArea.Cells      iKey = mCl.Offset(, -1)      If Not dic.Exists(iKey) Then        iTmp = dic.Item(iKey)        arr(N, 1) = iTbl(I, 2).Value        arr(N, 2) = iTbl(I, 2).Value      Else        arr(N, 1) = ""        arr(N, 2) = ""      End If    N = N + 1  Next  I = N - 1  Else    arr(I, 1) = iTbl(I, 2).Value    arr(I, 2) = ""  End IfNextГРМЕСТ = arrEnd FunctionП.С. С 'Количеством место частично' не понятно, что будет нужно, если в объединенном блоке будут как повторяющиеся так и уникальные Коды. Пока сделано для наглядности с повтором

Прикрепленные файлы
Грузовые места.xlsm  (21.24 КБ)

Изменено: Sanja  - 08.05.2025 09:03:13
Цитата
написал:
UDFСкрытый текстКод ? 12345678910111213141516171819202122232425262728293031Functio­n ГРМЕСТ(iTbl As Range)Dim iCl As Range, mCl As RangeDim arr()Dim I&, N&Dim dic As ObjectDim iKey, iTmpReDim arr(1 To iTbl.Rows.Count, 1 To 2)For I = 1 To iTbl.Rows.Count  If iTbl(I, 2).MergeCells Then    N = I    Set dic = CreateObject("Scripting.Dictionary")    For Each mCl In iTbl(I, 2).MergeArea.Cells      iKey = mCl.Offset(, -1)      If Not dic.Exists(iKey) Then        iTmp = dic.Item(iKey)        arr(N, 1) = iTbl(I, 2).Value        arr(N, 2) = iTbl(I, 2).Value      Else        arr(N, 1) = ""        arr(N, 2) = ""      End If    N = N + 1  Next  I = N - 1  Else    arr(I, 1) = iTbl(I, 2).Value    arr(I, 2) = ""  End IfNextГРМЕСТ = arrEnd FunctionП.С. С 'Количеством место частично' не понятно, что будет нужно, если в объединенном блоке будут как повторяющиеся так и уникальные Коды. Пока сделано для наглядности с повтором

Прикрепленные файлы
Грузовые места.xlsm  (21.24 КБ)

Изменено: Sanja  - 08.05.2025 09:03:13
Здравствуйте. Сегодня обнаружил небольшую недоработку в файле. Если в объединенном блоке одинаковые значения, то  столбец "Кол-во частично" должен быть пустым. На прилагаемой картинке я отметил, каких значений не должно быть. Можно немного доработать файл?
Автоматизация проставления дат в коммерческих документах, Автоматизация проставления дат в коммерческих документах
 
Цитата
написал:
Функция РАБДЕНЬ  Основные принципы работы с датами и временем в Excel  Функция ТЕКСТ Пожалуйста
Спасибо за наводку! Все получилось!
Изменено: Aleksey1990 - 19.05.2025 05:49:11
Автоматизация проставления дат в коммерческих документах, Автоматизация проставления дат в коммерческих документах
 

Здравствуйте!

Помогите, пожалуйста, автоматизировать проставление дат в файле.

В прилагаемом файле вкладка «Чек-лист». Должно быть так:

Напротив «Даты инвойса» мы проставляем дату (например, 18.04.2025, как сейчас указано). Эта же дата дублируется напротив «Дата упаковочного» и «Дата спецификации» (сейчас это настроено). Далее по пунктам какие даты должны проставляться автоматически:

1)      В ячейку «K20» должна проставляться автоматом дата инвойса в формате: ="18.04.2025"

2)      Напротив «Дата проформы» должна проставляться дата на 13 рабочих дней раньше, чем «Дата инвойса».

3)      Напротив «Дата подтверждения» должна проставляться дата на 3 рабочих дня раньше, чем «Дата проформы».

4)      В ячейку «K12» должна дублироваться автоматом дата подтверждения в формате: ="01.04.2025"

5)      В ячейку «K14» должна проставляться автоматом дата на месяц позже даты подтверждения в формате: ="01.05.2025"

6)      На против «Дата заказа» должна проставляться дата на 3 рабочих дня раньше, чем «Дата подтверждения».

Отмечу, что ни одна из дат не должна выпадать на выходные и праздничные дни.

Изменено: Aleksey1990 - 19.05.2025 06:08:23
Автоматизация распределения грузовых мест
 
Павел, спасибо. Ознакомлюсь обязательно.
Автоматизация распределения грузовых мест
 
Цитата
П.С. С 'Количеством место частично' не понятно, что будет нужно, если в объединенном блоке будут как повторяющиеся так и уникальные Коды. Пока сделано для наглядности с повтором
В этом случае для уникальных кодов требуется дублирование значения  в столбец "Кол-во мест частично" и для повторяющихся (в рамках объединенного блока) кодов также нужно продублировать значение в столбец "Кол-во мест частично". При этом, для повторяющихся кодов значения должны быть указаны напротив одного (желательно верхнего) повторяющегося кода, а напротив остальных повторяющихся в рамках объединенного блока кодов ячейки должны быть пустыми.

Собственно, у Вас так и сделано. В прилагаемом файле результаты:

1) Синим выделил вариант, когда коды в рамках объединенного блока разные;

2) Зеленым - вариант, когда коды одинаковые;

3) Желтым - комбинированный вариант из повторяющихся и уникального кода.


Спасибо огромное за помощь!!!
Изменено: Aleksey1990 - 09.05.2025 05:55:24
Автоматизация распределения грузовых мест
 
Добрый день, уважаемые участники форума!

Есть исходные данные (см. вложение - "Исходный файл"). Там представлены 2 столбца - "Код + С" и "Количество мест". В столбце "Количество мест" есть объединенные ячейки с указанием одного значения для нескольких позиций столбца "Код + С". Для занесения в нашу рабочую программу такие объединенные ячейки нужно разбивать следующим образом: напротив каждого не повторяющегося (в пределах объединенных ячеек) значения столбца "Код + С" должно стоять количество грузовых мест. При этом справа от столбца "Количество мест" мы создаем еще один столбец - "Кол-во мест частично", в который дублируем данные из столбца "Количество мест". Но дублируем только в том случае, если в пределах объединенной ячейки есть различные значения столбца "Код + С".

В прилагаемом "Итоговом файле" представлены результаты необходимых манипуляций. Чтобы понять принцип следует обратить внимание на 2 примера:

1) В "Исходном файле" есть объединенный диапазон ячеек - B5 - B7. Напротив этого диапазона в столбце "Код + С" указаны разные значения и, соответственно, я проставил значение в столбец "Количество мест" напротив каждого значения столбца "Код + С" и продублировал значение в столбец "Кол-во мест частично";

2) В "Исходном файле" есть объединенный диапазон ячеек - B8 - B9. Напротив этого диапазона в столбце "Код + С" указаны одинаковые значения и, соответственно, я проставил значение в столбец "Количество мест" только напротив одного значения столбца "Код + С". При этом, значение в столбец "Кол-во мест частично" я не дублировал.

Можно ли как-то автоматизировать данный процесс?
Страницы: 1
Наверх