Добрый день многоуважаемые форумчане!!! Помогите осуществить задумку с макросами!? Имеется файл "см.Вложение" данный файл является "ОБРАЗЦОМ" в определенной папке. Задумка вот какого плана: 1. Оператор открывает файл "ОБРАЗЕЦ" вносит данные и нажимает кнопку для сохранения как, файл сохраняется под названием с определенных ячеек + дата и время создания + очищает нужные ячейки и закрывается. С этой задачей я справился благодаря форуму из других тем:
[vba]
Код
Sub SaveAs_Now() 'Сохранение файла в формате в папку под наименованием из ячеек With ThisWorkbook .SaveCopyAs Filename:="C:\Users\Lab\Desktop\Ghbrjk\" & Range("A1") & " " & Range("B7") & " " & Range("G15") & " " & Format(Now, "dd.mm.yy_hh.mm.ss") & ".xlsm"
'Закрытие файла ОБРАЗЕЦ Application.Quit ActiveWorkbook.Close True End With End Sub
[/vba]
2. Как прописать код: Чтоб после того как оператор сохранил файл в этом файле что сохранил не мог ни чего более исправлять. Т.е. данный файл станет не рабочим вообще он просто может использоваться для распечатывания и ознакомления данных. Возможно ли такое!? Поиск подобного решения не смог найти (возможно плохо ищу). Заранее спасибо вам за помощь!!!
Добрый день многоуважаемые форумчане!!! Помогите осуществить задумку с макросами!? Имеется файл "см.Вложение" данный файл является "ОБРАЗЦОМ" в определенной папке. Задумка вот какого плана: 1. Оператор открывает файл "ОБРАЗЕЦ" вносит данные и нажимает кнопку для сохранения как, файл сохраняется под названием с определенных ячеек + дата и время создания + очищает нужные ячейки и закрывается. С этой задачей я справился благодаря форуму из других тем:
[vba]
Код
Sub SaveAs_Now() 'Сохранение файла в формате в папку под наименованием из ячеек With ThisWorkbook .SaveCopyAs Filename:="C:\Users\Lab\Desktop\Ghbrjk\" & Range("A1") & " " & Range("B7") & " " & Range("G15") & " " & Format(Now, "dd.mm.yy_hh.mm.ss") & ".xlsm"
'Закрытие файла ОБРАЗЕЦ Application.Quit ActiveWorkbook.Close True End With End Sub
[/vba]
2. Как прописать код: Чтоб после того как оператор сохранил файл в этом файле что сохранил не мог ни чего более исправлять. Т.е. данный файл станет не рабочим вообще он просто может использоваться для распечатывания и ознакомления данных. Возможно ли такое!? Поиск подобного решения не смог найти (возможно плохо ищу). Заранее спасибо вам за помощь!!!lebensvoll
Nic70y, спасибо за ответ!!! Слушайте а как вариант наверное да ))))) сейчас с шефом обсужу предложение. А то мы зациклились на экселе а решение было на поверхности. Спасибо еще раз!!!
Nic70y, спасибо за ответ!!! Слушайте а как вариант наверное да ))))) сейчас с шефом обсужу предложение. А то мы зациклились на экселе а решение было на поверхности. Спасибо еще раз!!!lebensvoll
Уважаемые модераторы а могу поменять данную тему!? Предложенное Nic70y,
Цитата
PDF не?
было обсуждено с руководителем и выясняется что для нас это не вариант. Да и мое название темы
Цитата
Запрет действий в сохраненном файле
и просьба о помощи
Цитата
2. Как прописать код: Чтоб после того как оператор сохранил файл в этом файле что сохранил не мог ни чего более исправлять. Т.е. данный файл станет не рабочим вообще он просто может использоваться для распечатывания и ознакомления данных. Возможно ли такое!?
не удачное Потому как бывают ситуации (иногда не от нас зависящие) в данном файле нужно будет проводить корректировки. И тогда возникает другая задача: Если оператору потребуется произвести изменения в сохраненном файле, то: 1. Запрет сохранить файл просто. И предложить сохранить (или же без предложения) автоматически сохранить под этим же наименованием но с препиской ИЗМЕНЕНИЯ. Ну к примеру: Оператор сохранил файл после работы с ОБРАЗЦОМ. Проходит какой то определенной промежуток времени и поступает информация что в данном "Протоколе № 1 Ремонт консольной части плиты пролетного строения Оп№13-№14 Иванов 01.12.2020" нужно произвести корректировку. И при сохранении ему ЗАПРЕЩАЕТ уже сохранить изменения!!! И сохраняет данный файл: как ИЗМЕНЕНИЕ №1 "Протоколе № 1 Ремонт консольной части плиты пролетного строения Оп№13-№14 Иванов 01.12.2020" Тем самым сохраняется отслеживаемость до и после + сохранение двух версий документа
Просто хочется 1. все таки автоматизировать процессы 2. выявлять ошибки
Уважаемые модераторы а могу поменять данную тему!? Предложенное Nic70y,
Цитата
PDF не?
было обсуждено с руководителем и выясняется что для нас это не вариант. Да и мое название темы
Цитата
Запрет действий в сохраненном файле
и просьба о помощи
Цитата
2. Как прописать код: Чтоб после того как оператор сохранил файл в этом файле что сохранил не мог ни чего более исправлять. Т.е. данный файл станет не рабочим вообще он просто может использоваться для распечатывания и ознакомления данных. Возможно ли такое!?
не удачное Потому как бывают ситуации (иногда не от нас зависящие) в данном файле нужно будет проводить корректировки. И тогда возникает другая задача: Если оператору потребуется произвести изменения в сохраненном файле, то: 1. Запрет сохранить файл просто. И предложить сохранить (или же без предложения) автоматически сохранить под этим же наименованием но с препиской ИЗМЕНЕНИЯ. Ну к примеру: Оператор сохранил файл после работы с ОБРАЗЦОМ. Проходит какой то определенной промежуток времени и поступает информация что в данном "Протоколе № 1 Ремонт консольной части плиты пролетного строения Оп№13-№14 Иванов 01.12.2020" нужно произвести корректировку. И при сохранении ему ЗАПРЕЩАЕТ уже сохранить изменения!!! И сохраняет данный файл: как ИЗМЕНЕНИЕ №1 "Протоколе № 1 Ремонт консольной части плиты пролетного строения Оп№13-№14 Иванов 01.12.2020" Тем самым сохраняется отслеживаемость до и после + сохранение двух версий документа
Просто хочется 1. все таки автоматизировать процессы 2. выявлять ошибкиlebensvoll
Кто бы ты ни был, мир в твоих руках
Сообщение отредактировал lebensvoll - Вторник, 01.12.2020, 13:04
Да. 1. сохраняете ваш файл как шаблон xltm. 2. пишете код, который а) не дает возможности не использовать макросы б) обеспечивает сохранение файла только в формате xltm
Да. 1. сохраняете ваш файл как шаблон xltm. 2. пишете код, который а) не дает возможности не использовать макросы б) обеспечивает сохранение файла только в формате xltmRAN
RAN, спасибо за ответ. Но в нем я еще больше запутался (((( 1. Зачем сохранять в xltm!? 2. Как не дает возможности не использовать макросы!? Ведь мне нужен макрос который будет запрещать сохранять файл ранее созданный "просто сохранить" если оператор произведет в нем какие то изменения. ТО оператору будет лишь предложено сохранить этот файл "Со старым названием" + переписка впереди Изменено [Дата; время] №1 (№2; №3; №4 - в зависимости от того сколько раз он изменял этот файл) и пытался сохранить эту информацию
RAN, спасибо за ответ. Но в нем я еще больше запутался (((( 1. Зачем сохранять в xltm!? 2. Как не дает возможности не использовать макросы!? Ведь мне нужен макрос который будет запрещать сохранять файл ранее созданный "просто сохранить" если оператор произведет в нем какие то изменения. ТО оператору будет лишь предложено сохранить этот файл "Со старым названием" + переписка впереди Изменено [Дата; время] №1 (№2; №3; №4 - в зависимости от того сколько раз он изменял этот файл) и пытался сохранить эту информациюlebensvoll
Кто бы ты ни был, мир в твоих руках
Сообщение отредактировал lebensvoll - Вторник, 01.12.2020, 18:34
При обычном открытии шаблона файл не открывается, а создается новая книга, которая содержит все, что содержала старая. И просто сохранить ее не возможно, только "сохранить как". Чтобы изменить шаблон, его нужно открывать в режиме редактирования. Вообще то, в русском языке, два отрицания дают утверждение.
При обычном открытии шаблона файл не открывается, а создается новая книга, которая содержит все, что содержала старая. И просто сохранить ее не возможно, только "сохранить как". Чтобы изменить шаблон, его нужно открывать в режиме редактирования. Вообще то, в русском языке, два отрицания дают утверждение.RAN
RAN, погодите. Я немного стал Вас понимать но теперь в начале запутался ))) В слове шаблон!!! У меня как бы изначально файл образец (как бы и является шаблоном - по моей задумке) и по сути оператор работает только с ним. И если возникают корректирующие ситуации в старых файлах (которые были созданы из шаблона ОБРАЗЕЦ)
RAN, погодите. Я немного стал Вас понимать но теперь в начале запутался ))) В слове шаблон!!! У меня как бы изначально файл образец (как бы и является шаблоном - по моей задумке) и по сути оператор работает только с ним. И если возникают корректирующие ситуации в старых файлах (которые были созданы из шаблона ОБРАЗЕЦ)
RAN, СПАСИБО ВАМ ОГРОМНЕЙШЕЕ!!! Я разобрался и у меня получилось 1. И как создавать шаблон Excel 2. И c vba разобрался (отыскал подобное решение в этой теме: Сохранение файла из шаблона макросом. My WebPage
Теперь буду разбираться для решения основной задачи Если оператору потребуется отредактировать созданный файл чтоб он его сохранить смог лишь Дубликатом и с препиской Изменено Пока что макрос в созданном документе при редактировании срабатывает и сохраняет (как ни странно в этой же папке) Да и по сути то дата и время изменения фиксируется - фиксируется Наименование документа дата и кто его создал осталась тем же - тем же
Прописать еще один vba на запрет сохранить (чтоб не повадно было): [vba]
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Cancel = True 'отменяем сохранение End Sub
[/vba]
RAN, СПАСИБО ВАМ ОГРОМНЕЙШЕЕ!!! Я разобрался и у меня получилось 1. И как создавать шаблон Excel 2. И c vba разобрался (отыскал подобное решение в этой теме: Сохранение файла из шаблона макросом. My WebPage
Теперь буду разбираться для решения основной задачи Если оператору потребуется отредактировать созданный файл чтоб он его сохранить смог лишь Дубликатом и с препиской Изменено Пока что макрос в созданном документе при редактировании срабатывает и сохраняет (как ни странно в этой же папке) Да и по сути то дата и время изменения фиксируется - фиксируется Наименование документа дата и кто его создал осталась тем же - тем же
Прописать еще один vba на запрет сохранить (чтоб не повадно было): [vba]
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Cancel = True 'отменяем сохранение End Sub
RAN, Если можно то в этой Пока разбирался в понимании как все отладить множество тем перелапатил. И все получилось И в конце вот такое вот Прекрасно понимаю что запрещаю сохранять кодом через панель инструментов И в тоже самое время хочу сохранить кодом но через кнопку
RAN, Если можно то в этой Пока разбирался в понимании как все отладить множество тем перелапатил. И все получилось И в конце вот такое вот Прекрасно понимаю что запрещаю сохранять кодом через панель инструментов И в тоже самое время хочу сохранить кодом но через кнопку lebensvoll
Кто бы ты ни был, мир в твоих руках
Сообщение отредактировал lebensvoll - Среда, 02.12.2020, 18:15
Даже и не знаю, в какой из тем ответить. Когда вы открываете шаблон, у нового файла нет пути для сохранения. И его нужно указать принудительно. Издержки производства...
А это
Цитата
Прописать еще один vba на запрет сохранить (чтоб не повадно было)
вообще выше моего понимания. Зачем вам файл, который нельзя сохранить?
Никто и не говорил, что это просто. Там еще варианты сохранение не сохраненного и отмена, сохранение не сохраненного и согласие, сохранение сохраненного и отмена, сохранение сохраненного и согласие. И на все эти действа нужен код.
По просьбам трудящихся.
Цитата
Даже и не знаю, в какой из тем ответить. Когда вы открываете шаблон, у нового файла нет пути для сохранения. И его нужно указать принудительно. Издержки производства...
А это
Цитата
Прописать еще один vba на запрет сохранить (чтоб не повадно было)
вообще выше моего понимания. Зачем вам файл, который нельзя сохранить?
Никто и не говорил, что это просто. Там еще варианты сохранение не сохраненного и отмена, сохранение не сохраненного и согласие, сохранение сохраненного и отмена, сохранение сохраненного и согласие. И на все эти действа нужен код.RAN
Быть или не быть, вот в чем загвоздка!
Сообщение отредактировал RAN - Среда, 02.12.2020, 18:21
Ну смотрите в определенную папку сохраняются из шаблона эксель документы, все хорошо. Если требуется отредактировать документ и сохранение провести через CommandButton.1 то файл сохраняет копию в эту же папку и файл закрывается то что нужно (при этом же руководителю подразделения для анализа видно старый как он был и измененый = СУПЕР). Но тут загвоздка ведь!!! Это если оператор будет сохранять через CommandButton.1 а ведь может и нажать "Сохранить" на панеле инструментов. И тогда все файл лишь сохранил редактирование ((((( а старая информация ТЮ ТЮ А нам нужна прослеживаемость
RAN,
Цитата
вообще выше моего понимания
Ну смотрите в определенную папку сохраняются из шаблона эксель документы, все хорошо. Если требуется отредактировать документ и сохранение провести через CommandButton.1 то файл сохраняет копию в эту же папку и файл закрывается то что нужно (при этом же руководителю подразделения для анализа видно старый как он был и измененый = СУПЕР). Но тут загвоздка ведь!!! Это если оператор будет сохранять через CommandButton.1 а ведь может и нажать "Сохранить" на панеле инструментов. И тогда все файл лишь сохранил редактирование ((((( а старая информация ТЮ ТЮ А нам нужна прослеживаемостьlebensvoll
Кто бы ты ни был, мир в твоих руках
Сообщение отредактировал lebensvoll - Среда, 02.12.2020, 18:33
нажимаешь подтверждаешь действие сохранить и ни фига
Существует несколько способов сохранить книгу:
меню Файл -> Сохранить;
меню Файл -> Сохранить как;
Дискетка - кнопка на панельке;
клавиатурная комбинация - Ctrl+S;
автоматическое сохранение при закрытии книги, в которой есть несохраненные изменения;
и, наконец, придуманный Вами VBA-способ - Sub SaveAs_Now().
При любом из этих способов срабатывает Workbook_BeforeSave, а у Вас там прописана отмена сохранения - Cancel = True, т.е. при любой попытке сохраниться, Вы отменяете сохранение. Поэтому и нифига.
Ribbon XML Editor для вашей задачи не подходит. Вам нужно перелапатить еще одну тему - "Excel VBA события рабочей книги". Например, Workbook_AfterSave, Workbook_BeforeSave, Workbook_BeforeClose и пр.
нажимаешь подтверждаешь действие сохранить и ни фига
Существует несколько способов сохранить книгу:
меню Файл -> Сохранить;
меню Файл -> Сохранить как;
Дискетка - кнопка на панельке;
клавиатурная комбинация - Ctrl+S;
автоматическое сохранение при закрытии книги, в которой есть несохраненные изменения;
и, наконец, придуманный Вами VBA-способ - Sub SaveAs_Now().
При любом из этих способов срабатывает Workbook_BeforeSave, а у Вас там прописана отмена сохранения - Cancel = True, т.е. при любой попытке сохраниться, Вы отменяете сохранение. Поэтому и нифига.
Ribbon XML Editor для вашей задачи не подходит. Вам нужно перелапатить еще одну тему - "Excel VBA события рабочей книги". Например, Workbook_AfterSave, Workbook_BeforeSave, Workbook_BeforeClose и пр.CaramelManiac
Сообщение отредактировал CaramelManiac - Четверг, 03.12.2020, 02:07
Народ всем огромнейшее спасибо за отзывчивость и за подсказки. Но для окончательного своего решения я нашел выход не без помощи интернета конечно: В модуль вставил код
[vba]
Код
Sub МенюСкрыть() Dim iComBar As CommandBar For Each iComBar In Application.CommandBars iComBar.Enabled = False Next Application.DisplayFullScreen = True End Sub Sub МенюПоказать() Dim iCommandBar As CommandBar For Each iCommandBar In Application.CommandBars iCommandBar.Enabled = True Next Application.DisplayFullScreen = False End Sub Sub Auto_open() Sheets("Лист1").Select Range("A1") = Date Range("M1") = "" Range("A1").Select End Sub
[/vba]
Который скрывает всю панель инструментов полностью при открывании книги Ну а на лист вешаем другой код
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$M$1" Then If Target = 777 Then МенюПоказать Else МенюСкрыть End If End If Range("A1").Select End Sub
[/vba]
Также имеется и пароль о котором я буду только знать (М1) изменю а то и не найти потом И все!!! Тем самым мы оператора просто ЗАСТАВИМ работать через кнопку на листе нажал сохранил
Надеюсь они этого не знают
Цитата
Ctrl+S Сохранить активную книгу. F12 Сохранить активную книгу с другим именем, открывает диалоговое окно Save as (Сохранить как).
Народ всем огромнейшее спасибо за отзывчивость и за подсказки. Но для окончательного своего решения я нашел выход не без помощи интернета конечно: В модуль вставил код
[vba]
Код
Sub МенюСкрыть() Dim iComBar As CommandBar For Each iComBar In Application.CommandBars iComBar.Enabled = False Next Application.DisplayFullScreen = True End Sub Sub МенюПоказать() Dim iCommandBar As CommandBar For Each iCommandBar In Application.CommandBars iCommandBar.Enabled = True Next Application.DisplayFullScreen = False End Sub Sub Auto_open() Sheets("Лист1").Select Range("A1") = Date Range("M1") = "" Range("A1").Select End Sub
[/vba]
Который скрывает всю панель инструментов полностью при открывании книги Ну а на лист вешаем другой код
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$M$1" Then If Target = 777 Then МенюПоказать Else МенюСкрыть End If End If Range("A1").Select End Sub
[/vba]
Также имеется и пароль о котором я буду только знать (М1) изменю а то и не найти потом И все!!! Тем самым мы оператора просто ЗАСТАВИМ работать через кнопку на листе нажал сохранил
Надеюсь они этого не знают
Цитата
Ctrl+S Сохранить активную книгу. F12 Сохранить активную книгу с другим именем, открывает диалоговое окно Save as (Сохранить как).