Сообщество - MS, Libreoffice & Google docs

MS, Libreoffice & Google docs

762 поста 14 934 подписчика

Популярные теги в сообществе:

25

Нужен макрос для массовой печати документов из Word 2010 по порядку1

Здравствуйте! Условие: есть папка с 250 файлами docx, rtf. Нужен макрос, который будет производить следующие действия:

1. Запрос папки откуда печатаем

2. Выбор количества экземпляров для печати каждого файла (например, 2 и все 250 файлов будут распечатаны по 2 раза)

3. Печать всех файлов в папке по порядку, не взирая на расширение файлов

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

269

Снятие защиты листа / книги

Прочитал тут пост: Excel триальный от @bighouse.live про защиту листа функциями MS, как установить пароль и т.д.


Данный способ защиты, как пароль - обходится за 5 секунд. Краткая инструкция, как снять защиту на странице:

Снятие защиты листа / книги

Аналогично защита снимается и с книги, только другой  параметр.


Защита макросом - надо разобраться. Думаю тоже ничего сложного.

Показать полностью 1
203

Excel триальный

Немного отвлечённый пост о защите своей работы.

Итак, общеизвестны способы закрытия информации в Excel, а именно:

1. Защита листа/книги

Выбираем разрешения/допуски, вводим пароль, сохраняем файл.

Дополнительно для каждой ячейки можно указать защищается ли она или нет. По умолчанию - защищается.

2. Защита кода

Точно так же вводим пароль (с повторением), ок, сохраняем.


Но все эти способы не более чем игрушки, и вскрываются совершенно не сложно при наличии некоторых минимальных навыков и особенно при сохранении в *.xlsm (файл с поддержкой макросов). Сохраняйте в *.xlsb (двоичный код), если хотите хоть немного защитить свою работу.

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


Каким же образом можно ещё затруднить использование вашей работы, кроме как не давать её?

Ну для начала надо определиться что защищаем. Если это просто текст, и вы его кому то отдали, то забудьте о защите - он общедоступен. Но документ Excel это, прежде всего расчёты. Своей масштабируемостью они и ценны - при изменении исходных данных пересчёт произойдёт автоматически. 

Этим можно воспользоваться выполнив передачу результатов расчёта в виде статических таблиц. Да, можно распечатать/сохранить в pdf,  или банальным Ctrl+А /  Ctrl+C / Ctrl+V /только значения/. А можно просто воспользоваться простым макросом:


' Замена всех формул на листе в значения

Sub Form_2_Dan()

Dim a As Integer

' Запрашиваем подтверждение

a = MsgBox("Внимание!" & _

Chr(10) & "Вы точно хотите заменить все формулы на листе на значения?" & _

Chr(10) & "Это необратимо!", _

52, "Замена формул на значения.")

' Если OK, то замену производим

If a = 6 Then

ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value

End If

End Sub


Расположение макроса - модуль.

Макрос сохраняется в личный набор/надстройку и кнопка запуска выводится на панель.

Внимание! Действие макроса необратимо!


Можно сделать "триальным" расчёт разместив в модулях листов вот такого вида макрос.


Private Sub Worksheet_Activate()

Application.ScreenUpdating = False

If Date >= #10/6/2022# Then ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value

Application.ScreenUpdating = True

End Sub


Т.е. после 10.06.2022 все расчёты с листа исчезнут... А цифры останутся.

Можно заменить проверку на заполнение ячейки, например проверить что в определённой ячейке записан автор труда "Вася Пупкин". :) При смене которого всё превратится в набор цифр..

Естественно доступ к макросам должен быть закрыт/запаролен.


Ещё вариант - ввод пароля на саму книгу:


Private Sub Workbook_Open()

Dim i&, n&, P As Variant

Application.ScreenUpdating = False

n = 2

If Date >= #1/2/2022# Then

For i = 1 To Sheets.Count

Sheets(i).Activate

Sheets(i).Protect "1234"

Next

1:

P = InputBox("Время использования книги истекло, для продолжения введите пароль", "ВВОД ПАРОЛЯ")

If P = "°0176" Then

For i = 1 To Sheets.Count

Sheets(i).Activate

Sheets(i).Unprotect "1234"

Next

Else

If n = 0 Then

Application.DisplayAlerts = False

ThisWorkbook.Close

Application.DisplayAlerts = True

Else

MsgBox "Пароль не верный, у вас еще " & n & " попытки"

n = n - 1

End If

GoTo 1

End If

End If

Application.ScreenUpdating = True

End Sub


Расположение макроса - "Эта книга".


#1/2/2022# - дата с которой будет запрашиваться пароль

"°0176" – правильный пароль

И при открытии файл будет встречать весёлым окошком:

Естественно можно открыть файл без выполнения макросов, но если расчёт в экселе построен на использовании макросов, то цель достигнута - расчёт производиться не будет.


И да, это всё игрушки - серьёзные дяденьки с тётеньками при необходимости поломают сие поделия, и узнают как вы определяли дискриминант...  (0_о). Даже если Вы применили обфускацию кода или перенос кода в dll.

Показать полностью 3
262

Формат отображения чисел

Многие знакомы с понятием формата отображения чисел в ячейках. Но не многие знают что данные форматы работают не только в ячейках...

Для начала напомню в кратце о чём речь:

Для любой ячейки можно задать независимый формат отображения. Можно воспользоваться как преднастроенными форматами, так и создать пользовательский формат:

Пользовательский формат может состоять из 4 фрагментов-масок, разделенных точкой с запятой*, где каждый фрагмент применяется в определенном случае:

<ПОЛОЖИТЕЛЬНЫЕ>; <ОТРИЦАТЕЛЬНЫЕ>; <НУЛЕВЫЕ>; <ТЕКСТ>

Три подряд точки с запятой Excel воспринимает как четыре пустых маски для всех четырех возможных случаев, т.е. выводит пустоту при любом значении ячейки.

Не нужно включать все разделы кода в пользовательский числовой формат. Если указано только два раздела, первый используется для положительных чисел и нулей, а второй — для отрицательных чисел. Если задан только один раздел, он применяется для всех чисел. Если нужно пропустить раздел кода и включить раздел, который следует за ним, необходимо оставить точку с запятой для пропускаемого раздела.


Excel использует несколько спецсимволов в масках форматов:

• 0 (ноль) - одно обязательное знакоместо (разряд), т.е. это место в маске формата будет заполнено цифрой из числа, которое пользователь введет в ячейку. Если для этого знакоместа нет числа, то будет выведен ноль. Например, если к числу 12 применить маску 0000, то получится 0012, а если к числу 1,3456 применить маску 0,00 - получится 1,35.

• # (решетка) - одно необязательное знакоместо - примерно то же самое, что и ноль, но если для знакоместа нет числа, то ничего не выводится

• (пробел) - используется как разделитель групп разрядов по три между тысячами, миллионами, миллиардами и т.д.

• [ ] - в квадратных скобках перед маской формата можно указать цвет шрифта. Разрешено использовать следующие цвета: черный, белый, красный, синий, зеленый, жёлтый, голубой.

Любой пользовательский текст (кг, чел, шт и тому подобные) или символы (в том числе и пробелы) - надо обязательно заключать в кавычки.


Примеры использования:

Естественно вариаций масок гораздо больше, но данный пост не об этом -пользовательский формат общеизвестен.

Примечание: *пользовательские форматы в русской и английской версии офиса не совпадают. Внезапно. Всё мной написанное относится к русской версии.


Данный пост о том, как построить диаграмму вот с такими осями (например):

Как видно - это обычная диаграмма с двумя графиками, построенными по основной и вспомогательным вертикальным осям. И в этом построении нет никакого секрета. А вот сделать так, чтобы подписи левой оси начинались с 4-х, а подписи правой заканчивались на 2000-х нам помогает именно формат чисел подписей осей:

Код формата левой (основной) оси - [>=4] 0 ;;;

Код формата правой (вспомогательной) оси - [<=2000] 0 ;;;


Возможно данный способ кому-то пригодится. Ну а с масками формата - экспериментируйте :)


УПД. Благодарю Yacl за наблюдательность

Показать полностью 4
28

Excel, ВПР по большому количеству файлов

Привет! Кто может посоветовать, как быть или какое обучающее видео мне посмотреть по PowerQuery чтобы проВПРить сразу большое количество Excel-фалов?

Есть куча объемных фалов, мне из них нужно по пять значений, расположенных в определённых столбцах напротив определенных значений, но на разной "высоте" (классический ВПР, собственно).


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

После этого я написал формулу ВПР с ДВССЫЛом, что в принципе работало, но было ограничение в виде того, что ВПР работает только если файл-источник данных открыт. Я бы даже остановился на этом варианте, но после добавления трех новых файлов в папку и обновления списка файлов с помощью PQ формула ВПР почему-то не сработала на новые файлы, со старыми файлами все было нормально, я даже поменял значение в файле-доноре данных и оно обновилось в моей "сводной".

А когда я переписал формулу еще раз так, чтобы "Искомое значение" ВПРа ссылалось на именованный диапазон, а не на конкретную ячейку, как было изначально, то она наоборот начала работать только на вновь добавленные файлы.

Спецы по PQ, отзовитесь, пожалуйста!


UPD. Отбой, оказалось, что названия листов в новых файлах отличались от первой партии. В первом случае был пробел, во втором - нижнее подчеркивание.

Показать полностью
10

Формула в excel

Всем привет.

Помогите, пожалуйста, с составлением формулы для расчёта остатка рулонного материала.

Есть рулоны материалов с втулкой внутри (с разными диаметрами и радиусами как материалов так и втулок, и с разной намоткой материала), и есть так же линейка для измерения.
Сейчас это выглядит так (не правильно):
Линейкой измеряется радиус материала от втулки и считается как 1(целое), а остаток высчитывается на остаточную намотку (0.7рл, 0.3рл, и тд).

12

Excel закрывается при открытии файла1

Добрый день! Может подскажите что-нибудь, а то уж всю голову сломал. Есть ряд файлов с макросами и запросами PQ. Обычно работают как часы, но иногда случается следующее: при попытки открытия файла, Excel без объявления войны закрывается (просто вылетает без всяких сообщений). Закрывается целиком: все открытые файлы, ничего не сохраняет. И если с файлом случается подобное, он уже не открывается, Excel продолжает вылетать до тех пор пока... я не открою его на другом компьютере и не сохраню на том компе (файлы лежат в облаке на яндекс-диске)! Хотелось вывести работу в состояние стабильности и решить эту проблему. Я пробовал и отключать те макросы и PQ-запросы, которые срабатывают при запуске - не помогает.

16

Microsoft Excel ожидает, пока другое приложение завершит действие OLE

Добрый день. Последнее время Excel стал задумываться и выдавать сообщение после долгих раздумий "Microsoft Excel ожидает, пока другое приложение завершит действие OLE". Выскакивает на разных компьютерах с разными версиями Эксель и при открытии или редактировании разных файлов. Как это можно полечить? Способы из гугла не помогли.

Отличная работа, все прочитано!