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

Страницы: 1 2 След.
Подставить значение переменной для имени textbox в userform
 
Здравствуйте. В следующем коде как можно подставлять значение переменной i для изменения различных полей textbox.
Код
For i = 1 to 10

with textbox <= сюда нужно подставить значение переменной i
 ...
 ...
 ...
end with

next i
Следующие попытки не сработали
Код
with textbox & i
with textbox + i
и т.д.

Заранее благодарю за помощь.
С помощью Userform выбрать/перенести картинки в Userform и после занести их в ячейки таблицы
 
Добрый день.
Есть Userform в одной из таблиц, она заполняет определенные данные после чего переносит их в таблицу. Хотелось бы узнать, можно ли в пользовательскую форму с компьютера передавать картинки и затем заносить их в ячейку/ячейки?
Открыть CSV без автоматического деления по столбцам VBA
 
Здравствуйте.

Есть файлы csv которые нужно открывать и обработать. При открытии вручную они открываются как нужно (все записи в одном столбце и с помощью "Данные-Текст по столбцам" можно корректно разделить), пробую открыть через workbooks.open(filename) и оно автоматически делит один столбец, но делает это не совсем корректно. Можно ли открыть файл так, чтобы автоматического деления не происходило?
Проверить в нужном ли формате записана дата в ячейке
 
Здравствуйте. Как можно проверить ячейку на то, заполнена ли она по формату "dd/MM/yyyy"?
Именно сама дата внутри ячейки, а не формат ячейки.
Коллекция массивов и перебор элементов
 
Здравствуйте. Как можно обратиться к элементам массива который находится в коллекции?

1) В переменные для массива (Variant) внес данные (условно из Range("a1:a4") и Range("b1:b4")))
2) Через Collection.add добавил оба массива в коллекцию

Как после этого перебрать элементы коллекции и выводить их? Спасибо
Application InputBox нажатие "ОК" с пустым значением вызывает ошибку
 
Здравствуйте. Есть Application InputBox, в который пользователь должен ввести число. При нажатии на "ОК" с незаполненным полем ввода появляется ошибка Type missmatch. Можно ли сделать так, чтоб вместо ошибки просто переоткрывался этот же Inputbox или хотя бы просто закрывался Inputbox без ошибки?

Пример:
Код
testValue = Application.InputBox("Введите число от 1 до 5")
    If testValue= False Then
        Exit Sub
    ElseIf testValue>= 1 And testValue<= 5 Then
        UserForm2.Show
    Else
        MsgBox "Введено неверное значение"
        Exit Sub
    End If
Изменено: Андрей Нечитаев - 19.10.2022 10:52:30
Получить список пользователей которые имеют доступ к файлу на сетевом диске
 
Здравствуйте. Можно ли с помощью VBA получить информацию о пользователях, которые имеют доступ к определенным файлам. Например:
- имеется файл Excel на сетевом диске, в ПКМ - Cвойства - Безопасность у него есть список пользователей имеющих к нему доступ.
Получить список и права (чтение, изменение и т.д.)
VBA Excel Отправить отложенное письмо через Outlook
 
Здравствуйте. В Outlook есть функционал при отправке письма:
Параметры - не отправлять до.
Тем самым письмо не отправляется сразу, а автоматически попадает в список исходящих и отправится в указанное время. Можно ли создать такое письмо через VBA в Excel?
Спасибо.
Открыть csv в UTF-8 и сохранение в UTF-8
 
Здравствуйте, каким образом можно открыть CSV файл с кодировкой utf-8, отредактировать там необходимые ячейки, после чего закрыть и сохранить в такой же кодировке с помощью макроса.
При открытии Excel таблицы отображаются ячейки под таблицей
 
Здравствуйте.

После обработки макросом и сохранении книги и последующим её открытии, она открывается с видом "под таблицей", после макроса наверное остается в том положении. Как можно исправить? Чтоб при открытии отображалось стандартно первая строка  
Формула для подсчета по условию
 
Здравствуйте. Можете подсказать какой формулой можно воспользоваться, чтобы посчитать следующее:
В файле примере:
Внутри каждого значения из столбца B посчитать количество должностей, если год рождения из столбца F меньше 1960.

Сама таблица больше и разных значений в столбце B много, отделяются строкой.

Желтым выделен ручной пример подсчета, для лучшего понимания.
Изменено: Андрей Нечитаев - 09.09.2022 09:46:52
Посчитать количество по условию
 
Здравствуйте. Можете подсказать формулу, как можно посчитать следующее:
В файле примере есть четыре столбца, в пятом необходимо вывести число: Для каждой должности в столбце один посчитать количество сотрудников если год рождения меньше 1960.
Необязательно выводить отдельный список только с уникальными значениями должностей, можно просто чтоб повторялись значения, почищу сам.
Изменено: Андрей Нечитаев - 02.09.2022 14:14:03
Подключение к Postgresql через VBA
 
Здравствуйте. Появилась необходимость макросами выгружать информацию в БД Postgres.

Почитал информацию на просторах интернета. Stackoverflow (например этот топик), но ни один из них не смог мне помочь.
Есть у кого ссылки на документацию или примеры подключения, но более-менее актуальные, ибо все темы, которые я находил были созданы больше 10 лет назад.
Непредвиденная ошибка при выгрузке данных из SQL на лист
 
Здравствуйте. Появилась необходимость выгрузить данные из SQL на рабочий лист.
Делаю это путем "Данные-Из других источников-С сервера SQL сервер", но во время выполнения появляется "Непредвиденная ошибка". Если же просто нажать кнопку "Закрыть", то данные все равно выгружаются и выгружаются правильно.

Из-за чего может быть ошибка? Или как её можно скрыть (Application.DisplayAlerts = False не работает), так как выгрузка будет происходить с помощью макроса.

Ошибка появляется на данной строке кода:
Код
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
        "OLEDB;Provider=********.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=*********;Use Procedure for Prepare=1;Aut" _
        , _
        "o Translate=True;Packet Size=4096;Workstation ID=*********;Use Encryption for Data=False;Tag with column collation when possibl" _
        , "e=False;Initial Catalog=*********"), Destination:=Range("$A$1")).QueryTable

Из текстового файла с ошибкой:
Error Message:
Значение не попадает в ожидаемый диапазон.
Stack Trace Message:
Значение не попадает в ожидаемый диапазон.

p.s. В самый первый раз при аналогичном коде выгрузилось нормально и без ошибки, ошибка появилась на 2+ раз, но больше не пропадает, не важно в каком файле.
Изменено: Андрей Нечитаев - 05.08.2022 10:12:17
Перенос кода макроса прописанного на листе в другой, только что созданный лист с помощью макроса
 
Здравствуйте. Есть файл, где на определенных листах прописаны макросы (например ws change и т.д.). Возможно ли скопировать код макроса на новые созданные листы по условию?
Combobox.list и Dictionary. Вывод в список
 
Здравствуйте.

Можно ли вывести в ComboBox.list данные из Dictionary (Item + key)? Если да, то подскажите как, пожалуйста :)

Заранее благодарю за ответы.
Сортировка таблицы
 
Здравствуйте.

Кратко: Есть таблица, отсортированная по последнему столбцу (там числа). Первый столбец этой таблицы содержит имя пользователя и они могут повторяться, но с разными числами в третьем столбце.
Нужно расположить одинаковые значения из столбца 1 (подтянув второй и третий столбец), но сохранив сортировку по убыванию.

В примере будет понятнее.

Каким способом можно отсортировать таблицу из примера?
Шапки "Есть" и "Нужно" не учитывать. Только саму таблицу.
Изменено: Андрей Нечитаев - 26.07.2022 16:19:33
Запустить макрос для нового csv файла через vbs скрипт
 
Здравствуйте. Каждый день генерируется файл csv с новыми данными. Есть макрос, который выполняет необходимую обработку и прочие действия с файлом. Запускал данный макрос вручную, через alt-f8 и вписыванием названия макроса.

Сейчас хотелось бы автоматизировать этот процесс через планировщик задач Windows написав vbs скрипт. Проблема в том, что он выдает ошибку на то, что не видит исполняемый макрос.

VBS файл.
Код
Call Run_macros

Sub Run_macros()
   set objExcel = CreateObject ("Excel.Application")
   objExcel.Visible = false    
   Op_writ="C:\Users\Andrey\Desktop\Выгрузка\Events.csv"
   objExcel.Workbooks.Open (Op_writ)
   objExcel.run "C:\Users\Andrey\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB!run"
   objExcel.Workbooks("Events.csv").Close(false)
   objExcel.Quit
end sub
Пробовал так:
Код
'objExcel.run "run"
'objExcel.run "PERSONAL.XLSB!run"
Но тоже не работает.
Как можно исправить? Спасибо.
Не работает VBS скрипт для запуска макроса Excel
 
Есть VBS скрипт который должен запускаться через планировщик задач. Проблема заключается в том, что если в пути к файлу или в названии файла имеются русские буквы, то он не запускается и выдает ошибку "Файл не найден", а русские буквы заменяются в ошибке на различные странные символы. Если указать путь только с английскими буквами, то все хорошо.

Можно ли как-то исправить это?
Код
Call Run_macros

Sub Run_macros()
   set objExcel = CreateObject ("Excel.Application")
   objExcel.Visible = false    
   Op_writ="C:\Users\Andrey\Desktop\Отчеты\Журнал.xlsm"
   objExcel.Workbooks.Open (Op_writ)
   objExcel.run "Tests"
   objExcel.Workbooks("Журнал.xlsm").Close(false)
   objExcel.Quit
end sub
Запуск Power Shell скрипта из VBA
 
Здравствуйте, подскажите, пожалуйста, как можно запустить данный PS скрипт из VBA:

Код
$StartDate = (Get-Date).tostring("dd/MM/yyyy",$Local:RU)
$Machine = "okr-stp"
$Events = Get-WinEvent -FilterHashtable @{Logname = "ForwardedEvents"; StartTime=$StartDate;}  -ComputerName $Machine

Изменено: Андрей Нечитаев - 21.07.2022 13:04:11
Получить список Forwarded Events
 
Здравствуйте, есть такой код (взят отсюда):
Код
Sub NTLogEvent()
    ' © 2022 ExcelVBA.ru
    Dim i&, sh As Worksheet
    Set sh = Workbooks.Add.Worksheets(1) ' создаём новый файл под вывод данных
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set colLoggedEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent " & "Where Logfile = 'System'")
    ' выводим заголовок таблицы
    sh.Range("a1").Resize(, 9).Value = Array("Category", _
        "Computer Name", "Event Code", _
        "Record Number", "Source Name", _
        "Time Written", "Event Type", "User", "Message")
 
   Const LIMIT& = 2000 ' ограничение для количества записей
    For Each objEvent In colLoggedEvents ' перебираем записи журнала Windows
        Range("a" & Rows.Count).End(xlUp).Offset(1).Resize(, 9).Value = Array(objEvent.Category, _
        objEvent.ComputerName, objEvent.EventCode, objEvent.RecordNumber, objEvent.SourceName, _
        objEvent.TimeWritten, objEvent.Type, objEvent.User, objEvent.Message)
        i = i + 1: If i > LIMIT& Then Exit For
    Next
    sh.UsedRange.EntireColumn.AutoFit ' автоподбор ширины столбцов
End Sub

Но не получается вытянуть строки из лога Forwarded Events, может кто разбирается и сможет подсказать, как можно это сделать?
Получить записи из "Журналы Windows" с помощью VBA
 
Здравствуйте.

Можно ли получить список событий из журнала Windows по определенному фильтру и сразу сохранить полученные данные в таблицу?
Как если бы они выгружались вручную через "Сохранить выбранные действия"
Сохранить как надстройку для любого документа
 
Здравствуйте, как сохранить данный файл, чтобы он выполнялся в любом файле? Как надстройка. Я сохранил, но появляется ошибка "не удается выполнить макрос возможно этот макрос отсутствует в текущей книге" при нажатии кнопки надстройки на панели.
Подсчет пар и общего количества
 
Здравствуйте, есть файл, в нем необходимо подсчитать следующее:
1) Количество записей у каждого пользователя в целом
2) Количество записей с одинаковыми парами.

Это две таблички, заполняться в таком же виде, как и в примере.

Названия в первом и столбце могут быть совершенно разные, Profile и Computer просто для примера. Строк тоже может быть много.

Пример прилагаю.
Изменено: Андрей Нечитаев - 29.06.2022 09:50:08
Добавить значения ячеек в Array через application inputbox
 
Здравствуйте, как поместить значения ячеек из выбора Application.Inputbox в массив?

Нужно что-то такое, но только через inputbox.
Код
Dim aArray() As Variant
    aArray() = Selection.Value

Dim VGOChoise() As Variant
    VGOChoise() = Application.InputBox ???
PasteSpeacial не выполняется
 
Код
Range("A:A,B:B,D:D,E:E,L:L,N:N,O:O,W:W").Select
            Selection.Copy
wbImport.Worksheets(yearsArray(s)).Range("a1").PasteSpecial (xlPasteAll)

Почему данный код может не работать? Выдает ошибку "Метод PasteSpecial из класса Range завершен неверно".
Лист куда копирую полностью пустой и только что созданный макросом.

Таблицу из которой копирует прикладываю.
Столбец "W" заполняется макросом, там значения тоже будут.

Изменено: Андрей Нечитаев - 23.06.2022 11:24:31
Перенос и распределение данных из Word в Excel
 
Здравствуйте, просто хочу узнать, стоит ли пытаться сделать этот процесс автоматизированным или слишком сложно и будет часто ломаться из-за ошибок людей?

Пример Word файла.

В столбце "Решение", может находиться разнное количество информации, 2, 2.1, 2.1.1.1, 2.1.2.1 и т.д., а может быть всего одна, сроки, как в пункте 2.1 как в примере может не быть. Из этого столбца нужно извлекать данные по пунктам и раскидывать в разные ячейки в Excel. И много вариантов их написания

Возможно ли в автоматическом режиме так "разбирать" эти файлы или лучше оставить эту идею?
"Вам не разрешено редактировать этот выделенный фрагмент, так как он защищен".
 
Здравствуйте. Есть макрос, который заполняет шаблоны Word файлов по принципу:
- в шаблоне в необходимом месте стоит закладка
- макрос открывает шаблон и вставляет текст в данное место
- сохраняет в определенную папку и закрывает Word

Макрос работает хорошо, задачу выполняет, но не всегда, иногда появляется ошибка

Run-time error '6124':
"Вам не разрешено редактировать этот выделенный фрагмент, так как он защищен".

То есть если запустить его, например, 3 раза, то он сработает, а на 4-ый остановится на каком-то случайном моменте.
Иногда и с первого раза не запускается. В чем может быть проблема?
Код
With wdApp
            Set wdDoc = .ActiveDocument
                wdDoc.Bookmarks("FIO").Select
                .Selection = massiv(1, 1)
            Set wdDoc = .ActiveDocument
                wdDoc.Bookmarks("PODRAZDELENIE").Select
                .Selection = massiv(1, 3)
            Set wdDoc = .ActiveDocument
                wdDoc.Bookmarks("DOLJNOST").Select
                .Selection = massiv(1, 2)
            End With
            wdDoc.SaveAs (ThisWorkbook.Path & "\" & "Анкеты Кодовое Слово" & "\" & massivDogovori(k) & " " & massiv(1, 1) & ".docx")
            wdDoc.Close
            Application.CutCopyMode = False
            ThisWorkbook.Saved = True
VBA Ограничение на тип данных вводимых в TextBox
 
Здравствуйте.

Можно ли ограничить тип данных которые будут вводиться в TextBox юзерформы?
В поле должны вводиться исключительно числовые значения. Буквы и прочие символы запретить.
VBA Пользовательская форма ввода
 
Здравствуйте, хотелось бы узнать, возможно ли добавление на заранее созданную пользовательскую форму следующей возможности:

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

Может как-то можно например создать большую форму, но скрыть ненужные поля, а при нажатии на кнопку их добавлять по одному?
Страницы: 1 2 След.
Наверх