Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828

График рабочих смен

24.07.2018, 09:39. Показов 2999. Ответов 43
Метки нет (Все метки)

Ребят, не соображу как сделать шапку макросом МЕСЯЦ/ДАТА(день недели+число). В примере показано. Спасибо огромное
Вложения
Тип файла: zip Пример1.zip (20.0 Кб, 28 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.07.2018, 09:39
Ответы с готовыми решениями:

DataTable - График рабочих смен на 14 дней в разных салонах
Добрый день. В DataTable выводится список торговых точек и ещё 14 колонок это дата. Салон |30.05.2018| 31.05.2018| 01.06.2018 Точка1|...

Определить доход, полученный за N смен. Число смен вводится в режиме диалога
Автобус за смену делает от 10 до 15 рейсов (случайное число). За рейс перевозит от 130 до 230 пассажиров (случайное число). Стоимость...

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

43
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,673
25.07.2018, 06:40
только что открыл - все нормально
а ссылка эта вот на эту страницу
Миниатюры
График рабочих смен  
1
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
25.07.2018, 09:27  [ТС]
toiai, посмотрите пожалуйста, навел красоту немного....и умную таблицу для заполнения сделал..Хочу чтобы умная таблица строилась с привязкой не к координатам листа, а к Count ....как-то так dk = CDate("31.03." & Year(Date))......(число столбцов по кол-ву дней).....


а можно ячейки (сб,вс) покрасить?
Вложения
Тип файла: zip Графики работы.zip (21.6 Кб, 8 просмотров)
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
25.07.2018, 13:16
Добавь строку в код после строки
Visual Basic
1
2
        Cells(3, i).NumberFormat = "ddd dd/mm/yyyy"
        If Weekday(d) = 1 Or Weekday(d) = 7 Then Cells(3, i).Interior.Color = vbYellow
1
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
25.07.2018, 13:39  [ТС]
toiai, фика.....класс

Добавлено через 18 минут
toiai, а можно чтобы не повторяться отдельными процедурами, а в этой менять только
Visual Basic
1
2
 dn = CDate("01.01." & Year(Date))
    dk = CDate("31.03." & Year(Date))
и выводить каждый квартал на отдельный лист
0
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
03.08.2018, 08:49  [ТС]
toiai, snipe, все замечательно, спасибо, а как сделать, чтобы выбирать год можно было
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,673
03.08.2018, 09:54
например так

Visual Basic
1
2
3
4
5
6
dim fgh as string
aaa:
fgh=inputbox("Введите год из 4 цифр")
if len(fgh)<>4 then goto aaa:
dn = CDate("01.01." & fgh)
dk = CDate("31.03." & fgh)
1
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
03.08.2018, 10:49  [ТС]
snipe, а как же быть с днями. это таблица на первый квартал сгенерируется...понятно, что я сделаю селекткейсом выбор кварталов с измененными строками 5,6 для каждого варианта, но ведь количество дней в каждом году разное
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,673
03.08.2018, 11:13
конечно разное
годы отличаются только 29 февраля и то раз в 4 года
а даты начала кварталов и окончания кварталов всегда одни и те же
(вы же хотели формировать на одном листе данные за квартал?
или я не так понял)
1
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
03.08.2018, 11:26  [ТС]
snipe, и правда.....спасибо Вам.
Все верно. Именно это я и хотел
0
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
04.08.2018, 01:20  [ТС]
snipe, Доброй ночи...... А логику можно сделать? если чел 3 смены 11 часовые отпахал, обязательно 2 выха.
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,673
04.08.2018, 01:33
сделать -то можно
вот только макрос вещь безаппеляционная - сделает и все
тут важно логику продумать
и как это будет отображаться
1
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
04.08.2018, 01:54  [ТС]
snipe, я тут странную штуку заметил....Вывел в ячейки год и квартал(список в ячейку, именованный диапазон), так он мало того что 1 квартал рисовать отказывается(только шапка в листе. без таблицы), так еще после запуска макроса эту ячейку обнуляет, каждый раз из списка выбирать год приходится....В отладчике переменная BillingYear конечно=0, но странным образом 2,3,4 кварталы рисует правильно.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim BillingYear As Integer
 
                Sheets("Настройки").Cells(2, 6).Value = BillingYear
    Select Case Sheets("Настройки").Cells(3, 6).Value
       Case "I квартал"
       dn = CDate("01.01." & BillingYear)
       dk = CDate("31.03." & BillingYear)
       Case "II квартал"
       dn = CDate("01.04." & BillingYear)
       dk = CDate("30.06." & BillingYear)
       Case "III квартал"
       dn = CDate("01.07." & BillingYear)
       dk = CDate("30.09." & BillingYear)
       Case "IV квартал"
       dn = CDate("01.10." & BillingYear)
       dk = CDate("31.12." & BillingYear)
    End Select
0
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
05.08.2018, 18:04  [ТС]
snipe, а можно из диапазона dn:dk выбрать название месяцев.....например январь, февраль март....в три переменных
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,673
05.08.2018, 18:55
Visual Basic
1
2
dn = CDate("01.01." & 2018)
MsgBox MonthName(Month(dn)) & "     " & MonthName(Month(dn + 31)) & "     " & MonthName(Month(dn + 62))
1
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
05.08.2018, 19:01  [ТС]
snipe, мне надо за 3 месяца(диапазон) отдельными столбцами итоговые значения посчитать....я все сделал, названия месяцев в столбцы проставить нужно. Ваш код запускал(январь февраль март). не соображу как это применить.нужно наверное ведь отдельные переменные делать...или циклом как
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,673
05.08.2018, 19:07
Visual Basic
1
2
3
4
5
6
dn = CDate("01.10." & 2018)' стартовая дата
dim month1$, month2$, month3$
month1=MonthName(Month(dn))' первый месяц
month2=MonthName(Month(dn + 31))' второй месяц
month3=MonthName(Month(dn + 62))' третий месяц
msgbox  month1 & "   " &  month2 & "   " &  month3
1
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
05.08.2018, 21:24  [ТС]
snipe, класс....сейчас применю

Добавлено через 2 часа 6 минут
snipe, снова не знаю как быть...макросом формулу написать надо,расчетный диапазон указать нужно не весь, а нужного месяца...наверное столбец последнего дня месяца найти нужно.не знаю как
0
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
06.08.2018, 10:58  [ТС]
snipe, может сталкивались...нужно макромссом в ячейке поделить текст на 2 строчки.макрокодер пишет разделитель chr(10) и он работает, но и увеличивается высота ячейки....в интернете нашел такой вопрос, но ответа нету

Добавлено через 18 минут
в новой книге написал такой код, с chr(10)....никаких лишних строк нет. не знаю в чем дело

Добавлено через 27 минут
решил проблему автофитом строки после увеличения
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,673
06.08.2018, 16:29
сало, мед, га..о, и пчелы - как говорил мой начальник
причем тут информация и размер шрифта, или высота ячейки
1
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
06.08.2018, 22:30  [ТС]
snipe, с высотой я разобрался.....теперь не пойму как формулу написать в ячейку.такая вот она у меня :
=(СУММЕСЛИ(D6:AH6;">0"6:AH6)-СУММЕСЛИ(D6:AH6;"<0"6:AH6))-$CR$5

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





смайлы вылезут ошибочно.вместо символов

Добавлено через 5 часов 43 минуты
snipe, помогите разобраться пожалуйста.......

Visual Basic
1
"=sumif(" & Range(Cells(data_row, beg_data_col), Cells(data_row, end_data_col)).Address(0, 0) & ","">0"")-sumif(" & Range(Cells(data_row, beg_data_col), Cells(data_row, end_data_col)).Address(0, 0) & ",""<0"")"
это:

=СУММЕСЛИ(E7:CQ7;">0")-СУММЕСЛИ(E7:CQ7;"<0")

а если из всего этого вычесть содержимое ячейки, т.е.

Visual Basic
1
"=sumif(" & Range(Cells(data_row, beg_data_col), Cells(data_row, end_data_col)).Address(0, 0) & ","">0"")-sumif(" & Range(Cells(data_row, beg_data_col), Cells(data_row, end_data_col)).Address(0, 0) & ",""<0"")-Cells(tgt_row + 1, end_data_col + 1)"
на выходе
=СУММЕСЛИ(E7:CQ7;">0")-СУММЕСЛИ(E7:CQ7;"<0")-Cells(tgt_row + 1; end_data_col + 1)

чего-то я делаю не так

Добавлено через 9 минут
может по-другому как эту формулу написать можно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.08.2018, 22:30

Известен список рабочих и их месячный заработок. Напечатать список рабочих в порядке убывания зарплаты.
Составьте пожалуйста программу в среде обитания C# вообще не понимаю как делать, хочу увидеть решение и понять. Известен список рабочих...

Количество смен знака
Програма сделана почити правильно, но я не могу понять как нужно ее передалать что бы с этими числами програма показывала сколько раз...

Подсчет дневных смен
Привет всем, есть таблица в Access, и приложение в делфи. все подключил, но теперь нужно подсчитать количество дневных смен, и вывести в...

Реализация последовательной смен окон
Просмотрел множество уроков и книг по Qt, но не нашел как делать смену окон в приложении. Для более лучшего понимания моей проблемы...

Подсчет количества смен знака
Сгенерировать матрицу размерности MхN (M, N вводятся пользователем) со случайными ненулевыми значениями в пределах . Сделать проход по...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru