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

Страницы: 1 2 След.
Самопроизвольное уменьшение размеров UserForm со всеми элементами в редакторе VBA., VBA (предположительно баг Excel)
 
Здравствуйте!
Возможно, кто-то сталкивался с подобной проблемой и сможет подсказать решение. Варианты вроде «установить другую версию Office» не рассматриваются.
Описание проблемы:
После запуска и остановки макроса в редакторе VBA размеры UserForm и всех её элементов самопроизвольно уменьшаются (искажаются). Точный триггер этого поведения определить не удаётся — проблема возникает хаотично.
Пример сценария:
1. Запускаю код → останавливаю его → возвращаюсь в редактор → форма и элементы уже стали меньше.
2. При дальнейшей работе размер может уменьшиться ещё сильнее, и при следующем запуске форма отображается в уменьшенном виде.
Временное решение:
- Чтобы вернуть исходный вид, достаточно немного подвигать границы формы в редакторе VBA — после этого все элементы мгновенно принимают правильные размеры.
- Начал принудительно задавать размер UserForm при запуске.
Дополнительные наблюдения:
- Если в проекте несколько форм, проблема затрагивает их тоже.
- Ошибка воспроизводится в Microsoft Office Professional Plus 2021 (установленная).
- Переустановка Office не помогла.
- В других версиях Office (например, 2016 или 2019) такого поведения не замечено, но данных недостаточно для точного вывода.
Вопрос:
Есть ли способ исправить это поведение без смены версии Office? Возможно, есть настройки или скрытые параметры, влияющие на масштабирование форм?

Изменено: asesja - 24.03.2025 15:01:28
Кто просматривает тему в данный момент, Настройка отображения пользователей, просматривающих тему.
 
Здравствуйте.
Ранее можно было видеть какие пользователи в настоящий момент времени просматривают ту или иную тему форума.
Можно ли это вернуть или включить в настройках?
Антивирус для ПК в 2024 г., Выбор антивируса.
 
Приветствую.
Подскажите, пож-та, бесплатный антивирус для ПК, который сейчас нормально работает в РФ без блокировки (ограничений).
За исключением Kaspersky и Microsoft Defender. ))
Изменено: asesja - 22.09.2024 15:23:06
Проверка наличия имен файлов в заданной папке, VBA
 
Здравствуйте.
Пока делал макрос, тема куда-то исчезла и я не запомнил имени ТС. )))

Если вопрос актуален и ТС найдется, то решение во вложении.

Что нужно было сделать:
При нажатии на кнопку проверить в заданной папке наличие имен файлов из столбца "A" и проставить статус Есть/Нету и ещё пару действий, которые описаны в самом файле.
Изменено: asesja - 30.04.2024 23:54:18
Некорректно работают Элементы ActiveX размещенные на Листе, Excel
 
Здравствуйте.
Подскажите, пож-та, почему на ПК с Office 2021(x64) некорректно работают Элементы ActiveX размещенные на Листе Excel?
На примере кнопки не происходит явного события клика (или нажатия мышкой). На примере ComboBox не получается установить курсор в поле для ввода. Если кликнуть по ComboBox и начать что-то вводить, то ввод данных не виден и курсор в поде ввода не устанавливается, но если затем выбрать любую ячейку листа, то введенный текст появляется. Так же и с выпадающим списком, при выборе одного из выпадающих элементов ничего не происходит, но как только производишь клик в любой ячейке листа, в поле ComboBox сразу появляется выбранный текст из списка.
На двух других ПК с Office 2021(x86) и Office 365(x86) всё работает нормально на одном и том-же файле.

Офис пробовал обновлять до последней версии, переустанавливал и искал причину в интернете.
Действия с этого сайта не помогли: ЭЛЕМЕНТЫ ACTIVEX ПЕРЕСТАЛИ РАБОТАТЬ ИЛИ ВЕДУТ СЕБЯ НЕПРЕДСКАЗУЕМО
Режим Конструктора на вкладке Разработчик, после добавления Элемента ActiveX отжимаю.

В примере особого смысла нет, т.к. файл на x64 работает некорректно, а на x86 правильно.
Оптимальная комбинация чисел для получения определенной суммы по условию, VBA
 
Здравствуйте.
Тема довольно заезженная и поиск по форуму выдаёт множество похожих результатов, но которые попадались - это не совсем то что нужно.
Прошу помочь в решении конкретно моей задачи с использованием VBA.
Необходимо найти оптимальную комбинацию чисел составляющих сумму указанную в столбце "A" из имеющегося массива в столбце "C"  по принципу задействования наименьшего количества чисел из массива с максимальным их значением от меньшего к большему.

Изменено: asesja - 19.12.2023 12:45:25
Сравнить две строки на максимальное совпадение идущих подряд символов, VBA
 
Здравствуйте.
Подскажите, пож-та, как средствами VBA можно сравнить две строки на максимальное совпадение идущих подряд символов и получить количество этих символов и само совпадение? Регистр не учитывать.
Вроде тема заезженная и недавно было что-то похожее. Попытался найти через поиск, но всё как-то не то или рядом.
Прошу помощи. Пример во вложении и наглядно на скриншоте.
Изменено: asesja - 01.12.2023 22:56:36 (Кор.вложение)
Открыть редактор кода VBA с нужным макросом, (не выполнение самого макроса)
 
Здравствуйте.
Подскажите, пож-та, как при нажатии на зеленые кнопки в файле-примере открыть редактор кода VBA в нужном месте (в начале заданной процедуры макроса)?
Если не ошибаюсь, то это делается через гиперссылки типа "file:///Путь к фйлу.xlsm - Module1.Макрос2", но не могу найти как именно.

Удаление пустых строк на листе (не все удаляются), VBA
 
Добрый день.
Помогите, пож-та, разобраться с вопросом удаления пустых строк на листе.
Для удаления использую замечательный макрос Николая Павлова, но он удаляет не все строки.
Подсознательно понимаю, что значения каких то ячеек не соответствует условию макроса, но немого разобраться каких и какое значение. На первый взгляд все ячейки пустые, но строка не удаляется.
В приложенном примере пометил пустые строки заливкой. Зеленые - удаляются, красные почему-то нет.
Как исправить условие для удаления всех пустых строк? (Проверять по отдельности каждую ячейку строки на .value="" или .text="" в цикле слишком долго, т.к. объем может быть довольно большой).

Источник: Удаление пустых строк и столбцов в данных
Используемый код:
Код
    Dim r As Long, rng As Range
    'удаляем пустые строки
    For r = 1 To ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
        If Application.CountA(Rows(r)) = 0 Then
            If rng Is Nothing Then Set rng = Rows(r) Else Set rng = Union(rng, Rows(r))
        End If
    Next r
    If Not rng Is Nothing Then rng.Delete
Выделить цветом часть текста в ячейке, VBA
 
Здравствуйте.
В ячейке "B1" имеется формула или ссылка на другую ячейку. Значением "Value" этой формулы является некий текст.
Возможно ли средствами VBA выделить часть текста другим цветом в ячейке "B1" не превращая формулу в значение? К примеру "В лесу родилась ёлочка" выделить красным шрифтом слово "родилась".
Если возможно, подскажите, пож-та, как.
В файле-примере получается это сделать только в ячейке с текстом, без формулы.

Как должно получиться в примере:
Программно ввести пароль от VBProject для дальнейших действий, VBA
 
Здравствуйте.
Проект защищен паролем который известен, 1234 (взламывать ничего не нужно).
Нужно по нажатию на кнопку удалить модуль из проекта. Без пароля всё получается (код в примере).

Как это сделать с паролем не используя SendKeys?
Изменено: asesja - 11.08.2023 15:42:33
Как получить текст с сайта?, VBA
 
Здравствуйте.
Подскажите, пож-та, как используя средства VBA, можно получить в переменную или в ячейку "A1" текст с сайта https://pub.fsa.gov.ru/rds/declaration/view/17725624/common ?

После получения текста планируется сверка номера, в данном случае "ЕАЭС N RU Д-LK.РА04.В.14931/23". Но с этим уже проблем не возникнет, главное получить текст, в котором этот номер присутствует.

Через CreateObject("InternetExplorer.Application") не получилось. Internet Explorer открывается, но загрузка содержимого не происходит. Нужен другой способ.

Изменено: asesja - 13.07.2023 00:09:44
Присвоить переменным значение из ячеек таблицы (имена переменных совпадают с шапкой таблицы), VBA
 
Здравствуйте.
Подскажите, пож-та, как можно быстро переменным присвоить значения из таблицы. Шапка, выделенная желтым полностью совпадает с именами переменных. Количество столбцов большое и может меняться. Столбцы могут добавляться/удаляться в любом месте таблицы.
В итоге переменным, совпадающим с именем в шапке таблицы, должно быть присвоено значение буквы столбца на момент запуска программы.
Сейчас присваиваю значение в ручную вот так для каждой переменной:

Код
Sub Peremen()
    Dim Pr1, Pr2, Psr1, Pr3, Dfg, Hdfr1, Hdfr2, Hdfr5 As String
    Pr1 = "A"
    Pr2 = "B"
    Psr1 = "C"
    Pr3 = "D"
    Dfg = "E"
    Hdfr1 = "F"
    Hdfr2 = "G"
    Hdfr5 = "H"
    'и так в ручную для вех столбцов
End Sub

Изменено: asesja - 23.03.2023 14:11:22
Записать текст в ячейку A1 файла Excel, доступного для редактирования по ссылке на Google диске, VBA
 
Здравствуйте.
По ссылке, с доступом для редактирования, на Google Диске находится файл Excel.
Подскажите, пож-та код, как средствами VBA можно записать данные (к примеру "АБВ") в ячейку "A1" активного листа этого файла?

Ссылка: https://docs.google.com/spreadsheets/d/1Kp-4g40oHzcQIEy-ggwMgXaS3WuCgjRc/edit?usp=share_link&ouid=111594722041987680179&rtpof=true&sd=true
Изменено: asesja - 07.03.2023 19:27:45
В функции =ЕСЛИ не срабатывает формула при значении ЕСЛИ ЛОЖЬ, Как исправить формулу?
 
Здравствуйте.
В функции =ЕСЛИ не срабатывает формула при значении ЕСЛИ ЛОЖЬ. Помогите, пож-та, исправить формулу.
Код
=ЕСЛИ(НАЙТИ("AAA";ПРОПИСН($C1));"AAA";ЕСЛИ(НАЙТИ("BBB";ПРОПИСН($C1));"BBB";""))
Условия выполнения:
Если в ячейке "C1" содержится "AAA", то в ячейке "B1" записать "AAA", а если в ячейке "C1" содержится "BBB", то в ячейке "B1" записать "BBB"
Регистр может отличаться, поэтому дополнительно использую функцию ПРОПИСН($C1).
Пример во вложении.
Перебор в цикле всех открытых экземпляров Excel для получения имен книг, VBA
 
Здравствуйте.
Имеется несколько запущенных экземпляров Excel со своими книгами открытыми из разных программ.
Подскажите, пож-та, как создать цикл по всем имеющимся экземплярам Excel, чтобы собрать имена всех открытых книг в столбец "A" ThisWorkbook?
Изменено: asesja - 10.02.2023 01:19:41
Как проверить не занята ли книга другим пользователем, VBA
 
Здравствуйте.
Програмно в новом экземпляре Excel.Application открываю книгу на сетевом диске и меняю в ней данные.
Далее нужно сохранить, но перед этим проверить, не открыта ли она кем то ещё. Если файл не занят другим пользователем - сохраняю, если занят закрываю без сохранения. Пользователей, которые последовательно открывают может быть много.
Подскажите, пож-та, код такой проверки.
Код
  Dim xlApp As Object, xlWorkbook As Object
  Set xlApp = CreateObject("Excel.Application")
  Set xlWorkbook = xlApp.Workbooks.Open("C:\path\workbook.xlsm")
Изменено: asesja - 04.02.2023 08:37:09
Как обнаружить изменение ранее внесенных данный в исходной таблице для корректировки в другой таблице (в которую они были перенесены), VBA
 
Здравствуйте.
Имеются две таблицы. На листе "Data" - исходная таблица , на "Листе2" - таблица, в которую периодически программно копируются (добавляются в низ) данные из исходной таблицы. Данные переносятся не все, только имеющие определенный "Номер идентификатор" и из определенных столбцов в шапке (по названию шапки видно). Таблицу "Data" с исходными данными заполняют разные пользователи и иногда часть данных, которые были внесены ранее и уже скопированы на Лист2, может быть изменена. Для наглядности выделил такие ячейки зелёным.
Вопрос: Подскажите, пож-та, идею или алгоритм, как можно программно, при использовании VBA, отследить изменение этих данных в исходной таблице "Data" чтобы затем в нужных строках(ячейках) откорректировать на "Листе2"? Связка таблиц через столбец "A". Если подсказка будет с кодом, то вообще супер.

Реальные таблицы имеют большое количество строк около 30000 (и это не предел) и существенно больше столбцов. Данные, которые изменили уже после добавления информации на Лист2, для наглядности подсветил зеленым. На самом дели подсветки нет, поэтому к цвету привязываться нельзя. Лист2 будет находится в отдельной книге на сетевом ресурсе. Данные в ячейках разнообразные по типу и содержимому (может поменяться как несколько букв, так и полностью вся ячейка вплоть до удаления информации).

Можно циклом перебирать каждую ячейку и сравнивать, но этот вариант не подходит на большом объеме.
Изменено: asesja - 30.01.2023 21:09:53
Почему значки на панели быстрого доступа бесцветные?, Как сделать значки цветными если панель размещена над лентой?
 
Добрый день.
Подскажите, пож-та, почему у меня в приложении Excel (и в других приложения Microsoft Office, таких ка Word, Outlook) значки на панели быстрого доступа бесцветные, если панель размещена над лентой. У меня так в  Office 16, 19, 21 и 365 и возможно было и в более ранних версиях.
Как сделать чтобы эти значки были цветными, как у Павла Коган из видео по ссылке (содержание самого видео не имеет отношения к данной теме, только панель быстрого доступа из показанного приложения Excel). У него панель быстрого доступа, так же размещена над лентой только значки цветные.
Ссылка на видео
Моё приложение

Скрин из видео
Изменено: asesja - 12.01.2023 17:59:52
Получить значение неповторяющихся ячеек в столбце и их количество, VBA
 
Здравствуйте.
Подскажите, пож-та, как при помощи VBA получить значение неповторяющихся ячеек в столбце и посчитать их количество.
В примере под таблицей указал какие данные из столбцов нужно выбрать.
Имеется нюанс - часть строк скрыто фильтром (или фильтрами). Данные нужно получить из видимого диапазона SpecialCells(xlCellTypeVisible).
Получить последнюю строку txt, VBA
 
Добрый вечер.
Подскажите, пож-та, можно ли получить в переменную текст последней непустой строки текстового файла методом, отличным от циклического перебора строк?

Известно как быстро посчитать кол-во строк:
Код
    Dim iText As String, strfile As String
    Dim kolstrok As Long
    myFile = FreeFile
    Open ("C:\Пример.txt") For Input As #myFile
         iText = Input(LOF(1), #myFile)
         kolstrok = UBound(Split(iText, vbNewLine)) + 1 'Количество строк в текстовом файле
    Close #myFile
Известно как получить текст последней строки циклом:
Код
    Open ("C:\Пример.txt") For Input As #myFile
        Do While Not EOF(myFile)
            Line Input #myFile, strfile
            If strfile <> "" Then iText = strfile 'Текст последней непустой строки
        Loop
    Close #myFile 
Изменено: asesja - 13.12.2022 19:48:36
Почему не устанавливается фильтр на промежуток дат?, VBA
 
Здравствуйте,
Подскажите, пож-та, почему не устанавливается записанный макрорекордером макрос на промежуток между датами? В данном случае 01.12.2022-03.12.2022.
Код
ActiveSheet.Range("$A$2:$C$95").AutoFilter Field:=3, Criteria1:=">=01.12.2022", Operator:=xlAnd, Criteria2:="<=03.12.2022"
Так же пробовал записать фильтрпо дате "после или равно" 01.12.2022. При запуске тоже не срабатывает. Все данные скрываются.
Код
ActiveSheet.Range("$A$2:$C$95").AutoFilter Field:=3, Criteria1:=">=01.12.2022", Operator:=xlAnd
Изменено: asesja - 02.12.2022 18:32:38
Запуск формы с координатами курсора мыши, VBA
 
Здравствуйте.
Подскажите, пож-та, как форме UserForm1(верхнему левому углу) при появлении на экране передать положение координат курсора мышки?
Т.е. при показе формы, UserForm1.Show на кнопку или сочетанием клавиш или еще как-либо, она должна появляться в месте где находится курсор мыши?

Открыть файл Excel из SharePoint по ссылке для дальнейшего редактирования макросом, VBA
 
Здравствуйте.
Подскажите, пож-та, возможно ли по предоставленной ссылке открыть файл Excel находящийся в SharePoint в классическом приложении Excel (из состава MO 365) установленном на ПК? После программного открытия планируется редактирование макросом или считывание данных средствами VBA.
Ссылка корпоративная. Открытие происходит с введением логина и пароля (они имеются).
Знаю, что требуется пример, но к сожалению, в данном случае в целях безопасности, не могу предоставить ссылку на файл, т.к. доступ по паролю и место хранение корпоративное.
Ответ скорее всего получу соответствующий, но может кто-то всё-таки подскажет код открытия таких файлов, если можно с прописанными логином и паролем в коде, чтобы в окне руками не вводить?
Изменено: asesja - 27.11.2022 13:45:18
Изменить цвет TextBox на форме, VBA
 
Здравствуйте.
Подскажите, пож-та, как изменить цвет TextBox на желтый при активации кликом мышкой (после клика текстовое поле становится активным для редактирования и в нем мигает курсор)? При выборе следующего TextBox, предыдущий должен стать обратно белым.
Добавить в ячейку текст из активного (выбранного) TextBox, VBA
 
Здравствуйте.
Подскажите, пож-та, как с помощью одной кнопки добавить а ячейку "А1" текст из активного TextBox на форме. Активный, имеется ввиду тот, который выбран для редактирования, в котором мигает курсор. Текстовых полей может быть много. Не хотелось бы возле каждого добавлять кнопку.
Изменено: asesja - 16.11.2022 22:26:36
Цикл For Each в обратном порядке, VBA
 
Здравствуйте.
Подскажите, пож-та, можно ли цикл For Each в диапазоне запустить в обратном порядке, т.е. при 1-м проходе  rng.Value=Range("A10"), при 2-м rng.Value=Range("A9"), при 3-м rng.Value=Range("A8") и т.д.?
Код
Dim rng As Range
For Each rng In Range("A1:A10")
    msgbox rng.Value
Next
Цвет CommandButton1 при открытии и закрытии книги., VBA
 
Здравствуйте.
В книге несколько листов. На "Лист1" имеется кнопка "CommandButton1" (ActiveX).
Подскажите, пож-та, макрос VBA с помощью которого можно получить в сообщении Msgbox цвет данной кнопки при открытии и закрытии книги.
Пример во вложении.
Изменено: asesja - 03.11.2022 15:24:50
Получить координаты UserForm и сделать клик мышкой по заголовку формы, VBA
 
Здравствуйте.
Подскажите, пож-та, как при помощи макроса VBA в переменные получить координат формы UserForm (верхний левый угол) и затем, используя данные координаты произвести действие - клик левой кнопкой мышки по полоске с заголовком данной формы (только не на кнопку закрыть).
Если имеет значение, то видимость книги Application.Visible может быть true или false. На  ПК может быть как один так и два монитора.
Изменено: asesja - 28.10.2022 16:38:12
Создание 2D штрих-кодов (Data Matrix), VBA
 
Здравствуйте.
Подскажите, пожалуйста, VBA макрос для формирования 2D кодов в ячейках Excel по содержимому соседней (заданной) ячейки.
Нужна разновидность Data Matrix.
Изменено: asesja - 31.10.2022 09:05:01
Страницы: 1 2 След.
Наверх