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

Страницы: 1
Как подавить переключение в окно VBA?
 
При запуске макроса, который удаляет и тут же вставляет код в ThisWorkbook/ЭтаКнига, выскакивает окно VBA.
И показывается код только что внедрённый в ThisWorkbook/ЭтаКнига.
Программно закрыть его можно, но это вызывает дёргание окон:
Код
SendKeys "%{F4}"
или
ThisWorkbook.VBProject.VBE.MainWindow.Visible = False

Возможно ли подавить переключение в окно VBA?

процедура вставляющая код в ThisWorkbook/ЭтаКнига.
Скрытый текст
Изменено: jack_21 - 18 авг 2019 17:38:06
Проверка для активной книги - "ThisWorkbook" или "ЭтаКнига", для русской версии используется ссылка на ЭтаКнига. Для английской ThisWorkbook
 
Есть макрос вставляющий в ThisWoorkbook/ЭтаКнига код событийной процедуры.  у меня это Workbook_AfterSave.

Код
Sub CreateEventProcedure()
'https://www.excel-vba.ru/chto-umeet-excel/kak-dobavit-kod-procedury-programmno-skopirovat-modul/
    Dim objVBProj As Object, objVBComp As Object, objCodeMod As Object
    Dim lLineNum As Long
    'добавляем новую книгу
    Workbooks.Add
    'получаем ссылку на проект и модуль книги
    Set objVBProj = ActiveWorkbook.VBProject
    Set objVBComp = objVBProj.VBComponents("ЭтаКнига")
    Set objCodeMod = objVBComp.CodeModule
    'вставляем код
    With objCodeMod
        lLineNum = .CreateEventProc("Open", "Workbook")
        lLineNum = lLineNum + 1
        .InsertLines lLineNum, "    MsgBox ""Hello World"""
    End With
End Sub


Есть нюанс: "для русской версии используется ссылка на ЭтаКнига. Для английской ThisWorkbook"

Код
Set objVBComp = objVBProj.VBComponents("ThisWorkbook")


??? КАК организовать проверку для активной книги - в ней ThisWorkbook или ЭтаКнига ???
Файлы все однотипные, но одни созданы на MSO2007 EN, а другие в MSO2010 RU...
Как задать значение переменной - время в минутах, в секундах, Макрос закрытия книги при бездействии
 
Добрый день!
Есть такой код :

При старте файла требуется указать время простоя для xTime As String через Application.InputBox.
Хотелось бы обойти этот запрос и "зафиксировать" значение xTime, скажем в 3 минуты.
Не смог найти как указать значение переменной.

Set xTime = "00:03:00"
Set xTime = #12:03:00 AM# - оба эти варианта приводят к ошибке Object Requered.

Как задать значение xTime в обход InputBox?


Автоматически сохранить и закрыть файл Excel после определенного простоя (https://www.extendoffice.com/ru/documents/excel/4745-auto-close-excel-file-after-idle-time.html)
Скрытый текст
Изменено: jack_21 - 10 мар 2019 23:45:49
Сохранение файла с макросами *.xlsb, Постоянно просит сохранить файл *.xlsb
 
Есть 2 файла с макросами:
- personal.xlsb (находится в папке по умолчанию - XLSTART)
- MACROS.xlsb (находится в другой папке и путь прописан в альтернативную автозагрузку при старте Excel).
Есть один ньюанс - файл MACROS.XLSB сохраняется в облачную папку для доступности дома и на работе.

Так вот этот MACROS.XLSB постоянно просит сохранить при выходе из EXCEL. Даже если я с ним не проделывал никаких действий.
При этом изредка позволяет сохранить по нажатию "ОК", а чаще всего не позволяет сохранить и тогда я жму "Отмена" и Excel вылетает...

Что может быть не так? Сам файл испорчен или что-то с настройками Excel'a?

win8.1x64ru+mso2010x64ru
win8.1x64en+mso2007x32en
Изменить файл-источник из UserForm
 
Добрый день!

Есть код для UserForm: (автор SAS888)
Скрытый текст

Посоветуйте, плиз, как можно было бы изменять значение переменной p=... каким-либо из Control'ов на UserForm?
CheckBox, ControlButton, ToggleButton, CommandButton.

Смысл такой, что сейчас, при инициализации формы UserForm, ListBox заполняется данными из файла %desktop% / ALL.xlsb.
У меня на Рабочем столе 2 идентичных файла - ALL.xlsb и ALL2.xlsb - с разными данными.

Хотелось бы реализовать переключение файла-источника из UserForm.
Изменено: jack_21 - 21 янв 2019 19:48:20
После работы макроса пропали значки выпадающих списков., как восстановить?
 
Есть два макроса, которые последовательно (вручную) запускаются в одной книге.

macros1 - общая и основная настройка листа
macros2 - удаление и назначение именованных диапозонов и выпадающих списков

Если запустить macros2 - всё ОК.
Если запустить macros1 и потом macros2, то macros2 не вносит изменений.

Нашёл часть кода, после которой запуск macros2 не даёт результата.
Удаление Shapes на листе. По факту удаляются только Shapes Линии.
Код
Dim MyShape As Shape
For Each MyShape In ActiveWorkbook.Worksheets("ppr").Shapes
   MyShape.Delete
Next


Почему этот код не позволяет работать этому коду:

Скрытый текст


К множеству иных файлов уже был применён макрос1, а значит во всех этих файлах НЕВОЗМОЖНО применить макрос2!!!
Как сделать эти "испорченные" файлы/книги редактируемыми макросом2 снова???
Изменено: jack_21 - 31 мар 2018 14:47:26
Преобразовать текст в формат даты YYYY.MM.DD
 
Есть текст записанный таким образом (файл приложен). Никак не могу найти/сообразить - как этот ТЕКСТ преобразовать в yyyy.mm.dd

Текст на латышском.
2017. gada 11. septembris
2017. gada 15. jūnijs
2017. gada 27. novembris
2017.gada 20. janvāris

p.s. Допустим, по Ctrl+H заменю слова и получу в виде текста - 2017.11.09.
Но в этом случае месяц mm и день dd поменяны местами -> yyyy.dd.mm Может хоть эту запись можно переделать в yyyy.mm.dd?
Изменено: jack_21 - 3 янв 2018 22:55:36
Сохранение файла. Не изменять свойства/даты файла.
 
Добрый день!

Хочу применить последовательно к каждому файле *.xls в папке какой-либо макрос.
Файл в результате сохраняется с тем-же именем.
Код
ActiveWorkbook.Close True

Возможно ли сделать, что бы для файла, при сохранении, НЕ  МЕНЯЛИСЬ даты открытия, сохранения, изменения, создания?
Вот что-бы изменить эти данные, вроде, есть решения. А как их вообще не трогать?
Изменено: jack_21 - 16 дек 2017 21:46:37
Список файлов в папке. Как ограничить количество записей?, вывод списка файлов с условием по дате модификации/изменения
 
Добрый день!

На сайте есть такой топик: http://www.planetaexcel.ru/techniques/3/45/
Список файлов в папке - выводит на лист список файлов из указанной папки

Пытался допилить код. Что-то получилось, что-то нет.

У меня вот так получилось:
- сканирует заданную (фиксированную) в коде папку (очень долго собирает в папке на сервере. 1800 файлов.)
- вставляет только имя (без расширения) и даты в указанный диапазон AP1:AR1/ колонки 42, 43, 44.
- Вставка в ActiveWorksheet
. / В Активный Лист /. Путь не выводит. Я его и так знаю.  8) А вложенных папок нету.

Скрытый текст

Помогите с кодом, плиз.
Что надо подправить, что бы выводить только последние 10 файлов?  Последние по времени редактирования. Modified. Идеально, если это количество можно будет менять редактированием кода.
Не могу найти мне понятных примеров в сети.

p.s. Отсекать лишнюю инфу в названии файла буду с помощью записанного макроса: "Ctr+H" + формула "=правсимв()"
Изменено: jack_21 - 7 ноя 2017 23:23:15 (грамматика)
XLSB: сихронизация через облако
 
Добрый день!

Есть 2 компа. Дом и работа.
win8.1x64ru + office2016 | win8.1x64en + office2007
Хочется, чтобы PERSONAL.XLSB на обоих компах синхронизировался.
Для этого положил XLSB в облако, соответственно прописав путь для автозагрузки.

Могут ли быть проблемы из-за этого?
Непонятно по какой причине PERSONAL.XLSB то загружается, то не загружается при старте EXCEL.
Форма поиска по списку, Удобный поиск по аналогии с решением от GIGant + 2..3 колонки
 
Добрый день!
Нашёл в архиве Удобный поискот GIGant.

По клику по позиции из списка в форме поиска, она добавляется в выделенную ячейку листа.
Вопрос.
1. Как реализовать, что бы в форме поиска присутствовали ещё 2..3 колонки с данными?
2. И, соответственно, чтобы по клику в списке формы поиска добавлялась позиция и соседние значения в определённые (возможно, не соседние) ячейки в листе?

Office 2010 и Office 2007. Список на 2000 строк.
p.s. Это всё для наполнения формы счёта или накладной... Хотя бы 1ый вопрос.

Office 2010 и Office 2007. Список на 2000 строк.

p.s. Это всё для наполнения формы счёта или накладной... Хотя бы 1ый вопрос.
Страницы: 1
Наверх