Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Как составить список содержимого папки в VBA
 
Здравствуйте! Скажите, пожалуйста, как написать макрос, который бы показывал содержимое какой-либо папки?
Например, в ячейке A1 написан полный адрес некой папки, данная ячейка выделена. Нужен макрос, который бы под данной ячейкой в столбце сформировал бы перечень ее содержимого - как вложенных папок, так и файлов (как на фото). Возможно ли это?

Заранее большое спасибо!
Плагины в Р7-Офис. Обучение.
 
Здравствуйте. Необходимо научиться писать плагин для Р7-Офис на JavaScript.
Базовая информация по этой теме есть тут:
Как писать плагины

Но я очень плохо понимаю и нужен какой-то старт. Ищу, кто разбирается в таблицах и JS одновременно. Мне необходимо в целях изучения написать плагин для P7, который выполняет просто следующие действия: 1. выдает cообщение "Hello, world" 2. Проставляет в ячейку А1 активного листа  фразу "hello, world". Пока все, вероятно дальнейшее сотрудничество. Хочу предложить 2000 рублей. Спасибо.
Изменено: Rigel44 - 18.05.2024 00:46:21
Личная книга макросов в Р7-Офис
 
Здравствуйте! Пытаюсь импортозаместиться) Скажите, пожалуйста, в Р7-Офис как сделать личную книгу макросов и сохранить туда нужные макросы, чтобы к ним был доступ все время? Кто-нибудь знает? По умолчанию сохраняются только в конкретный файл. Или нужно плагин писать для этого?
Заранее спасибо! Модераторам хотел бы предложить создать отдельную ветку форума по Р7, вопросы появляются у многих, было бы полезно. Спасибо
MsgBox в Офис Р-7
 
Здравствуйте! Начал изучать Р7, не могу понять, как выводить на JS окно сообщения? alert(“hello world”) не работает. А как надо, кто-то знает? Спасибо
Как запустить поиск решения (Solver) из надстройки VBA?
 
Здравствуйте, уважаемые знатоки!

У меня такой вопрос. Хочу, чтобы у меня в надстройке .xlam был макрос, который бы подбирал нужный мне параметр через поиск решения (Solver). Мастер макросов в файле пишет следующий код:

Код
Sub Macro1()
    SolverOk SetCell:="$C$6", MaxMinVal:=3, ValueOf:=8, ByChange:="$C$4", Engine:=1 _
        , EngineDesc:="GRG Nonlinear"
    SolverOk SetCell:="$C$6", MaxMinVal:=3, ValueOf:=8, ByChange:="$C$4", Engine:=1 _
        , EngineDesc:="GRG Nonlinear"
    SolverSolve
End Sub


В обычной книге Excel он запускается нормально (предварительно подключаю в VBA в refenences инструмент Solver). Засовываю код в надстройку - не работает, т.к. в ней Solver не подключен. Подключаю Solver в надстройке - получается он вступает в конфликт с Solver в файле и надстройка не запускается после этого. Короче вопрос такой: как не подключая Solver в надстройке применять функцию поиска решения, если Solver подключен в самом файле. Надеюсь, понятно объяснил. Заранее спасибо
Как поменять изображение на кнопке формы VBA через макрос?
 
Добрый день! Есть модуль формы VBA. Можно ли как-то программно (через макрос) поменять атрибут Picture на кнопке формы. Объясню зачем: у меня много кнопок на форме и нужно сразу на всех поменять картинки.

Спасибо!!
Как открыть ссылку макросом НЕ через IE?, Как открыть ссылку браузером по умолчанию или MS Edge?
 
Добрый день! Все решения по открыванию интернет-сайта по ссылке через VBA, которые я видел, открывают его в Internet Explorer. Ни для кого не секрет, что он загибается. Как открыть ссылку браузером по умолчанию или хотя бы MS Edge? Спасибо!
Как программно получить список модулей VBA?
 
Добрый день! Есть необходимость получить программно список модулей проекта, но не просто список, а с указанием типа (модуль книги, модуль листа, модуль формы, простой модуль процедур или модуль класса). Просто список модулей не сложно, а какое свойство отвечает за тип модуля? Заранее спасибо
Как программно выделить группу листов?
 
Добрый день! Хочу написать макрос, который выделял бы листы по определенному критерию, например, выделял бы листы, ярлычки которых залиты в красный цвет.
Мастер макросов записывает операцию выделения листов через функцию Array:

Код
Sheets(Array("Лист1", "Лист2", "Лист3")).Select

Понимаю, что через цикл могу сформировать массив имен листов, которые мне нужно выделить, но как их "засунуть" в функцию Array программно?

Возможно ли это? Надеюсь, объяснил понятно. Заранее благодарю!

Узнать через vba, содержит ли файл определенный макрос?
 
Добрый день! Подскажите, пожалуйста, возможно ли через макрос узнать, есть ли в данной книге макрос с определенным именем, в частности, Workbook_open? Спасибо!
Как в VBA присвоить объектной переменной файл?
 
Здравствуйте! Как правильно записать присвоение файла объектной переменной, если знаешь его адрес?

Что-то типа этого...
Код
Dim F as Object
Set F="C:\Users\User\Desktop\Тест v1.xlsb"



Как это корректно записать? Спасибо!
Изменено: Rigel44 - 23.05.2019 23:41:29
Как программно задать разрешение на редактирование диапазона конкретным пользователям?
 
Здравствуйте, уважаемые специалисты!

Появилась необходимость программно выдать права пользователям на редактирование диапазонов. Включив мастер макросов, задаю защищенный диапазон с паролем, дав при этом разрешение одному пользователю:
Код
Sub Макрос1
   
 ActiveSheet.Protection.AllowEditRanges.Add Title:="Диапазон1", Range:=Range _
        ("F6"), Password:="1"  
 
End Sub

Как видно мастер не записал разрешение на имя пользователя, тем не менее следующий код выдает верное имя пользователя:

Код
Sub Макрос2()   

   MsgBox ActiveSheet.Protection.AllowEditRanges(1).Users(1).Name

End Sub

По логике хочу программно задать еще одного пользователя:
Код
Sub Макрос13()

    ActiveSheet.Protection.AllowEditRanges(1).Users.Add Name:="User"
        
End Sub
Под User пишу, конечно, определенное имя..
Но этот код не работает. В чем ошибка?

Заранее благодарю!
Изменено: Rigel44 - 18.04.2019 23:24:18
Как проверить ячейку на наличие выпадающего списка через VBA?
 
Здравствуйте! Заинтересовал вопрос как проверить ячейку на наличие выпадающего списка через макрос. Вернее, как проверить я знаю примерно, мне нужно написать макрос, который последовательно бы сообщал для выделенного диапазона, есть ли в ячейке выпадающий список или нет. Идея была такая:
Код
Sub WhereDrop()
On Error GoTo Iferr
    
    For Each cell In Selection
        If cell.Validation.Type = 3 Then
            MsgBox "Есть выпадающий список"
            GoTo nextcl
        End If
            
Iferr:
        MsgBox "Нет выпадающего списка"
        
nextcl:
    Next cell
    
End Sub
Вроде, поначалу работает, но начинает глючить на 4 шаге, что не так делаю, не могу понять????
Можно ли в VBA в Excel получить коллекцию электронных адресов учетных записей из MS Outlook?
 
Добрый день, уважаемые знатоки Excel!

Делаю форму VBA, в которой хочу, чтобы проставлялся автоматически e-mail из учетной записи MS Outlook.
Возможно ли такое реализовать в VBA? Заранее спасибо
Можно ли получить программно адрес скопированной в буфер обмена ячейки?
 
Добрый день! Вопрос в названии темы: можно ли скопировать в буфер, например,  ячейку A1, далее запустить макрос, который выдал бы сообщение A1? Доступ к значению в буфере получить не сложно, а вот можно ли вернуть именно адрес ячейки? Заранее благодарю
Можно ли программно через VBA узнать, содержит ячейка обычную формулу или же формулу массива?
 
Уважаемые знатоки, вопрос, собственно в названии темы. Можно программно проверить ячейку на наличие формулы массива? Заранее благодарю
Как отредактировать через VBA выделенный ряд диаграммы?
 
Добрый день, уважаемые знатоки! Хочу написать макрос, который, например, окрашивает в нужный цвет ВЫДЕЛЕННЫЙ ряд на диаграмме. Возможно ли это вообще? Макрорекордер не записывает так как  нужно. Спасибо!
Не работают макросы 32бит в Excel 2016/64бит, Ошибка Object library invalid or contains references to object definitions that not be found
 
Добрый день! Может кто сталкивался - файл с макросами, а также надстройки созданы в Excel 2013 32-бит.
При открытии файлов в Excel 2016 64-бит ничего не запускается. При запуске файла вылезает: "Compile error in hidden module...", при запуске самих макросов вылезает: "Object library invalid or contains references to object definitions that not be found".

На форуме есть про это старая тема https://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=8&TID=37569, там дана ссылка вроде как на решение, но она уже не открывается.

Я так понимаю, каких-то библиотек не хватает. Но пробовал на другом компьютере запустить тоже Excel 2016 - там работает!
Сталкивался ли кто-то с проблемой?
Запрос к интернет сайту через VBA, получить информацию с сайта
 
Добрый день! Может ли кто-то направить меня. Есть сайт и есть файл Эксель. Нужно, чтобы по запросу в файл Эксель с сайта попадало значение, например, цена товара. В связи с этим 2 вопроса:
1. Как сделать запрос к сайту из файла Эксель (без открытия браузера)
2 Что нужно на сайте сделать чтобы этот запрос работал.

спасибо!!
Как организовать систему "личных кабинетов" в файле Excel., Различные права чтения и записи при открытии файла разными пользователями.
 
Добрый день, уважаемые знатоки.
У меня вопрос не практический, а больше теоретический, надеюсь, его можно здесь задать.

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

Рассматривал варианты:
Вариант 1.
В зависимости от пользователя на листе макросом скрывались бы и защищались бы различные колонки. Но! В общем доступе нельзя управлять параметрами защиты листов, т.е. не получится снять защиту, разблокировать ячейки и потом снова поставить защиту.

Вариант 2
У каждого пользователя свой лист с уже настроенными правами чтения и записи, а также общий лист-база. Через процедуру Worksheet_Change изменяемый лист синхронизировался бы каждый раз с базой. Но, все равно не понятно, как обновлять информацию в столбцах, которые защищены без снятия с них защиты. К тому же при открытии файла необходимо всю базу копировать на лист пользователя, что занимает долгое время.

Надеюсь, что-то понятно из того что я написал. Сталкивался ли кто-то, есть ли какие-то мысли? Большое спасибо!

 
Как на VBA создать выпадающий список полей "умной таблицы"
 
Добрый день, знатоки Excel!
Необходимо написать макрос, который бы формировал выпадающий список полей "умной таблицы".

Пишу вручную, записываю мастером макросов:
Код
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=ДВССЫЛ(""Таблица1[#Заголовки]"")"
    End With
Потом запускаю - выдает ошибку 1004. Пробовал по-английски так:
Код
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=INDIRECT(""Таблица1[#Заголовки]"")"
    End With
Опять ошибка. Пробовал так:    
Код
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=INDIRECT(""Таблица1[#Headers]"")"
    End With
Что интересно, ошибки нет, но вставляется в проверку данных такая лабуда: =ДВССЫЛ("Таблица1[#Headers]") и, конечно, не работает.

Сломал всю голову уже, помогите, что не так делаю?
Вопрос по XML. Какое свойство кнопки с меню (splitButton) изменяет подпись элемента на ленте?
 
Добрый день! Как на xml в ленте изменить имя кнопки с меню (splitButton), какое свойство за это отвечает? Атрибута "label" у splitButton ведь нет.
Делаю  кнопку с меню, пишу в xml:
Код
                    <splitButton id="sp1" size="large">
                            <menu id="m1" imageMso="AdpStoredProcedureQueryDelete" label="Мои макросы">
                                <button id="b1" imageMso="AdpStoredProcedureQueryAppend" onAction="AAA1" label="Макрос1" />                                                    
                                <button id="b2" imageMso="AdpStoredProcedureQueryAppend" onAction="AAA2" label="Макрос2"/>
                            </menu>    
                    </splitButton>

Надпись на меню берется от первой кнопки. Мне нужна другая надпись. Например так, как во вложении стандартная кнопка.

Спасибо!

Помощь по XML. Как сделать фиксирующую кнопку (toggleButton) на ленте динамической?
 
Добрый день, уважаемые знатоки. Вопрос по работе с фиксирующей кнопкой на ленте, может кто-то подскажет.
Формирую для надстройки на ленте фиксирующую кнопку, например, стандартную функцию выделение шрифта жирным.

В xml схеме прописываю:
Код
<toggleButton id="m111" getPressed="Mac_BoldGetPR" onAction="Mac_Bold"/>
                   
В макросах прописываю:
Код
Sub Mac_Bold (control As IRibbonControl, ByRef Pressed) 'непосредственно макрос
   Selection.Font.Bold = Not Selection.Font.Bold
End Sub

Sub Mac_BoldGetPR(control As IRibbonControl, ByRef Pressed) 'макрос на свойство GetPressed
    Pressed = Selection.Font.Bold
End Sub

Все работает, кнопка фиксируется, макрос запускается. Внимание вопрос - как сделать так, чтобы кнопка обновлялась при обновлении листа. Например, чтобы при выделении ячейки с жирным шрифтом, кнопка была бы нажата, а при выделении ячейки без жирного шрифта - отжималась и т.д. Вобщем так, как это происходит со стандартными фиксирующими кнопками на Главной вкладке.
При моем коде кнопка всегда остается в одном положении.

В приложении пример надстройки с данной командой.

Заранее спасибо.
Изменено: Rigel44 - 22.06.2017 00:11:04
Как программно изменить свойства элемента формы?
 
Возможно ли изменить свойства элементов формы не в процессе её работы, а из простого модуля?
что-то вроде этого:
Код
Sub ChangeForm()
UserForm1.Label1.Caption = "NewCaption"
End Sub

Для чего это нужно:
Например, в форме сто полей и хочется их массово переименовать и т.д.
Страницы: 1
Наверх