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

Страницы: 1 2 3 4 След.
Как прописать в макросе адрес ячейки из другого листа
 
Вы вообще не поняли что мне нужно, но это уже не важно, я сам методом тыка разобрался, вот как надо писать:
Код
Sub проба()
проверка True, [Лист1!B4].Value + [Лист1!C4].Value
End Sub
Изменено: vikttur - 20.08.2021 21:10:34
Как прописать в макросе адрес ячейки из другого листа
 
вот пожалуйста для эксперимента выкладываю пример с макросом и там на листе1 в ячейке B4 задайте текущее время и к нему прибавляется + 1минута, которая уже введена в соседней ячейке C4, чтобы макрос выполнялся по времени до наступления текущего времени на 1 минуту большего.
И на Листе2 нажмите на кнопку, чтобы проверить как работает макрос, он с периодичностью в 1 секунду переходит на листе2 с ячейки F6 на ячейку F7 и наоборот.
И в макросах за это отвечает код:
Код
Sub проба()
проверка True, [B4].Value + [C4].Value
End Sub

Если запустить макрос "проба" на Листе1, то он будет работать, так как значения из ячеек B4 и C4 он увидит в этом листе !
Вот и проверьте свои предложенные варианты! Они не пашут!  Жду очень правильного решения....
Как прописать в макросе адрес ячейки из другого листа
 
вы пробовали для начала сами проверить работает так или нет? НЕТ так не работает!
Жду другого решения.....
Изменено: vikttur - 20.08.2021 21:08:58
Как прописать в макросе адрес ячейки из другого листа
 
У меня есть кусок макроса, который определяет какой макрос выполнить макрос1 или макрос2, и как видно из кода выполнение макроса1 происходит до суммарного времени, которое получается при сложении значений времени из ячеек D4 и D5 в активном листе, в которых введено время в формате 00:00:00
Код
Sub транслировать_видео_из_текущего_плейлиста()
If Sheets("лист1").Range("A5").Value = ЛОЖЬ Then
макрос1 True, [D4].Value + [D5].Value
Else
макрос2 False
End If
End Sub

Так вот вопрос мой такой - как мне прописать адреса ячеек D4 и D5 не из активного листа, а из другого с его названием?
Т.е. я так понимаю должно быть что-то типа
макрос1 True, [Лист2!D4].Value + [Лист2!D5].Value
Но такой вид конечно не работает, а какой вид должен быть подскажите?
Изменено: vikttur - 20.08.2021 21:08:30
Можно ли сделать меняющееся условие для работы цикла Do/Loop?
 
Nordheim СПАСИБО ВАМ! вот то что было нужно.
вот я понимаю помощь без всяких выпендрёжей и обид детских...
молодца!!!
Можно ли сделать меняющееся условие для работы цикла Do/Loop?
 
а если я приношу свои глубочайшие извинения ?
Можно ли сделать меняющееся условие для работы цикла Do/Loop?
 
vikttur, предложенный способ я и сам знаю, но он мне не подходит, так как код самого цикла имеет очень большой размер !!!
поэтому я и хотел узнать - есть ли способ чтобы не писать 2 раза огромные коды циклов, а сразу определить по какому условию работать циклу и написать его огромный код только 1 раз !!!
ну раз так нельзя, то значит буду 2 раза свой огромный цикл прописывать !!!
Изменено: макс 1 - 14.04.2020 15:57:54
Можно ли сделать меняющееся условие для работы цикла Do/Loop?
 
Цитата
vikttur написал:
Вы описывали не ЗАДАЧУ, а придуманный ПУТЬ РЕШЕНИЯ какой-то ЗАДАЧИ!
а другого пути и нет для моей задачи.
Так как у меня есть огромный список из ссылок на видео файлы на компьютере и также в соседнем столбце есть время продолжительности этих фалов.
И мне надо их транслировать постоянно, но иногда в разных режимах:
1) я ввожу значение "1" в ячейке А5 и ввожу в ячейку D4 время окончания трансляции, после этого нажимаю на кнопку запуска трансляции и в это время из ячейки D4 цикл транслирования прекращается
2) я удаляю значение в ячейке А5, после этого нажимаю на кнопку запуска трансляции и цикл транслирования не прекращается никогда, так как время трансляции я сам по факту определяю, нажав Ctrl+Break, так как другого способа остановить бесконечный цикл нет
Вот такая у меня задача. И что вам теперь это даст ?
Можно ли сделать меняющееся условие для работы цикла Do/Loop?
 
вот задача: я её уже описывал
как видно из кода - я хочу чтобы до начала цикла определялось бы условие для него!
Т.е.  если на листе1 в ячейке А5 введено значение "1", то цикл бы выполнялся с  условием Do Until TimeValue(Now) >= Range("D4").Value   (или другими  словами до наступления указанного времени в ячейке D4)
а если бы на  листе1 в ячейке А5 было бы не введено значение "1", то цикл бы  выполнялся с условием Do Until TimeValue(Now) <> TimeValue(Now)   (или другими словами бесконечно, пока вручную не оставишь цикл, нажав  Ctrl+Break)

и файл прикладываю для примера!!!
Можно ли сделать меняющееся условие для работы цикла Do/Loop?
 
Цитата
vikttur написал:
Вот это вообще бессмыслица - время не равно само себе:Код ? 1TimeValue(Now) <> TimeValue(Now)
ну скажите как нужно написать выбор условия для цикла когда надо работать бесконечно, а когда до указанного в ячейке времени !!
а не писать что отдельно какие-то куски кода неверные. я и сам понимаю что здесь много есть ошибок и спрашиваю как надо правильно писать
Можно ли сделать меняющееся условие для работы цикла Do/Loop?
 
Цитата
vikttur написал:
go1 сразу получает булево значение (True, False), его Вы и передаете в циклSet - это присвоение объекта переменой, здесь вообще не к месту.
так вот такой код также не работает как нужно
Код
Dim go1 
If Sheets("ÏÓÍÊÒ ÓÏÐÀÂËÅÍÈß").Range("A5").Value = ËÎÆÜ Then 
go1 = TimeValue(Now) >= Range("D4").Value 
Else 
go1 = TimeValue(Now) <> TimeValue(Now) 
End If 

Do Until go1
Range("D12").Select
Application.Wait Time:=Now + TimeValue("00:00:01")
Range("D13").Select
Application.Wait Time:=Now + TimeValue("00:00:01")
Loop
и всегда для цикла определяется условие бесконечно работать Do Until TimeValue(Now) <> TimeValue(Now)

так что проблема всё равно не в set !!!
Изменено: макс 1 - 14.04.2020 15:15:53
Можно ли сделать меняющееся условие для работы цикла Do/Loop?
 

у меня есть следующий код цикла

Код
Sub проба()
Dim go1
If Sheets("Лист1").Range("A5").Value = 1 Then
Set go1 = TimeValue(Now) >= Range("D4").Value
Else
Set go1 = TimeValue(Now) <> TimeValue(Now)
End If

Do Until go1
Range("D12").Select
Application.Wait Time:=Now + TimeValue("00:00:01")
Range("D13").Select
Application.Wait Time:=Now + TimeValue("00:00:01")
Loop

End Sub
как видно из кода - я хочу чтобы до начала цикла определялось бы условие для него!
Т.е. если на листе1 в ячейке А5 введено значение "1", то цикл бы выполнялся с условием Do Until TimeValue(Now) >= Range("D4").Value   (или другими словами до наступления указанного времени в ячейке D4)
а если бы на листе1 в ячейке А5 было бы не введено значение "1", то цикл бы выполнялся с условием Do Until TimeValue(Now) <> TimeValue(Now)  (или другими словами бесконечно, пока вручную не оставишь цикл, нажав Ctrl+Break)

Но проблема в том, что такой код будет всегда задавать условие для цикла работать бесконечно (Do Until TimeValue(Now) <> TimeValue(Now))

Я так понимаю, что проблема кроется или в объявлении переменной Dim go1 или выборе выражения для условия окончания цикла в зависимости от значения в ячейке А5.
Подскажите в чём моя проблема? Как здесь правильно будет задание переменной и определение выражения для цикла?
вставить скопированные данные из excel в окно видеоплеера или запустить видеофайлы из excel ?, как можно вставить скопированные данные из excel в окно видеоплеера или как запустить видеофайлы из excel ?
 
в принципе решил сам свою проблему!

нашёл такой код
Код
Call Shell("C:\Program Files\PotPlayer\PotPlayerMini64.exe " & ActiveCell.Value, 1)
этот код открывает видеофайл, путь к которому указан в активной ячейке в excel, с помощью указанной программы Potplayer.
всё решение найдено, всем спасибо!!!

и пробел в указании пути к программе между PotPlayerMini64.exe и кавычками \PotPlayerMini64.exe "  - ОБЯЗАТЕЛЕН !!!! иначе не работает !!!
Изменено: макс 1 - 10.04.2020 16:02:13
вставить скопированные данные из excel в окно видеоплеера или запустить видеофайлы из excel ?, как можно вставить скопированные данные из excel в окно видеоплеера или как запустить видеофайлы из excel ?
 
прикладываю свой файл для просмотра моего кода excel.
Задача такая :
у меня в excel есть список видеофайлов, пути к которым указаны в отдельных ячейках.
В частности сейчас пока нужно так - макрос у меня с именем
"Sub поиск_и_передача_окну_видеоплеера_Potplayer_адреса_видеофайл­а()" будет копировать адрес к файлу из ячейки A2 и делать активным уже запущенное ранее окно видеоплеера PotPlayer и вставлять в него скопированный адрес файла путём передачи сочетания клавиш Ctrl+V.  Окно плеера делается активным, но вот вставить данные не могу.  А в этом видеоплеере если что по нажатию клавиш Ctrl+V вставляется путь к файлу из буфера обмена и начинается его проигрывание !
Изменено: макс 1 - 10.04.2020 15:24:44
Как получить продолжительность видеофайлов из созданного списка в excel с путями к файлам?
 
Цитата
Андрей Лящук написал:
ну дык UDF должны в стандартном модуле лежать

Прикрепленные файлы
проба2.xlsm  (27.35 КБ)
Да спасибо, всё работает!  понял свою ошибку!
надо ваш код вставлять не в код листа, а в код в созданном модуле!
Изменено: макс 1 - 10.04.2020 09:43:02
Как получить продолжительность видеофайлов из созданного списка в excel с путями к файлам?
 
Цитата
Андрей Лящук написал:
=GetDuration(A2)
я вставил на листе 1 ваш код:
Код
Public Function GetDuration(sHref$) As Single
     Dim oFile As Object
     On Error Resume Next
     Set oFile = GetDesktop.parsename(sHref)
     GetDuration = TimeValue(oFile.Parent.getdetailsof(oFile, 27))
     Set oFile = Nothing
 End Function
 Private Function GetDesktop()
     Static Desktop As Object
     If Desktop Is Nothing Then
         Set Desktop = CreateObject("shell.application").Namespace(0)
     End If
     Set GetDesktop = Desktop
  End Function

и вставил формулу в ячейку В2
=GetDuration(A2)

НО НИЧЕГО НЕ РАБОТАЕТ !!  пишет ошибку в формуле #ИМЯ?

может кто-то сделать готовый вариант в excel и выложить тут, а то не сильно разбираюсь если мне отдельно какие-то кусочки пазла дают, а что куда надо вставлять ещё кроме этого я не знаю.. мне надо полностью расписать что и куда писать, а лучше как я сказал приложить файл в excel !!
Изменено: макс 1 - 10.04.2020 08:49:53
Как получить продолжительность видеофайлов из созданного списка в excel с путями к файлам?
 
на форуме я нашёл тему с решением похожей задачи, что и у меня
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=123761&a...
но там рассматривается вариант, при котором надо указывать папку на компьютере, в которой находятся нужные видеофайлы, для получения их данных.
И при чём ещё и ограниченно выбираются расширения файлов ("*.avi;*.mp4;*.wmv;*.vob"), а если у меня есть и другие форматы видео, то как быть ???
Я создал и приложил свой вариант для наглядности, чтобы вы понимали как я хочу получать длительность видеофайлов.

Там создан список где указаны пути к каждому видеофайлу отдельно, типа
\\Максим-пк\2- музыка\2- Клипы и концерты\- Зарубежные исполнители\The Dream Academy - Life In A Northern Town.mp4
но путь также может быть и другим, например

D:\2- музыка\2- Клипы и концерты\- Зарубежные исполнители\The Dream Academy - Life In A Northern Town.mp4

И я создал типа кнопку синюю, при нажатии на которую, выполнялся бы макрос для получения только длительности каждого видеофайла из моего списка и длительность бы вставлялась напротив пути к файлу справа в столбце В.
И ещё у меня список в примере небольшой из 8 файлов, а может быть очень большим порядка 5000 файлов и мне надо чтобы макрос понимал и проверял есть ли в следующей нижней ячейке в столбце А путь к файлу, и если есть, то вставлял бы продолжительность файла, а если пути нет и ячейка пустая, то макрос бы перестал работать и остановился бы.

Для понятия или сравнения я скопировал из вышеуказанной темы на форуме один рабочий вариант получения нескольких данных файлов из указанной папки.
Но мне не нужно указывать папку с файлами, у меня уже есть созданный список файлов и мне нужно узнать только продолжительность это я так понял данные в коде objFolder.GetDetailsOf(File, 27)
Изменено: макс 1 - 09.04.2020 23:40:56
Определить, сколько строк останется на последней странице после добавления новых строк на листе, макросом
 
Код
Sub PagesCount()
    With ActiveSheet
        .Range("L2") = .HPageBreaks.Count + 1
        fRow = .HPageBreaks(.HPageBreaks.Count).Location.Cells.Row
        lRow = .Cells(.Rows.Count, 2).End(xlUp).Row
        .Range("L3") = lRow - fRow + 1
    End With
End Sub

Да нормально, но есть один минус, если скрываем к примеру все строки на последней странице, то макрос выдает ошибку !!!!!!
Можно подкорректировать с учетом этого ?!  Я забыл добавить, что некоторые строки я могу не удалять а еще и скрывать !!!

Получается у меня 1 страница и на ней 37 строк, но макрос не хочет эти данные давать !!!!
Определить, сколько строк останется на последней странице после добавления новых строк на листе, макросом
 
Да нормально, но есть один минус, если скрываем к примеру все строки на последней странице, то макрос выдает ошибку !!!!!!
Можно подкорректировать с учетом этого ?!  Я забыл добавить, что некоторые строки я могу не удалять а еще и скрывать !!!

Получается у меня 1 страница и на ней 37 строк, но макрос не хочет эти данные давать !!!!
Изменено: макс 1 - 29.11.2016 11:54:12
Определить, сколько строк останется на последней странице после добавления новых строк на листе, макросом
 
У меня есть лист, где я удаляю старые строки или добавляю новые строки с данными по мере поступления данных.
После этого на листе происходит изменение положения разрыва страниц и в итоге кол-во страниц может быть 1шт, а может быть и более.
Для наглядности я прикладываю файл с примером.....
Так вот мне нужно чтобы после добавления или удаления строк я нажимал на кнопку и макрос определял и вводил в ячейки следующие данные : на листе в ячейке L2 - сколько стало страниц, а в ячейке L3 - сколько строк на последней странице (если кол-во страниц более 1 шт / или же на первой странице, если кол-во страниц 1шт).
ПОМОГИТЕ, ПОДСКАЖИТЕ команды макроса как это можно сделать ?!?!?!?!  :cry:
не работает команда Application.SendKeys "{NUMPAD5}"
 
здесь мне нужно видеть что я ввёл в ячейке !
не работает команда Application.SendKeys "{NUMPAD5}"
 
я хочу видеть что в ячейке ввелось в итоге, если Numlock был включен, то в ячейке введется цифра 5, а если Numlock был выключен, то в ячейке ничего не введется и от этого уже дальше отталкиваться !
не работает команда Application.SendKeys "{NUMPAD5}"
 
нет это не то !!!!! это вы таким образом просто пишите символ 5 в ячейку, а мне нужно чтобы нажималась именно клавиша "5" справа где стрелки !!!  (т.е. На numpad)
Макрос проверки состояния включён или нет NumLock, макрос не работает
 
как сделать проверку включен или нет NumLock ????????
Макрос проверки состояния включён или нет NumLock, макрос не работает
 
Цитата
Слэн написал:
написал как понял сам, так?
ps ничего не проверяет, просто включает намлук

Прикрепленные файлы
111.xlsm (16.6 КБ)

Изменено: Слэн - 29 Июн 2015 11:26:02


Живи и дай жить..
не подходит - включать я и сам знаю как NumLock, и если Numlock был включен до срабатывания макроса, то после его выполнения Numlock наоборот выключается, т.е. команда работает не только как включение, но и как выключение в случае повторного выполнения, А мне нужно именно включать Numlock если он при этом не включен, а как это проверить незнаю !!!!! Может есть какая команда работающая только на включение Numlock и повторно не выключающая его ?????
не работает команда Application.SendKeys "{NUMPAD5}"
 
ХОРОШО !!!!!!
не работает команда Application.SendKeys "{NUMPAD5}"
 
я к людям обращаюсь за помощью - пока её не получил, что ещё надо-то ????  как кто-то поможет я его ОЧЕНЬ ОТБЛАГОДАРЮ !!!!!, что мне теперь на каждый неподходящий совет отвечать неподходит ????
не работает команда Application.SendKeys "{NUMPAD5}"
 
А насчет ответить - нечего отвечать-то пока ничего толкового не сказали, а что сказали не подходит, это я и сам уже все делал !!!!!!!!
не работает команда Application.SendKeys "{NUMPAD5}"
 
прикладываю файл для наглядности, где после нажатия на кнопку выделяется ячейка Н6 и нажимается клавиша numpad5 (т.е. это клавиша справа, где цифры и стрелки, которые завязаны на NumLock), так вот почему не работает команда Application.SendKeys "{NUMPAD5}"  ????????
Макрос проверки состояния включён или нет NumLock, макрос не работает
 
скриншот 1
Страницы: 1 2 3 4 След.
Наверх