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

Страницы: 1
Можно ли блокировать только возможность вырезать ячейку / ячейки
 
p.s. Честно говоря, изначально пытался сделать макрос на события листа, который бы пытался отловить такие фокусы.
Но пришлось от этой идеи отказаться, т.к. у некоторых пользователей на компах установлены только LibreOffice, а там документы с макросами, привязанными к листам / событиям, часто "портятся". А обработка событий в LO - вообще песня... (но это уже другая история)
Можно ли блокировать только возможность вырезать ячейку / ячейки
 
Цитата
написал:
2. Более правильный, использовать разрешение редактирования области через меню рецензирование
Попробовал. Результат не тот, что нужен.
Если на ячейку поставить защиту, то в ней нельзя изменить данные.
А на незащищенные ячейки защита диапазонов не действует.
Поясню еще раз: в сами ячейки юзер вносит данные (выбор из выпадающего списка). Два столбца справа содержат формулы на базе ВПР / ПОИСКПОЗ.
Плюс отчёт, в котором данные считаются по СУММЕСЛИМН и СУММПРОИЗВ. Естественно, что там диапазоны прописаны довольно чётко.
Если пользователь по дурости по невнимательности делает вырезать / вставить, то формула начинает ссылаться на другую ячейку.
Ячейки с формулами частично скрыты, частично нет, но, в любом случае, защищены + формулы скрыты.
А вот с обычными ячейками засада...

Ладно, похоже, что пока решения нет. Будем бороться с трудностями.
Тем не менее, спасибо за помощь :)
Можно ли блокировать только возможность вырезать ячейку / ячейки
 
Всем доброго времени суток и с наступившими праздниками!

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

Тем не менее, возможно ли как-то победить эту проблему и запретить операцию "вырезания"? Или я слишком много хочу от Excel'я ?
Странная работа ВПР
 
Hugo, а приблизительное сравнение - оно сильно приблизительное?
Странная работа ВПР
 
Цитата
написал:
А вот номер столбца то 1, то 0...
Мда, в тестовом файле накосячил. Виноват, проглядел.
С нулём в интервальном просмотре вроде работает.
Спасибо. Вопрос можно закрыть.
Странная работа ВПР
 
Всем доброго времени суток!

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

Сравнил результаты: из почти 6 тысяч записей, которые надо было проверить, акцесс нашёл почти 300 совпадений, а ВПР - 38, причём корректных было только 6 !!!
Я попробовал убрать разделители из чисел, но результат не изменился. Я что-то не так делаю?
Проблема с расширенной фильтрацией ячеек вида "1.1"
 
p.s. Сколько ни пытался - так и не смог понять логику двойного отрицания...
Не доходит до меня почему-то :(
Проблема с расширенной фильтрацией ячеек вида "1.1"
 
Цитата
написал:
в ячейке Е1 надо установить при этом формат общий и прописать такую формулу
Так работает! Спасибо огромное!
Проблема с расширенной фильтрацией ячеек вида "1.1"
 
На всякий случай (вдруг успел что-то в файле испортить) скачал свой файл отсюда, из темы.
Удалил две строки в скрипте. Выбираю 1.2 - пустая таблица, 1.2.3 - нормально.
1.1 и 17.1 тоже проверил - пустые выходят.
Проблема с расширенной фильтрацией ячеек вида "1.1"
 
Цитата
написал:
Без них - все нормально фильтруется для любых условий
Мне нет смысла обманывать. Могу видео выложить с захватом экрана...
Проблема с расширенной фильтрацией ячеек вида "1.1"
 
Цитата
написал:
Т.е. все, что Вам нужно - убрать отсюда
Я пробовал как с этими строками, так и без них. Ошибки нет, но фильтрация не работает - выдается пустая таблица
Проблема с расширенной фильтрацией ячеек вида "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()
 
Цитата
написал:
Судя по названиям переменных в Вашем коде, Вы просто не долистали до нужного места в статье)

Нет, я читал не эту статью. К сожалению, там речь шла только о работе с модулями листов и обычными модулями...
Как правильно обратиться к модулю Sub Workbook_Open()
 
Sanja, спасибо огромное!
То, что нужно.

Вопрос можно закрыть.
Как правильно обратиться к модулю 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
А вот с модулем собственно книги - всю голову сломал, не могу понять...
Скорее всего - решение несложное, но я не догоняю.

Заранее спасибо за помощь.
Распространить действие скрипта на диапазон
 
Цитата
написал:
Set t2 = Cells(Target.Row, 19 - Target.Column)
Благодарю. Не совсем то, что я предполагал, но принцип интересен, надо потестить на реальном файле.
Вот только цифра 19 в цитате - не понял, зачем (к чему)?
Распространить действие скрипта на диапазон
 
Доброго времени суток!
Всех с наступишими праздниками!

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

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

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

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

Заранее спасибо за помощь.
Подсчёт количества ячеек при расчётном условии
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1      =СУММПРОИЗВ(--(B2:B5<>C2:C5))   
 
Работает. Благодарю!

P.s. Ни разу не сталкивался с двойным минусом... Пора почитать мануалы :)
Подсчёт количества ячеек при расчётном условии
 
Всем доброго времени суток!

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

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

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


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


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

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