Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 121
1

Макрос: запускать таймер каждый раз в разных ячейках

24.04.2018, 08:48. Просмотров 1046. Ответов 7
Метки нет (Все метки)

Добрый день!Кто может помочь,нужен макрос,который запускает таймер каждый раз в разных ячейках.например,если я ввожу значение в С10,таймер запускается в Н10,С11=Н11,и т.д.?и чтобы он работал не на одном листе,а во все книге?возможно такое устроитЬ?буду очень благодарен
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2018, 08:48
Ответы с готовыми решениями:

Макрос, копирующий данные каждый раз на новый создаваемый лист
Доброй ночи, уважаемые программисты! Обращаюсь с просьбой глянуть макрос на правильность...

Как запускать таймер определенное количество раз?
Здрасьте, помогите пожалуйста, хочу сделать чтобы одна процедура запускалась несколько...

По очереди открывать каждый CSV-файл, запускать макрос и сохранять этот файл в формате XLSX
Добрый день. Помогите написать скрипт который будет: У меня есть много файлов в папке С:\1\...

Макрос, который каждый раз ставит масштаб на 100%
Вроде бы код есть, ставлю его Sub AutoExec() ' 'AutoExec ?????? '...

__________________
7
15018 / 6346 / 1725
Регистрация: 24.09.2011
Сообщений: 9,976
24.04.2018, 09:19 2
Цитата Сообщение от Greysis Посмотреть сообщение
таймер запускается в Н10
Как это?
0
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 121
24.04.2018, 09:27  [ТС] 3
Цитата Сообщение от Казанский Посмотреть сообщение
таймер запускается в Н10
Ну вот я нашел файл,где при вводе в ячейку В1 таймер запускается в А1,я пробовал переделать,и получилось только на одно значение…т.е Вводил значение в С10,таймер запустился в Н10,а для остальных ячеек не понял как сделать
0
Вложения
Тип файла: xls post_381985.xls (32.0 Кб, 3 просмотров)
15018 / 6346 / 1725
Регистрация: 24.09.2011
Сообщений: 9,976
24.04.2018, 14:45 4
Лучший ответ Сообщение было отмечено Greysis как решение

Решение

Greysis, пробуйте
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
'--- ЭтаКника ---
 
Private Sub Workbook_Open()
  Set diAdr = CreateObject("scripting.dictionary")
  bt = Now + SEC
  tmr
End Sub
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  On Error Resume Next
  Application.OnTime bt, "tmr", , False
End Sub
 
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal T As Range)
Dim a$
  Set T = Intersect(T, Sh.Columns("C"), Sh.UsedRange)
  If T Is Nothing Then Exit Sub
  On Error Resume Next
  Application.EnableEvents = False
  For Each T In T.Cells
    a = "'" & Sh.Name & "'!" & T.Address(0, 0)
    If VarType(T.Value) = vbEmpty Then
      T.Offset(, 5).ClearContents
      diAdr.Remove a
    ElseIf Not diAdr.exists(Sh.CodeName & T.Address(0, 0)) Then
      diAdr(a) = Empty
    End If
  Next
  Application.EnableEvents = True
End Sub
 
'--- Module1 ---
 
Public Const SEC As Date = #12:00:01 AM#
Public bt As Date, StopTimer As Boolean, diAdr As Object
 
Sub tmr()
Dim a
  bt = bt + SEC
  Application.OnTime bt, "tmr"
  On Error Resume Next
  Application.EnableEvents = False
  For Each a In diAdr.keys
    With Range(a).Offset(, 5)
      .Value = .Value + SEC
    End With
  Next
  Application.EnableEvents = True
End Sub
1
Вложения
Тип файла: xls post_381985.xls (46.5 Кб, 1 просмотров)
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 121
24.04.2018, 15:42  [ТС] 5
Цитата Сообщение от Казанский Посмотреть сообщение
пробуйте
В вашем примере все работает замечательно,как надо почти,единственное хотелось бы, чтобы он срабатывал в радиусе С7:С200
но вот есть все равно проблема,в моем документе он не работает,что не так?
0
Вложения
Тип файла: xls 111.xls (22.4 Кб, 2 просмотров)
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 121
24.04.2018, 15:48  [ТС] 6
Цитата Сообщение от Казанский Посмотреть сообщение
пробуйте
ааа,все,из-за расширения *xlsm не работало,поставил *xls и все заработало,спасибо огромное)
0
15018 / 6346 / 1725
Регистрация: 24.09.2011
Сообщений: 9,976
24.04.2018, 16:21 7
Цитата Сообщение от Greysis Посмотреть сообщение
чтобы он срабатывал в радиусе С7:С200
16-я строка в #4
Visual Basic
1
Set T = Intersect(T, Sh.Range("C7:C200"))
0
6822 / 2764 / 520
Регистрация: 19.10.2012
Сообщений: 8,432
24.04.2018, 18:33 8
Цитата Сообщение от Greysis Посмотреть сообщение
ааа,все,из-за расширения *xlsm не работало,поставил *xls и все заработало
- чушь.
Хотя если изначально файлу xls заменить расширение на xlsm - то конечно вообще файл не откроется, это можно воспринимать как "не работает"... Только вот откуда такой файл взялся?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2018, 18:33

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Может ли таймер запускать другие таймеры в отдельных потоках
таймер запускает другие таймеры в отдельных потоках?

Как запускать макрос каждые 10 секунд?
Народ, помогите пож-та. Замучился совсем. Мне надо запускать макрос каждые 20 сек. Как это можно...

Нужен макрос удаляющий значения в ячейках
Подскажите макрос который будет удалять все значения в ячейках после 44 строки и до 15000 ,ячейки...

Макрос перехода к датам в ячейках Excel
Здравствуйте! Я VBA почти не знаю. Веду БД в Excel и встала необходимость перехода к определенной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.