Страницы: 1
RSS
VBA- запуск кода в указанной дате
 
Друзья привет. Нужна помощь. Поискал везде, но не нашел. Я хочу написать код, которая запустит сама себя в указанную дату и заменит все формулы в файле на значения.

В интернете нашел код который запускается на основе времени.
Код
If Date = #10/30/2005# Then
DoCmd.RunMacro "MacroNameHere"

End If

А это код которая заменяет все формулы на значения.
Код
Sub ConvertFormulasToValuesAllWorksheets()

    Dim ws As Worksheet, rng As Range

    For Each ws In ActiveWorkbook.Worksheets

        For Each rng In ws.UsedRange

            If rng.HasFormula Then

                rng.Formula = rng.Value

            End If

        Next rng

    Next ws
 End Sub
 
Код можно запускать на событие "Открытие файла".
При открытии файла будет проведена проверка текущей даты и запуск процедуры, если проверка дала положительный результат.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Михаил Лебедев, Можете подсказать как записать этот код?
 
ramin911, ну есть же яндекс и гугл...
 
в модуль эта книга:
Код
Private Sub Workbook_Open()
  If Date = CDate("14.08.2022") Then ' выполнить макрос
End Sub

только если 14.08.2022 окажется воскресенье и никто этот файл не отккроет, то он НИКОГДА не выполнит макрос написанный вами после Then
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
tutochkin написал:
ну есть же яндекс и гугл...
Злой ты
Код
Private Sub Workbook_Open() 
If Date > DateValue("14 августа 2022") Then
Range ("A1:A100").Value = Range ("A1:A100").Value
End If
End Sub
 
tutochkin, к сожалению не нашел поэтому и сюда написал за помощью
 
ТУТ можете почитать как преобразовать формулы в значения
 
Ігор Гончаренко, поэтому я хочу, чтобы даже если не откроют файл, код сам запустил себя.

Это возможно?
 
Код сам себя запустить не может никак. Это может сделать либо Excel при открытии файла, либо сторонняя программа.
 
сам себя он запустить не может
но его (файл) может запустить Windows из календаря своих задач
но тоже есть момент  - компьютер должен быть включен, Windows должен работать))
Изменено: Ігор Гончаренко - 10.08.2022 14:54:59
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, Если я в ячейку B38 поставлю формулу "Today" и запишу код в таком формате, чтобы по истечению установленной даты, не имея значения когда файл будет открыт, код запустился.

Так верно?
Код
Sub Wrokbook_open()

If Worksheet.("Name").Range("B38") > DateValue("11/09/2022") Then

Call MyCode

End If

End Sub
Изменено: ramin911 - 10.08.2022 15:38:53
 
Цитата
Ігор Гончаренко: но тоже есть момент  - компьютер должен быть включен, Windows должен работать
:D  :D  :D
Компьютер должен существовать  :)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
ramin911 написал:
Так верно?
смотря чего вы добиваетесь (вы задачу не обьясняли)
так с 11.09.2022 будет срабатывать при КАЖДОМ! открытии файла (пожизненно)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
так с 11.09.2022 будет срабатывать при КАЖДОМ! открытии файла (пожизненно)
По видимому, это дата увольнения и после неё хоть пожар  :D
 
Очередной "сжигатель мостов"…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Ігор Гончаренко, задача состоит в том, чтобы после поставленной даты все форммулы поменялись на значения. Думаю одного раза хватит, чтобы формула сработала и после этого сохранила файл.

Пути назад не будет :D  
 
Что ж все злые какие  :(
Изменено: Msi2102 - 11.08.2022 08:22:50
 
Код
Sub Wrokbook_open()
  If Worksheet.("Name").Range("B38") > DateValue("11/09/2022") Then
   Call MyCode
   Worksheet.("Name").Range("B38").Clearcontents
   Thisworkbook.Save
  End If
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, Большое спасибо.
 
Ігор Гончаренко, я думаю, что лучше точки в коде заменить на букву "s" у слова Worksheet. , чтобы получилось
Код
Sub Wrokbook_open()
    If Worksheets("Name").Range("B38") > DateValue("11/09/2022") Then
        Call MyCode
        Worksheets("Name").Range("B38").ClearContents
        ThisWorkbook.Save
    End If
End Sub
Изменено: New - 15.08.2022 03:09:12
 
New,
я думаю, что ту фигню, что я написал лучше не использовать ни в каком виде, особенно в исправленном
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх