Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 138 След.
Восстановление связи с Ribbon
 
Александр, спасибо, что подняли данную тему о Ribbon.
В теме "Восстановление связи с Ribbon", Евгений (Автор темы) привел полезный код с решением, Вы его подправили – замечательно! Но указали, что в некоторых случаях у Вас  #If VBA7 не работает, что не совпадает с опытом участников форума и что вызвало интерес.  Но Вы ещё посоветовали в VBA Excel не использовать такой вариант применения операторов условной компиляции, что уже явно противоречит общепринятой практике и моей, в частности. При попытке уточнить проблему, ответов на мои конкретные вопросы получено не было, пример пустой книги с проблемой не приложен.  Ответы важны для наc, так, например, если Вы участвуете в 'Программе предварительной оценки Office (Insider)', то для меня это вполне себе объяснение (не протестированные до конца  версии, чего только там не бывает), но чтобы в будущем можно было бы объяснять подобные проблемы другим, мне хотелось бы узнать в какой версии и сборке проявились такие глюки. Это не важно Вам, но важно для меня.

Возможно, ответ по проблеме был в ответе Владимиру (Sokol92) в #10:
"Уважаемый sokol92, вы совершенно правильно поняли, и абсолютно правы"
То есть, ошибка была в Conditional Compilation Arguments? Уточните, пожалуйста.

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

Затем обозначена еще одна проблема с References из одного приложения на другое, здесь понятны как причины, так и варианты решений (VBA не при чем, это известная и давно описанная особенность компилирования). Проблема уже обсуждалось на форуме, искать не буду, но могу еще раз кратко написать. Только, может, все же не станем такую полезную тему по Ribbon оттенять другими вопросами?
Изменено: ZVI - 16 Окт 2019 23:51:58
Восстановление связи с Ribbon
 
Цитата
Ткач Александр написал: я просто исключил коды, которые могут вызвать сбои...
Александр, Ваше решение выстрадано и понятно, но мне интереснее попытаться понять причину, поэтому и попросил Вас уточнить номер версии, сборки и типа подписки MS Office, а также поделиться пустой книгой с кодом, который дает подобные сбои.
Восстановление связи с Ribbon
 
Ни разу не сталкивался с подобной проблемой. Подобная конструкция кода используется многими коммерческими надстройками.
Специально обновил сейчас  MS Office профессиональный плюс 2016 с 1909 (сборка 12026.20320) Monthly Channel до 1909 (сборка 12026.20334) - всё работает штатно.
Уточните, пожалуйста, версию и  номер сборки Вашего MS Office, а главное - канал подписки, с которым происходят такие сбои, как в сообщении 10.
Интересно было бы посмотреть и новую книгу с таким кодом, которая у Вас не компилируется.
Возможно, у Вас включена Программа предварительной оценки Office (Insider), с этой подпиской многое чего случается, т.к., по сути, это версия бета-тестирования.
макрос excel на анализ входящей почты outloock и отправку файла excel
 
Михаил, а при чём другие правила, выполняемые на сервере, в данном случае?
Автор темы же написала, что получает письма, а код их и перехватит без всяких правил.
макрос excel на анализ входящей почты outloock и отправку файла excel
 
Цитата
БМВ написал: ...Как отслеживать событие нового сообщения тогда?
Добрый вечер, Михаил.
В Outlook код модуля ThisOutlookSession:
Код
Option Explicit

Private WithEvents objItems As Outlook.Items

Private Sub Application_Startup()
  Set objItems = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub objItems_ItemAdd(ByVal Item As Object)
  
  Dim x As MailItem
  
  If Item.Class <> olMail Then
    Exit Sub
  Else
    Set x = Item
  End If
  
  ' Your code goes here
  MsgBox "Message subject: " & x.Subject & vbLf _
       & "Message sender: " & x.SenderName & " (" & x.SenderEmailAddress & ")"

End Sub
Изменено: ZVI - 8 Окт 2019 20:03:43
макрос excel на анализ входящей почты outloock и отправку файла excel
 
Не нужно для этого использовать правила, если включение макросов Outlook не заблокировано, то макросами все можно и сделать.
Макрос: сумма/разница значений ячеек по условию
 
Цитата
БАТОНОВОЗ написал: Прописываю в условие "Х" английскую , то при срабатывании , выдает ошибку .
Какое условие и какую именно ошибку? Лучше приложите проблемный пример и поясните порядок действий, приводящих к ошибке,
Макрос: сумма/разница значений ячеек по условию
 
Цитата
БАТОНОВОЗ написал:Вот файл
В приложенной книге Worksheet_SelectionChange, а  в сообщении #10 же Worksheet_Change
Нужно было просто скопировать код из того сообщения и вставить в модуль листа.
Как сделать, чтобы все файлы Excel открывались и закрывались "одним блоком"?
 
Цитата
Юрий М написал: ... и это Вы пишете на форуме фанатов Excel?
Правила: п.3 Запрещено ... 3.4. Оскорблять кого-либо в прямой или косвенной форме  ;)
VBA. Ошибка. File not found: olepro32.dll
 
Для 64-битной версии используйте:
Код
Private Declare PtrSafe Function OleCreatePictureIndirect Lib "oleaut32.dll" (PicDesc As uPicDesc, RefIID As GUID, ByVal fPictureOwnsHandle As LongPtr, IPic As IPicture) As LongPtr
Изменено: ZVI - 3 Сен 2019 17:45:58
Открыть уже открытую книгу VBA
 
Можно, например,  открывать только для чтения: Set oWbk = Workbooks.Open(ПутьКкниге, ReadOnly:=True)
Проверка для активной книги - "ThisWorkbook" или "ЭтаКнига", для русской версии используется ссылка на ЭтаКнига. Для английской ThisWorkbook
 
Всем - привет. Можно проще: Set objVBComp = objVBProj.VBComponents(ActiveWorkbook.CodeName)
Изменено: ZVI - 18 Авг 2019 02:01:48
Разрушительный сбой системы после установки PLEXa, Сбой в работе системы и Екселя после установки PLEXa
 
Цитата
taigor написал: ... работает
Значит, VBA установлен корректно. Попробуйте еще отключить защищенный просмотр (см. 2-ю половину сообщения #4).
Разрушительный сбой системы после установки PLEXa, Сбой в работе системы и Екселя после установки PLEXa
 
Нет ответа на важный вопрос Николая: "Насчет ошибки - а ставили надстройку по инструкции (была в архиве)?".
Причину такого рода ошибок трудно диагностировать, попробуйте установить любую другую простенькую надстройку, например из этой темы. Если возникнет такая же ошибка, то, возможно, проблемы с установкой VBA (компонент может быть вообще не установлен, особенно, если это portable-суррогат).
На всякий случай попробуйте еще отключить защищенный просмотр: Excel - Файл - Параметры - Центр управления безопасности -  Параметры центра управления безопасности -  Защищенный просмотр - снять все флажки в группе "Защищенный просмотр" - OK - OK. При использовании защищенного просмотра не всякий код автозагрузки надстройки сработает корректно.
Изменено: ZVI - 9 Авг 2019 03:34:00
Cборка листов не совсем корректно работает, марос не удаляет лишние листыю, Сборка листов. Не удаляет лишние Листы
 
Цитата
AgPilot написала: все файлы эксель на компьютере - не хранятся. Все  хранится на one drive, а не на самом компе. Доступ к любому файлу - через синхронизацию с майкрософт one drive. P.S не вижу смысла файл прикладывать
Добрый день, Дарья.
Реально синхронизируемые файлы OneDrive хранятся на локальном компьютере внутри папки:
C:\Users\<Пользователь>\OneDrive\
Синхронизация означает, что внесенные Вами изменения в локальные файлы автоматически записываются и в соответствующие им файлы на OneDrive, и наоборот  - при изменениях кем-то другим данных в файлах на OneDrive, на локальные файлы почти сразу же "накатываются" эти изменения и тут же отображаются в открытой книге.
Есть некоторые особенности работы VBA-кода надстроек в Excel 365 в режиме автосохранения общей книги в облаке, они описаны в Как автосохранение влияет на надстройки и макросы

Попробуйте на панели быстрого доступа (Excel 365) отключить автосохранение книги в облаке. Если не поможет, то для выяснения причины лучше бы посмотреть на копию книги с удаленными данными (оставьте пару тестовых строк на листах).
И подробно опишите последовательность действий, например, так:
1. Выделить листы 1, 2 и 3
2. Вызвать Plex - Собрать
3. Установить: только с выделенных листов, начиная с ячейки A1, только значения, установить 3 нижних флажка, OK
Тогда Автору надстройки (Николаю Павлову) или, возможно, кому-то еще будет легче разобраться с проблемой.
В идеале, конечно, лучше бы получить ссылку на тестовую копию Вашей книги в OneDrive, с которой возникли проблемы.
Изменено: ZVI - 9 Авг 2019 04:06:50
bedvit. Как использовать решения автора, COM и XLL. Отличие и подключение
 
Цитата
Alec Perle написал: скобки там как бы и не нужны
Эти скобки еще и тормозят чрезмерно, так как для VBA они означают, что нужно создать временную переменную As Variant и в нее скопировать весь массив. Посмотрите, чего стоят лишние скобки на таком примере:
Код
Sub Test()
  
  Const rMax = 1000000
  Dim r As Long, t As Single, s As String, arr()
  
  s = String(2000, "x")
  ReDim arr(1 To rMax, 1 To 1)
  
  t = Timer
  For r = 1 To UBound(arr)
    arr(r, 1) = s
  Next
  Debug.Print 1, Round(Timer - t, 3)
  
  t = Timer
  Dummy arr  '<-- Суперскорость
  Debug.Print 2, Round(Timer - t, 3)
  
  t = Timer
  Dummy (arr) '<-- Супертормоз
  Debug.Print 3, Round(Timer - t, 3)
  
End Sub

Function Dummy(x)
  ' Do nothing
End Function
Изменено: ZVI - 3 Авг 2019 07:11:37
Как закрыть только windows(ThisWorkbook.name) при клике на Кнопку в userform?
 
Нужно учитывать, что бывает еще и невидимая личная книга макросов.
Код
Sub MyClose()
  Dim i As Long, wb As Workbook
  For Each wb In Application.Workbooks
    If wb.Windows(1).Visible Then
      i = i + 1
      If i > 1 Then Exit For
    End If
  Next
  If i = 1 Then
    MsgBox "Одна книга, приложение будет закрыто без сохранение активной книги"
    ActiveWorkbook.Saved = True
    Application.Quit
  Else
    MsgBox "Книг: " & i & " шт, активная будет закрыта без сохранения"
    ActiveWorkbook.Close SaveChanges:=False
  End If
End Sub
Изменено: ZVI - 30 Июл 2019 15:50:04
Защита книги от распространения
 
Цитата
Vitasik написал: Понятно, что он может пригласить знающего человека, но опять же вопрос, почему же он тогда собственно не обратился к этому знающему, для создания этого файла.
Совершенно верно.

По теме - если "заказчик файл этот раздал коллегам ...  и привязка к железу нежелательна", то заказчику позволено устанавливать на свои (читай - любые) компьютеры неограниченное количество копий. Таким образом, решения в принципе нет, потому что отличий свой-чужой нет. И VK не спасет – заведут общий аккаунт, например. Варианты обхода защит всегда возможны, но как Вы сами пишите - нужен здравый смысл, и он вполне достаточен на уровне защиты VBA-кода и элементарной привязки к чему-либо (реестру, наличию какого-то файла и т.п.).  Тот, кому защита нипочем, обычно и сам в силах написать более эффективные формулы и код. Но ему это будет неинтересно, и обычно у такого уровня спецов все в порядке с моральными принципами, игнорируйте такие случаи, иначе стоимость защиты станет неадекватной.

Конкретный совет - замените пару формул пользовательскими функциями VBA-надстройки, тогда без этой надстройки копировать книгу с формулами будет бесполезно, А надстройку привязывайте к чему-нибудь. Если заказчиков ожидается не более сотни (издержки сопровождения невелики), то пусть, например, при первой установке надстройка заглянет в реестр и, не обнаружив там чего-то (раздела, ключа, значения), сформирует бланк письма с запросом регистрационного кода, а по письму уже разбирайтесь, от кого оно пришло и что отвечать. Ответ от ранее зарегистрированных пользователей можно и автоматизировать средствами VBA, при этом можно ограничить количество или частоту новых инсталляций. Потом, после ввода заказчиком корректного регистрационного кода на запрос надстройки, она впишет необходимое в реестр и больше не будет тревожить заказчика. Код надстройки достаточно защитить штатным паролем.
Изменено: ZVI - 30 Июл 2019 06:28:50
Альтернативное назначение клавиш в Excel для переключения между листами
 
Виктория, надстройка уже создана, посмотрите приложение к сообщению  №5. Вам осталось только установить надстройку себе (как устанавливать - см. в том же сообщении).
Там и Alt-цифра работает для вызова действий добавленных на панель быстрого доступа кнопок, так как это штатная функциональность Excel
Напишите, если что-то будет непонятно.
Изменено: ZVI - 29 Июл 2019 22:00:44
Импорт данных из PDF в Excel, Как массово получить данные из PDF-файлов с текстовым слоем в Excel
 
Цитата
Jack Famous написал: ...спасибо за наводку!
Алексей, рад, что вариант решения нашелся.
Если есть Adobe Acrobat, то конечно им проще всего воспользоваться из-за интерфейса.
Удачи Вам!
Импорт данных из PDF в Excel, Как массово получить данные из PDF-файлов с текстовым слоем в Excel
 
Цитата
Jack Famous написал: ... но у нас с вами разные результаты...
Не сравнивал. Формально - в выборе пунктов форматов чисел (у меня по умолчанию в Acrobat 1-й пункт).
Если отличие в разделителях (у меня в Excel разделители системные русские, операционка русская), то какая разница с точки зрения вопроса темы?
Если разница в контенте, то, возможно, у нас разные версии Acrobat, у меня 11.0.3
Изменено: ZVI - 29 Июл 2019 12:16:04
Импорт данных из PDF в Excel, Как массово получить данные из PDF-файлов с текстовым слоем в Excel
 
Алексей, эти настройки есть, да.
По умолчанию стоят 1 лист для всего документа, разделителя из региональных настроек и OCR при необходимости.
Есть ли к ним программный интерфейс - нужно изучать документацию.
Но одного листа, надеюсь, должно хватить, а разделители легко правятся из VBA, если что.
В чем здесь видите проблемы?
P.S. По поводу отличий - у меня Adobe Actobat XI Pro с параметрами по умолчанию.
Изменено: ZVI - 29 Июл 2019 12:06:29
Импорт данных из PDF в Excel, Как массово получить данные из PDF-файлов с текстовым слоем в Excel
 
Цитата
Jack Famous написал: ...А как регулировать настройки? Там же их немало…
Добрый день, Алексей. Нет там настроек, а результат есть, приведен в #26.
Adobe - разработчики PDF-формата (1990г.), им и карты в руки  ;)
Альтернативное назначение клавиш в Excel для переключения между листами
 
Обновил вложение в сообщении #5
Изменения 2-й версии: на панель быстрого доступа добавлена 3-я кнопка для перехода на предыдущий активный лист, даже если он в другой книге. Это же действие можно выполнить по Ctrl+Enter, при этом Enter - на цифровой клавиатуре справа (Numpad). Внесены также улучшения в код надстройки.
Изменено: ZVI - 27 Июл 2019 03:23:32
Импорт данных из PDF в Excel, Как массово получить данные из PDF-файлов с текстовым слоем в Excel
 
Приложил для коллекции XLSX -файл, который сформировал Adobe Acrobat из меню:
Файл - Сохранить как другой - Электронная таблица - Рабочая книга MS Excel.
Счастливые обладатели Adobe Acrobat могут посредством VBA это автоматизировать, используя встроенный интерфейс JSObject:
Код
  ...
  Set objJSO = objAcroPDDoc.GetJSObject
  ret = objJSO.SaveAs("D:\Test.xlsx", "com.adobe.acrobat.xlsx")
Изменено: ZVI - 26 Июл 2019 22:23:00
Зависимая замена формул на их значение с блокировкой ячеек
 
Ek1985, рад, что цель достигнута, всего Вам доброго!  :)
Зависимая замена формул на их значение с блокировкой ячеек
 
Цитата
Ek1985 написала: ошибка ...1004
Это моя ошибка в коде, исправил и приложил обновление в сообщении #11
После снятии блокировки все работает, как ожидалось (но требуется изменение в ячейке, например, удаление или ввод числа) до очередной первой блокировки.
Изменено: ZVI - 26 Июл 2019 07:36:35
Альтернативное назначение клавиш в Excel для переключения между листами
 
Добрый день, Виктория.
Сделал и приложил надстройку (версия 2) для упрощения навигации между листами Excel.
Особенности:
1. Переключение между листами книги Excel по "Ctrl+PgUp" и "Ctrl+PgDn"
  на цифровой дополнительной клавиатуре работает при любом состоянии "NumLock".
2. На панель быстрого доступа автоматически добавляются 3 кнопки:
  2.1. Стрелка влево - переход к листу слева, аналогично "Ctrl+PgUp"
  2.2. Стрелка вправо - переход к листу справа, аналогично "Ctrl+PgDn"
  2.3. Две стрелки - переход к предыдущему активному листу, даже если он был в другой книге, вызывается и по "Ctrl+Enter(на цифр.клав.справа)"
3. Если нажимать и отпускать "Shift-Tab", то текущий лист переключится на лист книги, который был активным до этого. При зажатой "Shift" многократное нажатие "Tab"  будет переключать все листы книги по циклу, аналогично тому, как окна переключаются по "Alt+Tab"
Установка
Надстройка после извлечения из zip-архива устанавливается в Excel обычным способом, через:
Файл - Параметры - Надстройки - Перейти - Обзор - (выбрать файл надстройки) - OK

Адрес для замечаний и предложений указан в моём профиле и в комментарии приложенного архива с надстройкой.
Изменено: ZVI - 30 Июл 2019 06:52:09 (Подправлен текст сообщения)
Зависимая замена формул на их значение с блокировкой ячеек
 
Цитата
Ek1985 написала: ...нужно, чтоб С=A-B и полученное значение заблокировалось
Так сделано в обновленном приложении к сообщению #11, проверьте, если что-то не так, то "опишите последовательность действий, которая приводит к проблеме."
Зависимая замена формул на их значение с блокировкой ячеек
 
Подправил код в сообщении #13, проверьте, может, там уже правильно ([А] и [В]).
И на всякий случай приложил к этому сообщению вариант с [А] или [В]
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 138 След.
Наверх