last_post, $topic[ align= Последние сообщения
Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
01.10.2023, 17:40:55

Войти
Название темы должно отражать её содержание.
Темы типа "ПОМОГИТЕ!!!", "Срочно!", "Не получается сделать", "Нужна помощь" и т.п. будут удаляться без объяснения причин
33 121 Сообщений в 5 428 Тем от 6 684 Пользователей
Последний пользователь: RU_bilnik
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Последние сообщения
Страниц: 1 2 [3] 4 5 ... 10

 21 
 : 31.07.2023, 09:17:25 
Автор Alexandr6373 - Последний ответ от Alexandr6373
Добрый день!

Мной создана гугл таблица, которую должны заполнять несколько человек + эти люди периодическим меняются. Объяснять им, что менять структуру таблицы не нужно оказалось бесполезным. Поэтому я использовал проверку данных в шапке и в столбцах. А так же несколько столбцов сделал в виде выпадающего списка. Но столкнулся с следующей проблемой, чтобы пользователи смогли заполнять таблицу, нужно выдать права на редактирование, но если выдать таки права, то они сами могут вносить корректировки в выпадающий список (И зачем то это делают несмотря на чёткие указания и инструкции Шокирован). На скриншоте привожу пример того, как пользователь может изменить выставленные мной правила проверки данных http://joxi.ru/D2PpV1viWbYnL2 .

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

Жду помощи, спасибо!

 22 
 : 28.07.2023, 13:42:07 
Автор Mizar - Последний ответ от Mizar
Да, я пере сохранял файл в формате docx  и давал ссылку VBA Shell.... открывает, но почему то WordPad.... Непонимающий

Если скормить ссылку в пуск/выполнить, опять таки все хорошо.

Код: (vb)
Call Shell("""" & LinkFiles & """", vbNormalFocus)  

тоже не работает. Ругается на какие-то аргументы.


 23 
 : 28.07.2023, 11:51:44 
Автор Mizar - Последний ответ от Дмитрий Щербаков(The_Prist)
Скорее всего надо копаться в реестре и в соответствиях. Возможно, где-то неоднозначно заданы соответствия. Как ни крути, но проблема где-то в настройках ПК, VBA здесь виноват минимально. Если сохранить точно этот же файл в docx по тому же пути - откроет через VBA Shell или нет?
И попробуйте еще вот так запустить:
Код: (vb)
Call Shell("""" & LinkFiles & """", vbNormalFocus)

возможно у объекта Wscript.Shell что-то с правами.

 24 
 : 28.07.2023, 08:39:08 
Автор Mizar - Последний ответ от Mizar
Открывается все как обычно.
Если полный путь к файлу вставить в в пуск/выполнить то он тоже открывается тем, чем задумано.

Как я понимаю WSShell.Run тот же пуск/выполнить. В винде работает, в ВБА не работает.
Пока вышел из положения для ворд файлов запускать ворд и там открывать файл. Но хотелось бы понять, почему изначальная конструкция перестала работать.

 25 
 : 27.07.2023, 20:59:00 
Автор Mizar - Последний ответ от Дмитрий Щербаков(The_Prist)
А если просто двойным щелчком мыши на файл Word с расширением doc щелкнуть? Он где откроется? Если будет запрос программы - то все ясно, для расширения doc нет ассоциации с программой по умолчанию. Надо назначить какой программой по умолчанию открывать такие типы файлов и все заработает. Возможно, придется перезагрузить ПК, чтобы заработало через Shell.

 26 
 : 27.07.2023, 17:23:41 
Автор Mizar - Последний ответ от Mizar
Всем здравствуйте.

Имеется таблица где пользователю может открыть тот или иной файл.
Код: (vb)
CreateObject("wscript.shell").Run """" & LinkFiles & """"

И вроде как у всех, все работало, а тут вдруг перестало.
Перестали открываться .doc   Пишет method 'Run' of object 'iwshshell3' failed

При этом .docх почему то открывается в WordPad. При этом другие типы файлов открываются.

Если вот так, то работает
Код: (vb)
LinkFiles = "f:\MyFile.pdf"
CreateObject("wscript.shell").Run """" & LinkFiles & """"


А вот так, ошибка.....
Код: (vb)
LinkFiles = "f:\MyFile.doc"
CreateObject("wscript.shell").Run """" & LinkFiles & """"


При этом на другом компьютере все работает.

Пробовал подсунуть другую конструкцию, та же ошибка:
Код: (vb)
 Set WSShell = CreateObject("Wscript.Shell")
    WSShell.Run """" & LinkFiles & """", 1, True


Подскажите пожалуйста, дело в ворде или в программисте?
Как заставить VBA открывать файлы с любым расширением?

 27 
 : 25.07.2023, 11:41:37 
Автор Ksenia Mashkina - Последний ответ от Ksenia Mashkina
о, Боги! гениально! все работает!!!
а я пыталась и индекс и адрес но не могла понять как диапазон все же сделать.
Спасибо огромное!!

 28 
 : 25.07.2023, 10:18:43 
Автор Ksenia Mashkina - Последний ответ от Дмитрий Щербаков(The_Prist)
=СЧЁТЗ(A2:ИНДЕКС(A:A;ПОИСКПОЗ("Итого";A:A;0)))
вычисление диапазона происходит здесь:
A2:ИНДЕКС(A:A;ПОИСКПОЗ("Итого";A:A;0)-1)
т.е. берем стартовую ячейку(А2) и к ней "пристыковываем" поиск ячейки с "Итого". Если ячейку с "Продавец" тоже надо определять автоматом, то формула будет такой:
=СЧЁТЗ(ИНДЕКС(A:A;ПОИСКПОЗ("Продавец";A:A;0)+1):ИНДЕКС(A:A;ПОИСКПОЗ("Итого";A:A;0)-1))
Ну а СЧЁТЗ просто подсчитывает кол-во заполненных ячеек в диапазоне между найденными "Продавец" и "Итого".

 29 
 : 24.07.2023, 20:46:04 
Автор Ksenia Mashkina - Последний ответ от Ksenia Mashkina
Добрый день! Как посчитать количество ячеек в столбце между двумя текстовыми ячейками - есть столбец с начальной ячейкой Продавец и конечной ячейкой Итого. Хочу сделать эту таблицу динамической и чтобы н адругом листе формуа считала кол-во продавцов незавиисмо от того сколько их каждый раз в этой таблице.

Никак не могу найти формулу, помогите, пожалуйста!!

 30 
 : 19.07.2023, 17:19:32 
Автор Aglaya - Последний ответ от Aglaya
Теперь хоть понятно стало, что считаете. Здесь проблема именно с формулой массива и особенностью задания диапазонов для неё. А с учетом того, что считать итоги нельзя, не привязавшись к строкам выше(т.е. отдельно рассчитать просто итог невозможно) - то использовать все в этой одной формуле не получится.
С чем связано применение именно такой формулы, а не обычной? Чтобы строки добавлять?
Если очень нужна именно формула массива - я бы на Вашем месте добавил еще один столбец, в котором использовал текущую формулу. Его можно потом скрыть. А в отображенном столбце уже суммировал в зависимости от строки:
={"ЗП";ARRAYFORMULA(ЕСЛИ($C2:$C={"Итого"};СУММЕСЛИ($A$2:$A;$A$2:$A;$G$2:$G);$G$2:$G))}
вот такая формула сейчас записана в столбце H. А в столбце G почти что Ваша исходная:
={"ЗП";ARRAYFORMULA(ЕСЛИ($C2:$C={"Итого"};;ЕСЛИ($A2:$A={""};;ЕСЛИ(ДЛСТР($F$2:$F)>=1;$E2:$E*$L$4+$D$2:$D*$L$6+ЕСЛИ($F2:$F<=$L$2;$L$3;ЕСЛИ($F2:$F<=$M$2;$M$3;ЕСЛИ($F$2:$F>$N$2;$N$3;"")));""))))}
В файле прописал.

Большое спасибо!
Да, формула массива нужна, потому что количество сотрудников может меняться и есть необходимость добавлять/убирать строки. Да и не люблю формулы, прописанные в каждой строке - мало ли, что с ними может случиться в процессе работы, тыкнет кто-то не туда..

Страниц: 1 2 [3] 4 5 ... 10
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru