Страницы: 1
RSS
Создать новую книгу со списком документов
 
Добрый день! Уважаемые АСы Excel пжл разрешите такую задачу. Формирую с помощью вкладки "мех" список документов во второй вкладке. Требуется чтобы список выводился отдельным файлом , а не внутри этой книги.
 
Лена11, так?
 
Доброе утро! изменений не заметила(( сейчас список формируется на отдельной вкладке, а требуется в отдельном файле.
т.е. файл "мех" = будет как будто генератор новых многих файлов где будут уже списки.
 
т.к. непонятно как файлы должны называться, то наименование сделал "Список" а в скобках генерится ID. Совпадение сохраняемого файла с уже существующим возможно, но думаю процент его не очень большой
Изменено: Nordheim - 28.01.2020 08:51:02
"Все гениальное просто, а все простое гениально!!!"
 
да отлично! Nordheim, вы мне только подскажите пжл - файл "мех" я облегчила - на самом деле в нем будут еще вкладки - сейчас я в ваш тест - добавила ихи - акт и вкладка = что изменить в коде чтобы все вкладки совместно со списком тянулись но КРОМЕ "мех". а название будет по номеру (выделен оранжевым во вкладке акт).
 
Цитата
Лена11 написал: Доброе утро! изменений не заметила((
Доброе. Не уж то вообще ничего не заметили? Запускаете макрос, создается новая книга со "списком", все тоже самое, что и  Nordheim прислал, только сохраняется не автоматически.
Поэтому спрошу еще раз, как вы проверяете так, что ничего не видите?
 
ААА, OblivionR - прошу понять и простить) - действительно оно так как вы говорите - вижу!) такое решение тоже интересно!
 
Цитата
Лена11 написал:
что изменить в коде чтобы...
Так?
 
Да так, - запустила через разработчик, почему через кнопку выдает ошибку?
 
Код
Sub main()
    Application.ScreenUpdating = False
    ThisWorkbook.Worksheets(Array("список", "акт", "вкладка")).Copy
    ActiveWorkbook.SaveAs ThisWorkbook.Path & Application.PathSeparator & Worksheets("акт").[c3].Value & ".xlsx"
    ActiveWorkbook.Close
    Application.ScreenUpdating = True
End Sub
Изменено: Nordheim - 28.01.2020 09:41:39
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Лена11 написал:
почему через кнопку выдает ошибку?
Не назначил потому что макрос.
Если что просто жмете пкм на кнопку и назначаете его.
Изменено: OblivionR - 28.01.2020 09:45:56
 
Ребята спасибо вам большое за помощь!!!все так!
 
Товарищи добрый день! все проверила еще раз - в списках которые выводятся отдельным файлом - отсутствуют выбранные галочки(( Пожалуйста помогите внести корректив
 
Цитата
Лена11 написал:
отсутствуют выбранные галочки
Что за галочки?
"Все гениальное просто, а все простое гениально!!!"
 
Лена11, вы о чем, какие галочки? Что просили то и получили.
 
Боже! это первый опыт(.
в общем разобралась - все работает - но при сохранении отдельного файла (по номеру из акта) данные в списке находятся до той поры - пока эти данные числятся в основном файле - мех. потому как работает формула =ЕСЛИОШИБКА(ИНДЕКС(мех!$E$1:$E$20;АГРЕГАТ(15;6;СТРОКА(мех!$E$1:$E$20)/(мех!$F$1:$F$20);СТРОКА(I1)));"").
А следовало бы чтобы данные фиксировались постоянно в новом файле - как это сделать не просто копируя значения левой кнопкой мыши?
 
Код
Sub main()
   dim book as WorkBook,sht as Worksheet
    Application.ScreenUpdating = False
    ThisWorkbook.Worksheets(Array("список", "акт", "вкладка")).Copy
    Set book = ActiveWorkbook
   book.SaveAs ThisWorkbook.Path & Application.PathSeparator & Worksheets("акт").[c3].Value & ".xlsx"
    for each sht in book.Worksheets
      sht.Usedrange.value = sht.Usedrange.value
   next sht
   book.Close true
    Application.ScreenUpdating = True
End Sub
Изменено: Nordheim - 29.01.2020 14:03:31
"Все гениальное просто, а все простое гениально!!!"
 
Ругается на сттрочку
Код
  For Each sht In book.ThisWorkbook.Worksheets

ошибка 438
Изменено: Лена11 - 17.02.2020 19:34:44
 
Изменил в сообщении #17. ThisWorkbook. лишнее.
"Все гениальное просто, а все простое гениально!!!"
 
фуф! работает) спасибо!
 
Доброе утро! снова пришлось обратиться к вам - в нашем последнем файле возник нюанс - помогите пжл. Мы убирали все формулы при сохранении отдельным файлом - НО - нужно убрать их только во вкладке - СПИСОК, причем только в диапазоне самого перечисления документов - например -B13:E19, в остальных вкладках формулы нужны.
 
Код
    for each sht in book.Worksheets
      sht.Usedrange.value = sht.Usedrange.value
   next sht

Замените на
Код
worksheets("СПИСОК").[b13:e19].value = worksheets("СПИСОК").[b13:e19].value
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, благодарю!
Страницы: 1
Наверх