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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 38 След.
Проигрыватель в фоновом режиме VBA, Требуется в макросе запускать проигрывание песни так, чтобы проигрыватель был в фоновом режиме
 
Юлия я к сожалению не программист, а садовод-любитель, поэтому на все вопросы не могу ответить. У меня установлен только один виндовский плеер. Не знаю можно ли все плееры запускать в скрытом режиме.

Если в команде не указан путь к исполняемому файлу плеера то файл открывается в плеере по умолчанию. Выбор плеера по умолчанию в настройках системы «Выбор программ по умолчанию»

Закрыть плеер открытый в скрытом режиме вручную можно через диспетчер задач вкладка «Процессы». Программно умею только, через PID процесса. Но PID возвращает только функция Shell. Надо записать PID при запуске в глобальную переменную или ячейку листа, тогда можно программно закрыть плеер.
Например открыть плеер с записью PID в ячейку
Код
Cells(1) = Shell("C:\Program Files\Windows Media Player\wmplayer.exe C:\Users\1.mp3", vbHide)

Закрыть плеер

Код
Shell "TaskKill /F /PID " & CStr(Cells(1)), vbHide
Поиск последней даты по заданным условиям, Поиск последней даты по заданным условиям
 
mattew sky
Цитата
Serg091, в 10-м Excel, видимо, не работает функция. В ячейке с формулой ответ: 0
У меня офис 2010 формула работает. Она массивная надо вводить как формулу массива CTRL+SHIFT+ENTER
Проигрыватель в фоновом режиме VBA, Требуется в макросе запускать проигрывание песни так, чтобы проигрыватель был в фоновом режиме
 

В принципе можно и без объекта WScript.Shell обойтись, использовать функцию Shell. Только тогда придется указывать полный путь к исполняемому файлу плеера. Для Windows 7 плеера так.

Код
Shell "C:\Program Files\Windows Media Player\wmplayer.exe C:\Users\1.mp3", 0
Проигрыватель в фоновом режиме VBA, Требуется в макросе запускать проигрывание песни так, чтобы проигрыватель был в фоновом режиме
 
Здравствуйте Наверно так надо писать
Код
With CreateObject("WScript.Shell")
.Run "C:\Users\1.mp3", 0
End With

Если будет во второй строке 0 в конце опять будете долго искать, тк будет в скрытом режиме, если 2 написать должно быть в свернутом окне.

Оптимизация макроса в VBA, Готовый макрос не выполняет до конца задачу
 
Uupss_88
Цитата
End Sсуть
Вроде не так должна заканчиваться процедура.
Формула для массива с суммами и датами
 
Для разнообразия UDF
Код
Function Max_Min_Data(DiapDat As Range, DiapSum As Range, Optional Max_Min% = 1) As Double
Dim Ar1, Ar2
Ar2 = DiapDat.Value: Ar1 = DiapSum.Value
For i = 1 To UBound(Ar1, 2)
If Ar1(1, i) <> "" Then Ar1(1, i) = VBA.CDbl(Ar2(1, i))
Next i
If Max_Min = 0 Then Max_Min_Data = WorksheetFunction.Min(Ar1) Else Max_Min_Data = WorksheetFunction.Max(Ar1)
End Function
В файле и формулы и UDF. Для работы UDF надо разрешить макросы
Изменено: Евгений Смирнов - 16.05.2024 21:34:41
Формула для массива с суммами и датами
 
Ham13
Цитата
Судя по всему, если формат xls, какой то древний эксель
Да это древний до 2003 года включительно. А функция ЕСЛИОШИБКА появилась в 2007 а это уже новый формат файлов эксель. так что ваша формула для древнего не годится.
Для ячейки С3
Код
=1/МАКС(1/$E$2:$N$2*ЕЧИСЛО(E3:N3))

Для ячейки  D3. Обе формулы мвссивные

Код
=МАКС($E$2:$N$2*ЕЧИСЛО(E3:N3))

Создание циклического макроса по условию, Копирование макросом из умной таблицы
 
Денис С
Цитата
но он что то не то делает, он переносит все и видимые и невидимые...
Вы не правы макрос переносит только видимые ячейки.. Может вы плохо объяснили какой результат должен быть?
Автофильтр. Видны не все существующие в колонке значения
 

Здравствуйте. По моему можно так объяснить это поведение эксель. Если в любой ячейке последней заполненной строки таблицы есть функция промежуточные итоги, то эксель считает, что эта строка итогов и не включает её в фильтрацию.

Подсчет учеников на 4 и 5 с помощью макроса на VBA, Нужно подсчитать учеников учащихся 4 и 5 с помощью макроса на VBA
 
Здравствуйте. Немного покороче UDF
Код
Function Оценки(диапазон As Range, критерий%) As Long
Dim arr, i&, j&
arr = диапазон.Value: Оценки = UBound(arr)
For i = 1 To UBound(arr): For j = 1 To UBound(arr, 2)
If arr(i, j) < критерий Or Not VBA.IsNumeric(arr(i, j)) Then Оценки = Оценки - 1: Exit For
Next j, i
End Function
Автоматизация ввода времени в ячейку
 
Еще UDF
Код
Function MinNagr(Время_Наиб_Нагр$) As String
Dim Ar1, Ar2, ii&
    Ar1 = Split(Время_Наиб_Нагр, "-")
For ii = LBound(Ar1) To UBound(Ar1)
    Ar2 = Split(Trim(Ar1(ii)), ";")
    If UBound(Ar2) = 0 Then
    If Ar2(0) = "23:59:59" Then Exit For
        If MinNagr = "" Then
If Ar2(0) <> "00:00:00" Then MinNagr = "00:00:00" & "-" & Format(TimeValue(Ar2(0)) - 1 / 86400, "hh:mm:ss")
        Else
MinNagr = MinNagr & ";" & Format(TimeValue(Ar2(0)) + 1 / 86400, "hh:mm:ss") & "-" & "23:59:59"
        End If
    Else
MinNagr = MinNagr & ";" & Format(TimeValue(Ar2(0)) + 1 / 86400, "hh:mm:ss") & "-" & Format(TimeValue(Ar2(1)) - 1 / 86400, "hh:mm:ss")
    End If
Next
If MinNagr Like ";*" Then MinNagr = VBA.Mid(MinNagr, 2)
End Function
Изменено: Евгений Смирнов - 09.05.2024 10:04:47
Автоматизация ввода времени в ячейку
 
Photavit
Цитата
можете выделить в макросе куда вставить номера ячеек или текс из моего примера, макрос не запускается ...
Это не совсем макрос а UDF пользовательская функция. См файл
Ускорение расчета путем отказа от использования Select и расчет внутри макроса вместо расчета формулой
 
andypetr Зачем  вы сразу все секреты выкладываете. В одной теме по одному надо. :D  
Ускорение расчета путем отказа от использования Select и расчет внутри макроса вместо расчета формулой
 
Здравствуйте От Select надо отказываться, но правильно. Вы переделали на цикл по всем ячейкам, поэтому плохо получилось. Попробуйте так
Код
Sub aaaвв()
Range("P4").AutoFill Destination:=Range("P4").Resize(Range("A4").End(xlDown).Row - Range("P4").Row + 1) 'растянуть формулу
    Calculate 'пересчитать
With Range(Range("P5"), Range("P5").End(xlDown))
.Copy        'выделить вниз
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
              :=False, Transpose:=False 'вставить только значения
End With
End Sub
Символы из одной ячейки перенести в отдельные ячейки и изменить, какйю формулу (или макрос) применить
 
Еще пару формул
Код
=ЕСЛИ((ПСТР($A2;СТОЛБЕЦ(A2);1)= "+");1;0)
Код
=Ч(ПСТР($A2;СТОЛБЕЦ(A2);1)="+")
Символы из одной ячейки перенести в отдельные ячейки и изменить, какйю формулу (или макрос) применить
 
Здравствуйте Макрос для активной ячейке. Справа от нее будет выведен результат
Код
Sub enstaralfdh()
Dim Arr, ArByt() As Byte
ReDim Arr(VBA.Len(ActiveCell) - 1)
ArByt = VBA.StrConv(ActiveCell, vbFromUnicode)
For i = 0 To UBound(ArByt)
If ArByt(i) = 45 Then ArByt(i) = 48
If ArByt(i) = 43 Then ArByt(i) = 49
Arr(i) = VBA.Chr(ArByt(i))
Next
ActiveCell(, 2).Resize(, UBound(ArByt) + 1) = Arr
End Sub
Не удаётся разорвать внешние связи с файлом
 
lectep
Цитата
Я десятки раз пытался разорвать эту связь. У меня на компьютере не работает...
Не удивляйтесь у меня почему то тоже не получается разорвать связь.Видимо Sanja какой то шаманский заговор знает или от офиса зависит.
Формирование списка с уникальными значениями
 
Jack Famous Что то я не догоняю какая разница.. Недели две назад сравнивал работу, сейчас еще раз проверил. Никакой разницы нет в работе в трех вариантах записи Application.WorksheetFunction.Trim, WorksheetFunction.Trim, Application.Trim не нашел. Во всех случаях получается функция рабочего листа. Видимо эксель как то определяет, что это функция рабочего листа. Ведь эксель как то различает функцию Mid и оператор Mid, хотя у них 3 аргумента и все одинаковые. Хотя в принципе конечно лучше писать полностью Application.WorksheetFunction.Trim, но это на уровне подсознания не понятно почему. Вот с Range и Cells понимаю, где надо писать объекты перед ними.
Подсчёт количества обучаючихся на оценки 4 и 5 с помощью формул, Подсчёт количества обучаючихся на оценки 4 и 5 с помощью формул
 
АlехМ Ну как можно забыть как работает триггер. (В принципе без разницы на триоде,тетроде, пентоде, биполярном или полевом транзисторе)

P.S. Хотя уже не все помню. Названия всех сеток у ламп забыл.
Изменено: Евгений Смирнов - 06.05.2024 18:48:01
узнать код цвета ярлычка страницы
 
здравствуйте
john22255 По моему у вас в коде из сообщения №1 сразу ошибки. ColorIndex это 56 цветов от 1 до 56. Color это значение цвета типа Long по моему от 0 до 16777215. ColorIndex не может быть 65536.
P.S По крайней мере так было в старых версиях. В новых может что-то изменилось.
Изменено: Евгений Смирнов - 06.05.2024 18:36:22
[ Закрыто] Помощь новичку
 
Kkast Надо прочитать здесь
Подсчёт количества обучаючихся на оценки 4 и 5 с помощью формул, Подсчёт количества обучаючихся на оценки 4 и 5 с помощью формул
 
Вот  и зачем я несколько статей прочитал про функцию МУМНОЖ надо было немного подождать и АlехМ все бы объяснил гораздо быстрее.  :D
flyymann
Цитата
а в моих интересах её рассказать преподавателю, это моё практическое задание
Надо надеется на лучшее, что ваш преподаватель продвинутый и тоже на этом сайте просматривает темы. Тогда вам не придется объяснять как формула работает., он сам сообщение от АlехМ прочитал.  :D  
Поиск ячейки по условию, присвоение значения, и далее через каждые 36 ячеек присваивать такое же значение
 
Все таки макрос быстрее писать, чем формулу 5 минут.
Код
Sub enstaralrt()
Dim DatN, Per&, i&, Sh1 As Worksheet, Rg1 As Range
Set Sh1 = ActiveWorkbook.ActiveSheet
DatN = Sh1.Range("B6"): Per = Sh1.Range("B8")
Set Rg1 = Sh1.Cells.Find(DatN, , xlFormulas, xlWhole, xlByRows)
If Rg1 Is Nothing Then Exit Sub
For i = 0 To (Rg1.End(xlToRight).Column - Rg1.Column) \ Per
Rg1.Offset(1, i * Per) = "Новый"
Next i
End Sub
Проставить зелёный треугольник во всех ячейках, Проставить зелёный треугольник во всех ячейках
 
DI MAN Хорошее решение.
P.S. Только ТС видимо это больше не интересует. Ни ответа ни привета. :D  
Изменено: Евгений Смирнов - 06.05.2024 09:04:23
Поиск ячейки по условию, присвоение значения, и далее через каждые 36 ячеек присваивать такое же значение
 
Здравствуйте Разбирался с формулой Павел \Ʌ/ и как ни странно даже удалось кое что сочинить.
Код
=ЕСЛИ(ЕСЛИ(ЕОШ(РАЗНДАТ($B6;B2;"m")/$B$8);0,5;РАЗНДАТ($B6;B2;"m")/$B$8)=ЦЕЛОЕ(ЕСЛИ(ЕОШ(РАЗНДАТ($B6;B2;"m")/$B$8);0,5;РАЗНДАТ($B6;B2;"m")/$B$8));"Новый";"")
Код
=ЕСЛИ(ЕОШИБКА(1/(ОСТАТ(РАЗНДАТ($B6;B2;"m");$B8)=0));"";"Новый")
Изменено: Евгений Смирнов - 05.05.2024 23:18:47
Проставить зелёный треугольник во всех ячейках, Проставить зелёный треугольник во всех ячейках
 

В принципе и ручками можно довольно быстро преобразовать число в текст. Для данного файла примера

В ячейке В1 записывает апостроф

В ячейке В2 пишем формулу =$B$1&A2

Протягиваем формулу вниз

Выделяем диапазон с формулами

Нажимаем копировать

Нажимаем спецВставка – Значения

Все в столбце B будут числа в текстовом формате.

Формирование списка с уникальными значениями
 
LKN
Цитата
Уточнение по коду - вызов функции удаления пробелов VBA.Trim обязательно делать с полным указанием (Application.Trim/Application.WorksheetFunction.Trim)? Вроде и без них - работает?
Application.Trim/ и Application.WorksheetFunction.Trim это одно и тоже функция СЖПРОБЕЛЫ рабочего листа.  Для функции рабочего листа обязательно писать  Application.
VBA.Trim это функция  VBA удаление пробелов слева и справа здесь не обязательно писать VBA впереди.
По результату работы они немного различны.  
Формирование списка с уникальными значениями
 
Здравствуйте
Код
Sub enstaraldsfg()
Dim Rg1 As Range, col1 As New Collection, Txt$, i&, j&, Tp1, Arr1
Set Rg1 = ActiveWorkbook.ActiveSheet.Cells(1).CurrentRegion
Arr1 = Rg1.Value
On Error Resume Next
For i = 2 To UBound(Arr1)
    Tp1 = VBA.Split(Arr1(i, 1), ";")
        For j = 0 To UBound(Tp1)
            col1.Add VBA.Trim(Tp1(j)), VBA.Trim(VBA.CStr(Tp1(j)))
         Next j, i
On Error GoTo 0
For i = 1 To col1.Count
If i = 1 Then Txt = col1(i) Else Txt = Txt & "; " & col1(i)
Next i
Rg1.Parent.Range("C1") = Txt
End Sub
Изменено: Евгений Смирнов - 05.05.2024 12:28:49
Проставить зелёный треугольник во всех ячейках, Проставить зелёный треугольник во всех ячейках
 
БМВ
Цитата
простыми действиями в том же столбце не выйдет.
Кнопочку нажать не сложно. Макрос для выделенного диапазона
Изменено: Евгений Смирнов - 05.05.2024 11:13:06
Заполнение ячеек в графике отпусков, Макрос по заполнению линейного графика отпусков
 
Странно почему утром хочется написать побольше и длиннее. Можно ведь покороче
Код
Sub enstaralfh()
Dim Arr1, nRow&, i&, Sh2 As Worksheet, Rg1 As Range
Arr1 = ThisWorkbook.Worksheets(1).Cells(1).CurrentRegion
Set Sh2 = ThisWorkbook.Worksheets(2)
Application.ScreenUpdating = False
    For i = 1 To UBound(Arr1)
    nRow = Sh2.Cells.Find(Arr1(i, 4), , xlValues, xlWhole).Row
    Set Rg1 = Sh2.Cells.Find(Arr1(i, 2), , xlFormulas, xlWhole)
Sh2.Cells(nRow, Rg1.Column).Resize(, VBA.CLng(Arr1(i, 3)) - VBA.CLng(Arr1(i, 2)) + 1) = "a"
    Next i
End Sub
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 38 След.
Наверх