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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 35 След.
Расчет чистого времени между датами со временем
 
У меня вышло вот так

=ЕСЛИ(A2>B2;0;ЕСЛИ(ОТБР(B2)=ОТБР(A2);ЕСЛИ(ОСТАТ(A2;1)>=ОСТАТ(B2;1);0;МАКС(0;МИН(ОСТАТ(B2;1);17/24)-МАКС(ОСТАТ(A2;1);8/24)));МАКС(ЕСЛИ(ДЕНЬНЕД(A2;2)>5;0;МАКС(0;МИН(9/24;ОТБР(A2)+17/24-A2)));0)+ЕСЛИ(ДЕНЬНЕД(B2;2)>5;0;МАКС(0;МИН(9/24;B2-ОТБР(B2)-8/24))))+МАКС(ЧИСТРАБДНИ.МЕЖД(ОТБР(A2);ОТБР(B2);1)-2;0)*9)

Файл, для пояснения как оно так получилось.
Изменено: Wiss - 29.12.2022 13:49:11
Я не волшебник, я только учусь.
Выпадающий список с поиском на защищенном листе
 
Жалко. тогда ничем больше помочь не могу. У меня работает, но как-то странно, не сам выпадает, а на ячейку потом нужно ещё раз нажать.
Изменено: Wiss - 12.01.2022 18:20:48
Я не волшебник, я только учусь.
Выпадающий список с поиском на защищенном листе
 
Я и предлагаю убрать DrawingObjects и добавить UserInterfaceOnly. Вот такая строчка у меня получается.Пользователю воли не даёт, но скрипты работают свободно.
Код
ActiveSheet.Protect Password:="", Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True,UserInterfaceOnly:=True
Изменено: Wiss - 12.01.2022 18:10:00
Я не волшебник, я только учусь.
Как посчитать в табеле часы, когда в ячейках цифры и символы написаны вместе?
 
Формула массива (Ctrl+Shift+Enter)
=СУММПРОИЗВ(ЕСЛИОШИБКА(--ЛЕВСИМВ(C7:AG7;НАЙТИ("/3";C7:AG7)-1);ЕСЛИОШИБКА(--ЛЕВСИМВ(C7:AG7;НАЙТИ("/";C7:AG7)-1);C7:AG7)))
В объединенных ячейках эта формула не работает, поэтому я её прописал в ячейку AH7 и закрасил белым, а в AH8 уже просто на неё сослался.
Изменено: Wiss - 12.01.2022 18:10:39
Я не волшебник, я только учусь.
Выпадающий список с поиском на защищенном листе
 
Код
 UserInterfaceOnly:=True 
вместо
Код
DrawingObjects:=True 
не подойдёт?
Я не волшебник, я только учусь.
Поиск и фильтрация всех данных которые совпадают с искомыми значениями и ComboBox1 и ComboBox2
 
Раз Вы используете автофильтр, так и используйте его правильно: 2 значения - 2 строки в фильтре
Я не волшебник, я только учусь.
К названию файла прицепить текущее название
 
Внутрь строчки Wb.SaveAs (Pa & Tab2(n) & ".xlsx") добавьте всё, что Вам нужно.
Wb.SaveAs (Pa & Tab2(n) & название района & ".xlsx") откуда и как брать название района из кода само-собой не понять
Я не волшебник, я только учусь.
По максимальному значению вывести остальные данные строки
 
Цитата
Алексей Панов написал:
от этого числа три числа ниже: 60,59,58
Не совсем. Может быть 60, 55,54, 37
Хотел написать:
=СЧЁТЕСЛИ(C3:C96;">=" & НАИБОЛЬШИЙ(C1:C96;4))
Но эта формула будет работать криво, если среди топовых значений есть повторы...Например 61, 61,61,61, 59
"Ровную" формулу что-то никак найти не могу.
А если не заворачиваться, то:
=СЧЁТЕСЛИ(C3:C96;">=" & МАКС(C1:C96)-4)
Изменено: Wiss - 27.04.2021 16:52:20
Я не волшебник, я только учусь.
Условное форматирование. Подсветка даты начала - окончания работ
 
У меня получилось как-то так....
=ИЛИ(И(СУММ($E$6:E6)>0;СУММ(F6:$AI$6)<>$AI$6);E6<>0)
Я предполагаю, что в ячейках будут только цифры.
Я не волшебник, я только учусь.
По максимальному значению вывести остальные данные строки
 
Ваша правда, но там структура отчёта не особо предусматривает несколько вариантов + проблемно это, но если автор пожалуется - можно попробовать заморочиться. Лично я бы ограничился ещё одной колонкой "количество дней с макс. посещением"
Я не волшебник, я только учусь.
По максимальному значению вывести остальные данные строки
 
yozhik написал:
Цитата
а если будет две строки с одинаковым максимумом?
Если будет 2 строки - выдаст первую попавшуюся.
Я не волшебник, я только учусь.
По максимальному значению вывести остальные данные строки
 
Вам нужны функции ИНДЕКС + ПОИСКПОЗ или ВПР
Пример раписал с ИНДЕКС+ПОИСКПОЗ, так как с ВПР я мало дружу + в Вашем случае ВПР вроде бы не работает:) К ВПР ещё есть парная функция ГПР (ищет по столбцам, а не по строкам)

=ИНДЕКС(A3:A345;ПОИСКПОЗ($H$12;$C$3:$C$96;0))
Я не волшебник, я только учусь.
Сумма только видимых столбцов, Добрый день! Нужен макрос для суммирования только видимых столбцов, без скрытых столбцов.
 
Цитата
Ігор Гончаренко написал:
очень большие подозрения, что повода не представится((
Очень хотелось возмутиться, мол "что за поклёп и провокация", но да - повода не представится. Вариант с описанными мною событиями работает не так хорошо, как хотелось. Зато надёжно, но могут возникнуть тормоза, если в книге будет много сложных формул формул.
Я не волшебник, я только учусь.
Программка дилетанта. Игра Змейка, посмотрите, потыкайте палками
 
Цитата
vikttur написал:
Кто больше?
240 Изи. Свою животинку пока не писал. В Вашем варианте автозапуска с beep не хватает счётчика количества итераций. У меня вышло 57 577 + ещё где-то 7 запусков раз по  приблизительно 2400 итераций, благодаря которым я теперь знаю про существование ошибки "out of stack space". Что удивительно цифра 222 выпадала минимум 2 раза. Логи результатов не вёл.
Я не волшебник, я только учусь.
Сумма только видимых столбцов, Добрый день! Нужен макрос для суммирования только видимых столбцов, без скрытых столбцов.
 
OnChange, OnSelectionChange, OnActivation должно перекрыть все случаи, кроме работы макросов.
Я не волшебник, я только учусь.
УФ значений попадающих в интервал чисел
 
В условное  форматирование нужно вписать формулу =И(E1>=$A1;E1<=$B1)
Я не волшебник, я только учусь.
Ошибка `-2147417848 (80010108)` при вставке строки
 
Да там изначально было:
Код
    shTempRows.Range(sh1TmpRowAddress).Offset(iCount Mod 2).Resize(iCount).EntireRow.Copy
    sh1.Range("SignRow").Resize(1).Insert Shift:=xlDown
Просто я 3 часа (без преувеличения) урезал проект под форум, чтобы было не 1000 строк кода, но ошибка оставалась.
Предположительно, всё равно как именно к строке обратиться. Программа всё-равно потом одинокого все предложенные выше варианты интерпретирует.  Вот вариант Jack Famous, с добавлением пустой строки и последующим копированием шаблона, похоже, что реально помог. Знать бы ещё почему.
Я не волшебник, я только учусь.
Ошибка `-2147417848 (80010108)` при вставке строки
 
Цитата
New написал:
Просто через Alt+F8 запускаю ваш макрос AddRowForum
Так он и должен нормально отрабатывать. Ошибка происходит когда пользователь поменяет данные и быстро (базовый файл у меня чуть тормозной, поэтому можно и "не очень быстро") нажимает "Добавить строку". Есть подозрение, что там что-то внутри экселя начинает конфликтовать.
Я не волшебник, я только учусь.
Ошибка `-2147417848 (80010108)` при вставке строки
 
New, Ваш вариант, безусловно красивше, но ошибка остаётся. +EntireRow там уже лишним становится, вроде бы.
Я не волшебник, я только учусь.
Ошибка `-2147417848 (80010108)` при вставке строки
 
Мне нужно именно вставить строку посреди таблицы, так что:
Код
    Application.CutCopyMode = xlCopy
    sh2.Range("$26:$26").EntireRow.Insert Shift:=xlDown
    shTempRows.Range("$25:$25").EntireRow.Copy sh2.Range("$26:$26").EntireRow
Jack Famous, спасибо огромное. Очень похоже, что РАБОТАЕТ!
А почему?
Изменено: Wiss - 22.03.2021 16:54:12
Я не волшебник, я только учусь.
Ошибка `-2147417848 (80010108)` при вставке строки
 
Внимание! При возникновении ошибки прилагаемый файл вешает эксель (придётся убивать его через диспетчер задач).

Столкнулся с непонятной периодически случающейся проблемой, которая возникает не всегда и не на всех компьютерах (проверял только на MS office 13, но на нескольких компах). Вероятно, ошибка зависит от того, с какой скоростью пользователь нажимает на кнопки.

Механизм вызова ошибки:
1. В в жёлтом столбце вбиваем любое значение.
2. Быстро кликаем правой кнопкой на любой ячейке таблицы и выбираем пункт "Добавить строку".
3. Повторяем 3-4 раза, пока ошибка не появится (она просто то появляется сразу, то не появляется не сразу, где-то её вообще нет. В полном проекте она более стабильно появляется, тут в урезанном файле - реже.)

Всё. Ошибка  `-2147417848 (80010108)` "Method 'Insert' of object 'Range' failed" возникает между двумя безобидными строками:    
Код
shTempRows.Range("$25:$25").EntireRow.Copy
sh2.Range("$26:$26").EntireRow.Insert Shift:=xlDown
Проблема не в условном форматировании (в реальном проекте удалил всё УФ, проблема всё-равно осталась).

Не могу понять, что с чем конфликтует и как лечить. В другом проекте, в аналогичной ситуации выскакивает ошибка c этим же номером, но с описанием "Automation error Вызванный объект был отключен от клиентов."
Я не волшебник, я только учусь.
Блокировка книги в заданное время
 
Все зашиты снимаются так или иначе. Эксель вообще плохо защищён.

Чтобы не снимали пароль через архив можно книгу сохранять в формате xls (со всеми его ограничениями), тогда будут снимать иначе:)
В моем варианте если на листе-заглушке написать «Время вышло, все данные удалены», может никто и искать особо не будет.

Если совсем заморочиться - тут в копилке идей есть «хранение файлов и файловый менеджер внутри файла Эксель». Можно извратиться и с той стороны начать копать.
Изменено: Wiss - 10.02.2021 13:46:10
Я не волшебник, я только учусь.
Блокировка книги в заданное время
 
В самом простом виде можно попробовать как-то так.

То, что это не панацея и легко обходится я писал ранее: https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=108395&a...

Пароль на макрос:      1

Всё, что внутри if можно заменить на thisWorkbook.close, но если оставить кусочек кода с сокрытием листов, это может и помешать неопытным пользователям отковырять содержимое книги.

По хардкору - листы можно не скрывать, а удалять.
Изменено: Wiss - 10.02.2021 13:00:37
Я не волшебник, я только учусь.
Сколько реальных сумм, которые могут компенсировать друг друга?
 
Тут одной формулой очень сложно что-то сделать. ИМХО, для начала тут числа нужно отсортировать по абсолютному значению, а потом уже считать, что там можно "сократить".
Логика работы моей формулы следующая:
1. В перовой ячейке тупо пишем -1 или 1 (отрицательное или положительное число);
2. Дальше протянута формула, которая проверяет "сколько ещё чисел можно компенсировать". Если там значение 0 или выше, то это число или само положительное или отрицательное, для которого есть парное положительное число, которое его компенсирует.

Если взглянуть на мой случайный набор данных, то там строчки 7-8 компенсируются строчками 5-6.
Потом строчки 9-13 "отричательные", так как для них пар не хватает
Потом в строчке15 стоит цифра 2, которая указывает на то, что ниже могут быть 2 отрицательных числа, которые можно компенсировать за счёт строчек 14 и 15 (они там и стоят).
Интересное происходит на строчке 21. До неё стоит 3 положительных числа, соответственно, после может быть ещё 2 отрицательных числа, которые можно компенсировать,


Вроде бы всё работает. В моём примере 15 положительных чисел и соответствующих им отрицательных, которые в сумме с одним из положительных дают положительное число.
Я не волшебник, я только учусь.
Остановить счетчик времени и макросы при выходе из Excel
 
Можно как-то "грамотно" сделать, но я могу только предложить:
добавить Public bEnabled as boolean задавать bEnabled = true в RunTime и использовать bEnabled  как условие в CloseWB.

Для отключения макроса при закрытии книги добавить:
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
     bEnabled  = false
End Sub
Или в CloseWB передавать книгу как параметр...
Код
Sub CloseWB(wbX as Workbook)
 Application.DisplayAlerts = False
 on error resume next
 With wbX
  .Save
  .Close
 End With
End Sub
Без файла-примера ничего лучше подсказать не могу.
Я не волшебник, я только учусь.
Сколько реальных сумм, которые могут компенсировать друг друга?
 
Вы дали очень маленький набор данных. Сложно на нём что-то протестировать.
Для начала я добавил столбец с модулем чисел и отсортировал по нему, потом работают формулы из 3-го столбца.
Я не волшебник, я только учусь.
Суммирование до следующей пустой ячейки (с подвыпертом)
 
Mershik, спасибо.
Я не волшебник, я только учусь.
Суммирование до следующей пустой ячейки (с подвыпертом)
 
Цитата
Mershik написал:
я не замечал другого...
Нет, просто я из Вашей формулы убрал в конце +СТРОКА() и индекс стал перебирать не с начала листа, а со следующей строки. Вот и думаю, не сломал ли чего
Я не волшебник, я только учусь.
Анекдот дня, Постим сюда понравившиеся:)
 
1000 сообщение. Ещё 24 и будет круглое число.
Я не волшебник, я только учусь.
Суммирование до следующей пустой ячейки (с подвыпертом)
 
Mershik, а вот такая сокращённая версия Вашей формулы работать будет нормально или "есть нюансы" кроме того, что в столбце "B" после таблицы должно быть пусто, иначе последний случай не считается?

=СУММ(C3:ИНДЕКС($C3:$C$14;ПОИСКПОЗ(ИСТИНА;ЕПУСТО(B3:$B$14);0)-1;1))
Я не волшебник, я только учусь.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 35 След.
Наверх