Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

21 Март 2019, 15:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Здравствуйте! Необходимо реализовать 2 задачи в макрос...  (Прочитано 4277 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ForumOOo (бот)

Offline Offline

Сообщений: 675


« Стартовое сообщение: 17 Апрель 2015, 07:05 »

Компонент: Calc
Версия продукта: 4.2.x
Сборка:  de093506bcdc5fafd9023ee680b8c60e3e0645d7
ОС: XP

Здравствуйте! Необходимо реализовать 2 задачи в макросе.
Задача 1:
Скрывать строки по значениям =0 в выделенном диапазоне ячеек столбца
одной кнопкой.
В двух листах. В обоих листах диапазон ячеек различный.
Другой кнопкой раскрывать эти строки.
Подробнее. Имеется скажем столбец с диапазоном ячеек D8-D185 на одном
листе и B6-B186 на другом листе. Для 1 кнопки: при значении ячейки
столбца=0 скрывать всю строку. Для кнопки 2: при значениях ячейки
столбца>0 показывать строку.

Задача2:
По нажатию кнопки, в новую книгу копировать заданный диапазон ячеек с
одного листа. Причем копируются только значения без формул!
Подробнее. В книге имеется несколько листов. При нажатии кнопки
открывается новая книга с одним листом и на него копируются выделенный
диапазон ячеек например A1-F100 с первого листа без формул, только
полученные значения.

--
Подпись: nivalenov
Эл. почта: nivalenov@deltateh.ru
Записан
nivalenov
Участник
**
Offline Offline

Сообщений: 7


« Ответ #1: 20 Апрель 2015, 09:00 »

Приложил документ.
На листах "смета" и "КС-2" по нажатию кнопки необходимо показать все строки столбца "количество" т.е. значения столбца >=0
И наоборот по нажатию другой кнопки на этих листах показать строки где значения столбца "количество" >0.
Включаю запись макроса, выделяю столбец, применяю фильтр. Пишется только выделение. Помогите.


Также хотелось бы при нажатии кнопки открывать новую книгу и копировать в нее выделенные значения листа "смета" A1:G732 (без формул только полученные результаты.
Это вообще не представляю как сделать. Непонимающий

* эксперимент.ods (200.25 Кб - загружено 12 раз.)
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 656


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #2: 20 Апрель 2015, 10:40 »

На листах "смета" и "КС-2" по нажатию кнопки необходимо показать все строки столбца "количество" т.е. значения столбца >=0
И наоборот по нажатию другой кнопки на этих листах показать строки где значения столбца "количество" >0.
Вам всё понятно из процитированного?
Включаю запись макроса, выделяю столбец, применяю фильтр. Пишется только выделение. Помогите.
Макрос не нужен. Выделяйте не весь столбец, а нужный диапазон от ячейки D9(это будет заголовок диапазона с кнопкой фильтра) до D710 (если я правильно понял нижнюю границу диапазона). Раскрыв выпадающее меню фильтра вы увидите список значений фильтрации и две нужные вам кнопки(в красной рамке на снимке "Кнопки фильтра"). Левая кнопка "Показать только текущий элемент" , правая "Скрыть только текущий элемент". По умолчачию всегда выделен первый элемент списка — в нашем случае 0
Также хотелось бы при нажатии кнопки открывать новую книгу
Это делается шорткатом. См. снимок "Кнопка нового листа"
и копировать в нее выделенные значения листа "смета" A1:G732 (без формул только полученные результаты.
В адресном окне раскрываете список именованных диапазонов и выбираете нужный, он выделится, копируете, переключаетесь в новый документ и в меню "Правка" жмёте "Вставить как...". см. снимки


* Кнопки фильтра.png (47.76 Кб, 383x559 - просмотрено 37 раз.)

* Кнопка нового листа.png (62.63 Кб, 619x126 - просмотрено 19 раз.)

* Выбрать диапазон.png (38.99 Кб, 341x259 - просмотрено 23 раз.)

* Вставить как.png (98.82 Кб, 703x553 - просмотрено 30 раз.)
Записан

nivalenov
Участник
**
Offline Offline

Сообщений: 7


« Ответ #3: 20 Апрель 2015, 11:00 »

Спасибо!
 

Включаю запись макроса, выделяю столбец, применяю фильтр. Пишется только выделение. Помогите.
Макрос не нужен. Выделяйте не весь столбец, а нужный диапазон от ячейки D9(это будет заголовок диапазона с кнопкой фильтра) до D710 (если я правильно понял нижнюю границу диапазона). Раскрыв выпадающее меню фильтра вы увидите список значений фильтрации и две нужные вам кнопки(в красной рамке на снимке "Кнопки фильтра"). Левая кнопка "Показать только текущий элемент" , правая "Скрыть только текущий элемент". По умолчачию всегда выделен первый элемент списка — в нашем случае 0
Я впринципе так и работаю. Просто хотелось бы ускорить нажатием кнопочки. Возможно это делать через макрос?
Также хотелось бы при нажатии кнопки открывать новую книгу
Это делается шорткатом. См. снимок "Кнопка нового листа"
и копировать в нее выделенные значения листа "смета" A1:G732 (без формул только полученные результаты.
В адресном окне раскрываете список именованных диапазонов и выбираете нужный, он выделится, копируете, переключаетесь в новый документ и в меню "Правка" жмёте "Вставить как...". см. снимки
[/quote]
Спасибо, про выделенные значения не знал. Но опять же хотелось бы делать все в один клик. Такое возможно?
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 656


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #4: 20 Апрель 2015, 23:26 »

То, что вы цитируете только себя любимого — это здорово, но то, что вы отвечаете моими словами на ваши цитаты — это уже тянет на плагиат Смеющийся

Просто хотелось бы ускорить нажатием кнопочки. Возможно это делать через макрос?
Можно, см. документ "эксперимент с кнопками.ods"
Но опять же хотелось бы делать все в один клик. Такое возможно?
В принципе тоже можно, если знать все подробности что именно копировать, но думаю лучше и проще делать это в ручную.

* эксперимент с кнопками.ods (204.69 Кб - загружено 24 раз.)
Записан

nivalenov
Участник
**
Offline Offline

Сообщений: 7


« Ответ #5: 21 Апрель 2015, 05:02 »

простите, с цитатами, я не опытный пользователь форумов )
и спасибо за помощь!
Записан
nivalenov
Участник
**
Offline Offline

Сообщений: 7


« Ответ #6: 21 Апрель 2015, 05:17 »

Решил сделать по-другому. Это я про задачу 2. Выделенный фрагмент сразу экспортировать в PDF, этот макрос легко записывается, вот только экспортирует весь документ и код какой-то страшный)). подскажите как прописать параметры для экспорта выделенной области?


sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "_xlnm.Print_Area (Смета)"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "URL"
args2(0).Value = "file:///C:/Documents%20and%20Settings/%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9%20%D0%9D%D0%B8%D0%B2%D0%B0%D0%BB%D0%B5%D0%BD%D0%BE%D0%B2/%D0%A0%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B9%20%D1%81%D1%82%D0%BE%D0%BB/%D1%8D%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%82.pdf"
args2(1).Name = "FilterName"
args2(1).Value = "calc_pdf_Export"
args2(2).Name = "FilterData"
args2(2).Value = Array(Array("UseLosslessCompression",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Quality",0,90,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ReduceImageResolution",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTaggedPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SelectPdfVersion",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ViewPDFAfterExport",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarks",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("AllowDuplicateFieldNames",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Changes",0,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableCopyingOfContent",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportLinksRelativeFsys",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ConvertOOoTargetToPDFTarget",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarksToPDFDestination",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("_OkButtonString",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Watermark",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EncryptFile",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPasswords",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPermissionPassword",0,Array(),com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Selection",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureLocation",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureReason",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureContactInfo",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignaturePassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureCertificate",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))

dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args2())


end sub
Записан
nivalenov
Участник
**
Offline Offline

Сообщений: 7


« Ответ #7: 28 Апрель 2015, 14:32 »

Уважаемый rami, как отредактировать ваш макрос чтобы фильтровал до 713 строки, а не до 710. Никак не могу понять.
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 656


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #8: 28 Апрель 2015, 14:46 »

В меню "Вставка" —> "Названия" выберите "Управление...", в открывшемся окне замените 0 на 3, как на снимке:


* Управление названиями.png (79.7 Кб, 557x467 - просмотрено 33 раз.)
Записан

Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!