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

Страницы: 1
Можно ли блокировать только возможность вырезать ячейку / ячейки
 
Всем доброго времени суток и с наступившими праздниками!

Такой вопрос появился.
Есть таблица, в которой на лист установлена защита, ячейки с формулами заблокированы от редактирования, формулы, разумеется, скрыты.
Но, по многочисленным просьбам пользователей, пришлось включить возможность форматирования столбцов / строк, т.к. периодически им требуется выборочно скрывать столбцы / строки.
Нарисовалась проблема.
Часть особо "продвинутых" пользователей, уж не знаю - сознательно или по недопониманию, на связанных с формулами ячейках вместо "копировать - вставить" делают "вырезать - вставить", вследствие чего возникают разнообразные сложности с последующим формированием отчётов.
Понятно, что найти такие косяки относительно нетрудно, да и восстановить формулы тоже легко. Но ведь пользователи в такие вот "неправильные" ячейки вполне могут назабивать таких данных, что мозг закипит по итогу...
Разговаривать / убеждать бесполезно. Сейчас кивают, что, типа, всё поняли, согласны, больше не будут, а завтра-послезавтра-через-неделю-месяц хотя бы один-два уникума обязательно найдутся.
Немного сумбурно, наверное, объяснил...

Тем не менее, возможно ли как-то победить эту проблему и запретить операцию "вырезания"? Или я слишком много хочу от Excel'я ?
Странная работа ВПР
 
Всем доброго времени суток!

Всё время без особых проблем пользовался ВПР.
А тут наступил на какие-то грабли...
Приятель попросил помочь с большой сверкой, где в качестве идентификатора для сравнения служит номер, разбитый на группы цифр, разделенные тире.
Я по привычке решил использовать функцию ВПР и столкнулся с тем, что она некорректно ищет данные.
Промучившись почти полчаса, я плюнул и загнал все таблицы в акцесс, где за 5 минут всё сделал (больше времени потратил, чтобы файл туда/сюда пересылать, т.к. на рабочем компе акцесса не было).

Сравнил результаты: из почти 6 тысяч записей, которые надо было проверить, акцесс нашёл почти 300 совпадений, а ВПР - 38, причём корректных было только 6 !!!
Я попробовал убрать разделители из чисел, но результат не изменился. Я что-то не так делаю?
Проблема с расширенной фильтрацией ячеек вида "1.1"
 
Всем доброго времени суток!

Есть таблица, в которой для градации данных используются индексы строк отчетов типа 1, 2, 1.1, 1.2, 1.3.1 и т.п.
Под это предусмотрено три соответствующих поля.
Отчёт по таблице с формулами вида СЧЁТЕСЛИМН, СУММЕСЛИМН, СУММПРОИЗВ с использованием в качестве условия сравнения с индексами считается нормально.
Для анализа отчётов специалистам потребовалась детализация по ячейкам (типа, какие именно строки таблицы туда попадают).
Наваял небольшой скриптик на базе расширенного скрипта и примеров с сайта и форума planetaexcel (спасибо всем заочное :)
Но тут нарисовалась странная проблема. Фильтрация по индексам вида 1, 2 и 1.1.1, 1.2.1 происходит корректно.
А вот индексы вида 1.1, 1.2, 1.3 не фильтруются, таблица получается пустая.
Правда, пришлось в скрипте сделать отдельную формулу преобразования, т.к. напрямую с этих ячеек считывается почему-то запятая, а не точка, хотя ячейки в текстовом формате сохранены.
В любом случае, все пляски с бубном ни к чему не привели...
Если кому не сложно, взгляните опытным глазом, может, появятся какие-то идеи.
Заранее спасибо за помощь!

p.s. В приложенном файле вкладка "Ф1-2024". Для запуска скрипта фильтрации нужно выбрать ячейку в любой из строк таблицы, а далее либо нажать правую кнопку мыши и выбрать пункт "Детализация", либо нажать кнопку "детализация выбранной ячейки" на странице.
Индекс для фильтрации считается из столбца А соответствующей строки.
Как правильно обратиться к модулю Sub Workbook_Open()
 
Всем доброго времени суток!

Нужно скриптом внести изменения в модуль "Workbook_Open" в большом количестве книг.
Мне известно - в каких именно строках скрипта и что именно исправлять.

Как правильно к обратиться через Object  к этому модулю?

С простыми модулями листов мне всё понятно.
Код
            Dim objVBProj As Object, objVBComp As Object, objCodeMod As Object
            Dim lLineNum As Long
            Dim objVBShtName As String
            
            Set objVBProj = ActiveWorkbook.VBProject
            objVBShtName = Sheets("СКЛАД").CodeName
            Set objVBComp = objVBProj.VBComponents(objVBShtName)
            Set objCodeMod = objVBComp.CodeModule

            With objCodeMod
                        .ReplaceLine 11, Replace(.Lines(11, 1), "AN2:AN4000", "AO2:AO4000")
            End With
А вот с модулем собственно книги - всю голову сломал, не могу понять...
Скорее всего - решение несложное, но я не догоняю.

Заранее спасибо за помощь.
Распространить действие скрипта на диапазон
 
Доброго времени суток!
Всех с наступишими праздниками!

Небольшая проблема.
Есть таблица с двумя столбцами I и J, к ячейкам которых привязаны справочники.
Условие работы таково, что одновременно обе соседних ячейки заполнены данными не могут быть (либо пусто, либо данные).
Написал скрипт на Worksheet_Change.
Для удобства понимания пользователей сделал так, чтобы ячейка, куда нельзя вносить данные, "заливалась" серым цветом,
а доступная - светло-жёлтым.
Специально предусмотрел так называемые "прочерки": изначально в обе ячейки ставятся прочерки, а потом уже работает скрипт на изменение.Сам скрипт, может, быть тяжеловат и не оптимален, но больше пары-тройки сотен строк в таблице у одного пользователя не должно быть,
поэтому незначительные задержки не критичны.
По одной ячейке всё работает замечательно, включаю обработку кнопки "Del". Но если пользователь выделит сразу несколько соседних ячеек
в рабочем диапазоне (например, 1 стр х 2 стлб, 2 стр х 1 стлб или 4 стр х 2 стлб) и нажмет "Del", то скрипт не срабатывает.
Ладно с заполнением "прочерками", позже всё равно при внесении данных всё придёт в норму.
Но вот то, что цвета не сбрасываются, не очень хорошо. В идеале, чтобы диапазон тоже можно было обрабатывать,
но мои пляски с бубном ни к чему не привели: скрипт "спотыкается" на работе с диапазоном...

Предполагаю, что нужно проверять Target на полное/частичное совпадание с диапазоном проверки.
С ячейкой всё понятно. А как диапазон проверить?
В принципе, допустим вариант, чтобы при таковом совпадении из Target выделялся диапазон, именно подходящий
под диапазон проверки, после чего его (диапазона) ячейки циклом прогонялись через обработчик события.В этом случае обработчик события, наверное, как внешнюю процедуру лучше сохранить.

В общем, идей вроде много, а решения не нашёл.

Как можно победить проблему?

Заранее спасибо за помощь.
Подсчёт количества ячеек при расчётном условии
 
Всем доброго времени суток!

Немного коряво топик назвал, но другого в голову не пришло.

Есть примитивная таблица вида: дата, план, выполнено, не выполнено.
И четыре итоговых строки со статистикой.
Начальству вдруг "расхотелось" видеть столбец "не выполнено".
Поскольку периодически редактируют таблицу без моего участия, то делать скрытый столбец или внедрять макрос - крайне ненадёжное решение.
Достаточно будет добавить строку, в которой в скрытом столбце не будет формулы, либо сохранить книгу в другом формате, как всё испортится.

К счастью, итоговые строчки не трогают, что радует...


Собственно вопрос: можно ли так построить формулу СЧЁТЕСЛИ / СЧЁТЕСЛИМН или ещё какую-то функцию использовать, чтобы считались ячейки
при выполнении расчётного условия, т.е. считать ячейку Bn только в том случае, если Bn-Cn>0.
Я второй день голову ломаю, ничего придумать не смог...
В приложенном файле все цифры случайные.


Возможно, что проблема не стоит выеденного яйца, но я её не осилил, хотя уже далеко не первый год Excel постигаю :)

Заранее спасибо за подсказки!
Выборка из таблицы по первой букве
 
Есть таблица из 7 столбцов с фамилиями. На этом же листе будут присутствовать другие данные.
Нужно из таблицы с фамилиями создать на другом листе список в том порядке, в котором фамилии идут в таблице сначала по строкам, потом по столбцам (строка1столбец1, строка1столбец2, строка1столбец3, строка2столбец1 и т.д.) Сортировка и отсев повторов не требуются. Данные в яйчейках могут отсутствовать.
Выборку необходимо осуществлять по первой букве ячейки.
Пока в голову ничего кроме тупого перебора через цикл не приходит...
Страницы: 1
Наверх