Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как применить макрос сразу ко всей книге целиком? - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как применить макрос сразу ко всей книге целиком? (Формулы)
Как применить макрос сразу ко всей книге целиком?
Ekaterina Дата: Среда, 30.10.2013, 15:23 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вот написала я макрос. А применить могу его только на том листе, на котором нахожусь. Захожу в список макросов, выбираю конкретный макрос и нажимаю "выполнить".
А как сделать так, чтоб этот выбранный мной макрос применился сразу ко всем листам данной книги?
Спасибо
 
Ответить
СообщениеВот написала я макрос. А применить могу его только на том листе, на котором нахожусь. Захожу в список макросов, выбираю конкретный макрос и нажимаю "выполнить".
А как сделать так, чтоб этот выбранный мной макрос применился сразу ко всем листам данной книги?
Спасибо

Автор - Ekaterina
Дата добавления - 30.10.2013 в 15:23
Serge_007 Дата: Среда, 30.10.2013, 15:26 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2748 ±
Замечаний: ±

Excel 2016
как сделать так, чтоб этот выбранный мной макрос применился сразу ко всем листам данной книги?
Указать эти листы в макросе

[p.s.]Вы вообще видели в какой раздел постите? При чем здесь формулы?
Тему перенес[/p.s.]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
как сделать так, чтоб этот выбранный мной макрос применился сразу ко всем листам данной книги?
Указать эти листы в макросе

[p.s.]Вы вообще видели в какой раздел постите? При чем здесь формулы?
Тему перенес[/p.s.]

Автор - Serge_007
Дата добавления - 30.10.2013 в 15:26
SkyPro Дата: Среда, 30.10.2013, 15:30 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub sshheeetttss()
Dim i&
For i = 1 To .sheets.Count
     ThisWorkbook.sheets(i).Activate
         ' ваш макрос
Next
End Sub
[/vba]


skypro1111@gmail.com
 
Ответить
Сообщение[vba]
Код
Sub sshheeetttss()
Dim i&
For i = 1 To .sheets.Count
     ThisWorkbook.sheets(i).Activate
         ' ваш макрос
Next
End Sub
[/vba]

Автор - SkyPro
Дата добавления - 30.10.2013 в 15:30
Ekaterina Дата: Среда, 30.10.2013, 18:48 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Serge_007,
P.S.
Вы вообще видели в какой раздел постите? При чем здесь формулы?
Тему перенес


Ой, извините :'(
 
Ответить
СообщениеSerge_007,
P.S.
Вы вообще видели в какой раздел постите? При чем здесь формулы?
Тему перенес


Ой, извините :'(

Автор - Ekaterina
Дата добавления - 30.10.2013 в 18:48
Ekaterina Дата: Среда, 30.10.2013, 18:49 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
SkyPro, спасибо большое! Сейчас попробую
 
Ответить
СообщениеSkyPro, спасибо большое! Сейчас попробую

Автор - Ekaterina
Дата добавления - 30.10.2013 в 18:49
Alex_ST Дата: Среда, 30.10.2013, 20:18 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3199
Репутация: 606 ±
Замечаний: 0% ±

2003
Ну, что-то я сильно сомневаюсь, что всё так просто, как написал SkyPro.
Скорее всего всё-таки макрос нужно будет перенести в стандартный модуль и, перебирая страницы в цикле, внутри циклов указывать перед Cells и Range имя листа - переменную цикла.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНу, что-то я сильно сомневаюсь, что всё так просто, как написал SkyPro.
Скорее всего всё-таки макрос нужно будет перенести в стандартный модуль и, перебирая страницы в цикле, внутри циклов указывать перед Cells и Range имя листа - переменную цикла.

Автор - Alex_ST
Дата добавления - 30.10.2013 в 20:18
SkyPro Дата: Среда, 30.10.2013, 20:54 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Alex_ST, ну в условиях задачи нет ничего. Ни файла, ни кода. Так что я выдал стандартный вариант, где все действия применяются к Activesheet.
Если бы люди читали правила, или, хотя бы понимали, что для решения вопроса недостаточно попросить кнопку "сделать как надо", то и ответ был бы другой )


skypro1111@gmail.com
 
Ответить
СообщениеAlex_ST, ну в условиях задачи нет ничего. Ни файла, ни кода. Так что я выдал стандартный вариант, где все действия применяются к Activesheet.
Если бы люди читали правила, или, хотя бы понимали, что для решения вопроса недостаточно попросить кнопку "сделать как надо", то и ответ был бы другой )

Автор - SkyPro
Дата добавления - 30.10.2013 в 20:54
Ekaterina Дата: Четверг, 31.10.2013, 09:57 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
SkyPro, нет, не работает!
[moder]Странно.
Если бы люди читали правила, или, хотя бы понимали, что для решения вопроса недостаточно попросить кнопку "сделать как надо", то и ответ был бы другой )
 
Ответить
СообщениеSkyPro, нет, не работает!
[moder]Странно.
Если бы люди читали правила, или, хотя бы понимали, что для решения вопроса недостаточно попросить кнопку "сделать как надо", то и ответ был бы другой )

Автор - Ekaterina
Дата добавления - 31.10.2013 в 09:57
Ekaterina Дата: Четверг, 31.10.2013, 10:05 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Alex_ST,
SkyPro, вот этот макрос. Только прошу сильно не смеяться :) Я не умею писать макросы, так что делала его просто с помощью кнопки "запись макроса", потом зашла в "изменить макрос" и добавила пароль защиты листа. Где тут в этом коде надо поменять так, чтобы он применялся сразу ко всем листам? Спасибо!

[vba]
Код
Sub защитить_листы()
'
' защитить_листы Макрос
'

'
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 26
ActiveWindow.SmallScroll Down:=-9
Range("AE13:AP27").Select
Range(Selection, Selection.End(xlDown)).Select
Range("AE13:AP638").Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 36
ActiveWindow.ScrollColumn = 37
ActiveWindow.ScrollColumn = 38
ActiveWindow.ScrollColumn = 39
ActiveWindow.ScrollColumn = 40
ActiveWindow.ScrollColumn = 41
ActiveWindow.ScrollColumn = 42
ActiveWindow.ScrollColumn = 43
ActiveWindow.ScrollColumn = 44
ActiveWindow.ScrollColumn = 45
ActiveWindow.ScrollColumn = 46
ActiveWindow.ScrollColumn = 47
ActiveWindow.ScrollColumn = 48
Range("BF11").Select
Selection.Locked = False
Selection.FormulaHidden = False
Range("BN631:BR638").Select
Range("BN638").Activate
ActiveWindow.ScrollRow = 608
ActiveWindow.ScrollRow = 605
ActiveWindow.ScrollRow = 599
ActiveWindow.ScrollRow = 593
ActiveWindow.ScrollRow = 582
ActiveWindow.ScrollRow = 566
ActiveWindow.ScrollRow = 551
ActiveWindow.ScrollRow = 533
ActiveWindow.ScrollRow = 514
ActiveWindow.ScrollRow = 478
ActiveWindow.ScrollRow = 444
ActiveWindow.ScrollRow = 394
ActiveWindow.ScrollRow = 358
ActiveWindow.ScrollRow = 328
ActiveWindow.ScrollRow = 297
ActiveWindow.ScrollRow = 279
ActiveWindow.ScrollRow = 270
ActiveWindow.ScrollRow = 260
ActiveWindow.ScrollRow = 250
ActiveWindow.ScrollRow = 239
ActiveWindow.ScrollRow = 230
ActiveWindow.ScrollRow = 209
ActiveWindow.ScrollRow = 202
ActiveWindow.ScrollRow = 201
ActiveWindow.ScrollRow = 195
ActiveWindow.ScrollRow = 191
ActiveWindow.ScrollRow = 187
ActiveWindow.ScrollRow = 181
ActiveWindow.ScrollRow = 177
ActiveWindow.ScrollRow = 174
ActiveWindow.ScrollRow = 170
ActiveWindow.ScrollRow = 166
ActiveWindow.ScrollRow = 163
ActiveWindow.ScrollRow = 158
ActiveWindow.ScrollRow = 152
ActiveWindow.ScrollRow = 144
ActiveWindow.ScrollRow = 137
ActiveWindow.ScrollRow = 128
ActiveWindow.ScrollRow = 119
ActiveWindow.ScrollRow = 110
ActiveWindow.ScrollRow = 103
ActiveWindow.ScrollRow = 96
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 86
ActiveWindow.ScrollRow = 83
ActiveWindow.ScrollRow = 79
ActiveWindow.ScrollRow = 76
ActiveWindow.ScrollRow = 74
ActiveWindow.ScrollRow = 71
ActiveWindow.ScrollRow = 70
ActiveWindow.ScrollRow = 68
ActiveWindow.ScrollRow = 67
ActiveWindow.ScrollRow = 65
ActiveWindow.ScrollRow = 63
ActiveWindow.ScrollRow = 61
ActiveWindow.ScrollRow = 60
ActiveWindow.ScrollRow = 56
ActiveWindow.ScrollRow = 52
ActiveWindow.ScrollRow = 49
ActiveWindow.ScrollRow = 47
ActiveWindow.ScrollRow = 45
ActiveWindow.ScrollRow = 43
ActiveWindow.ScrollRow = 41
ActiveWindow.ScrollRow = 39
ActiveWindow.ScrollRow = 35
ActiveWindow.ScrollRow = 32
ActiveWindow.ScrollRow = 31
ActiveWindow.ScrollRow = 27
ActiveWindow.ScrollRow = 25
ActiveWindow.ScrollRow = 23
ActiveWindow.ScrollRow = 21
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 14
ActiveWindow.ScrollRow = 13
Range("BN13:BR638").Select
Range("BN638").Activate
Selection.Locked = False
Selection.FormulaHidden = False
ActiveWindow.ScrollColumn = 45
ActiveWindow.ScrollColumn = 41
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 5
ActiveWindow.SmallScroll Down:=-9
Range("D8").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Password:="art789", Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True
End Sub
[/vba]
 
Ответить
СообщениеAlex_ST,
SkyPro, вот этот макрос. Только прошу сильно не смеяться :) Я не умею писать макросы, так что делала его просто с помощью кнопки "запись макроса", потом зашла в "изменить макрос" и добавила пароль защиты листа. Где тут в этом коде надо поменять так, чтобы он применялся сразу ко всем листам? Спасибо!

[vba]
Код
Sub защитить_листы()
'
' защитить_листы Макрос
'

'
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 26
ActiveWindow.SmallScroll Down:=-9
Range("AE13:AP27").Select
Range(Selection, Selection.End(xlDown)).Select
Range("AE13:AP638").Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 36
ActiveWindow.ScrollColumn = 37
ActiveWindow.ScrollColumn = 38
ActiveWindow.ScrollColumn = 39
ActiveWindow.ScrollColumn = 40
ActiveWindow.ScrollColumn = 41
ActiveWindow.ScrollColumn = 42
ActiveWindow.ScrollColumn = 43
ActiveWindow.ScrollColumn = 44
ActiveWindow.ScrollColumn = 45
ActiveWindow.ScrollColumn = 46
ActiveWindow.ScrollColumn = 47
ActiveWindow.ScrollColumn = 48
Range("BF11").Select
Selection.Locked = False
Selection.FormulaHidden = False
Range("BN631:BR638").Select
Range("BN638").Activate
ActiveWindow.ScrollRow = 608
ActiveWindow.ScrollRow = 605
ActiveWindow.ScrollRow = 599
ActiveWindow.ScrollRow = 593
ActiveWindow.ScrollRow = 582
ActiveWindow.ScrollRow = 566
ActiveWindow.ScrollRow = 551
ActiveWindow.ScrollRow = 533
ActiveWindow.ScrollRow = 514
ActiveWindow.ScrollRow = 478
ActiveWindow.ScrollRow = 444
ActiveWindow.ScrollRow = 394
ActiveWindow.ScrollRow = 358
ActiveWindow.ScrollRow = 328
ActiveWindow.ScrollRow = 297
ActiveWindow.ScrollRow = 279
ActiveWindow.ScrollRow = 270
ActiveWindow.ScrollRow = 260
ActiveWindow.ScrollRow = 250
ActiveWindow.ScrollRow = 239
ActiveWindow.ScrollRow = 230
ActiveWindow.ScrollRow = 209
ActiveWindow.ScrollRow = 202
ActiveWindow.ScrollRow = 201
ActiveWindow.ScrollRow = 195
ActiveWindow.ScrollRow = 191
ActiveWindow.ScrollRow = 187
ActiveWindow.ScrollRow = 181
ActiveWindow.ScrollRow = 177
ActiveWindow.ScrollRow = 174
ActiveWindow.ScrollRow = 170
ActiveWindow.ScrollRow = 166
ActiveWindow.ScrollRow = 163
ActiveWindow.ScrollRow = 158
ActiveWindow.ScrollRow = 152
ActiveWindow.ScrollRow = 144
ActiveWindow.ScrollRow = 137
ActiveWindow.ScrollRow = 128
ActiveWindow.ScrollRow = 119
ActiveWindow.ScrollRow = 110
ActiveWindow.ScrollRow = 103
ActiveWindow.ScrollRow = 96
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 86
ActiveWindow.ScrollRow = 83
ActiveWindow.ScrollRow = 79
ActiveWindow.ScrollRow = 76
ActiveWindow.ScrollRow = 74
ActiveWindow.ScrollRow = 71
ActiveWindow.ScrollRow = 70
ActiveWindow.ScrollRow = 68
ActiveWindow.ScrollRow = 67
ActiveWindow.ScrollRow = 65
ActiveWindow.ScrollRow = 63
ActiveWindow.ScrollRow = 61
ActiveWindow.ScrollRow = 60
ActiveWindow.ScrollRow = 56
ActiveWindow.ScrollRow = 52
ActiveWindow.ScrollRow = 49
ActiveWindow.ScrollRow = 47
ActiveWindow.ScrollRow = 45
ActiveWindow.ScrollRow = 43
ActiveWindow.ScrollRow = 41
ActiveWindow.ScrollRow = 39
ActiveWindow.ScrollRow = 35
ActiveWindow.ScrollRow = 32
ActiveWindow.ScrollRow = 31
ActiveWindow.ScrollRow = 27
ActiveWindow.ScrollRow = 25
ActiveWindow.ScrollRow = 23
ActiveWindow.ScrollRow = 21
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 14
ActiveWindow.ScrollRow = 13
Range("BN13:BR638").Select
Range("BN638").Activate
Selection.Locked = False
Selection.FormulaHidden = False
ActiveWindow.ScrollColumn = 45
ActiveWindow.ScrollColumn = 41
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 5
ActiveWindow.SmallScroll Down:=-9
Range("D8").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Password:="art789", Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True
End Sub
[/vba]

Автор - Ekaterina
Дата добавления - 31.10.2013 в 10:05
Ekaterina Дата: Четверг, 31.10.2013, 10:06 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Этого достаточно? Или нужно весь файл выкладывать?
 
Ответить
СообщениеЭтого достаточно? Или нужно весь файл выкладывать?

Автор - Ekaterina
Дата добавления - 31.10.2013 в 10:06
Ekaterina Дата: Четверг, 31.10.2013, 10:10 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А ещё можно один вопросик задать? Вот допустим есть у меня макрос, который удаляют содержимое определённых ячеек, ну и плюс проставляет суммы в некоторых колонках. Мне нужно, чтоб он 1 раз сделал это действие во всех листах книги, а после этого не действовал. Что нужно для этого сделать? Если, например, я этот макрос оставлю в списке сохранённых макросов этой конкретной книги, то при каждом открытии этой книги он будет опять проделывать все эти действия? Или не будет? А если я его удалю, то все те действия, которые он проделал до этого, отменятся или нет?
 
Ответить
СообщениеА ещё можно один вопросик задать? Вот допустим есть у меня макрос, который удаляют содержимое определённых ячеек, ну и плюс проставляет суммы в некоторых колонках. Мне нужно, чтоб он 1 раз сделал это действие во всех листах книги, а после этого не действовал. Что нужно для этого сделать? Если, например, я этот макрос оставлю в списке сохранённых макросов этой конкретной книги, то при каждом открытии этой книги он будет опять проделывать все эти действия? Или не будет? А если я его удалю, то все те действия, которые он проделал до этого, отменятся или нет?

Автор - Ekaterina
Дата добавления - 31.10.2013 в 10:10
Alex_ST Дата: Четверг, 31.10.2013, 12:24 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3199
Репутация: 606 ±
Замечаний: 0% ±

2003
Ekaterina,
не вдаваясь в подробности, что и зачем Вы защищали, по всем листам книги будет так:
[vba]
Код
Sub защитить_листы()
        Dim sH As Worksheet
        Application.ScreenUpdating = False
        For Each sH In ThisWorkbook.Worksheets
           sH.Cells.Locked = True: sH.Cells.FormulaHidden = False
'       sH.Range("AE13:AP638", "BF11", "BN13:BR638").Locked = False ' это НЕ ПРАВИЛЬНО - ошибка синтаксиса!!!
           sH.Range("AE13:AP638,BF11,BN13:BR638").Locked = False ' вот так должно быть
           sH.Protect DrawingObjects:=True, Contents:=True, Password:="art789", _
                      Scenarios:=True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                      AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True
        Next sH
        Application.ScreenUpdating = True
End Sub
[/vba]
А про "вопросик", так ведь макрос сам по себе ничего делать не будет. Чтобы он сработал, нужно его вызвать.
Вызвать его можете Вы сами, запустив, например, из списка макросов.
А можно ещё организовать его работу автоматически, но не самостоятельно, а только по факту происхождения какого-либо события (например, открытия книги, выбора листа, изменения выбранной ячейки, и ещё огромная куча событий-Event может быть отслежена программно).
А если у Вас в книге обработка событий (вызов процедур по событиям) не прописан, то никакой макрос сам по себе не запустится.

**********************************************
ВНИМАНИЕ! Вчера в коде мною была допущена ошибка в синтаксисе обращения к объекту Range. Прошу прощения. На данный момент она уже закомментирована и исправлена.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Пятница, 01.11.2013, 10:25
 
Ответить
СообщениеEkaterina,
не вдаваясь в подробности, что и зачем Вы защищали, по всем листам книги будет так:
[vba]
Код
Sub защитить_листы()
        Dim sH As Worksheet
        Application.ScreenUpdating = False
        For Each sH In ThisWorkbook.Worksheets
           sH.Cells.Locked = True: sH.Cells.FormulaHidden = False
'       sH.Range("AE13:AP638", "BF11", "BN13:BR638").Locked = False ' это НЕ ПРАВИЛЬНО - ошибка синтаксиса!!!
           sH.Range("AE13:AP638,BF11,BN13:BR638").Locked = False ' вот так должно быть
           sH.Protect DrawingObjects:=True, Contents:=True, Password:="art789", _
                      Scenarios:=True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                      AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True
        Next sH
        Application.ScreenUpdating = True
End Sub
[/vba]
А про "вопросик", так ведь макрос сам по себе ничего делать не будет. Чтобы он сработал, нужно его вызвать.
Вызвать его можете Вы сами, запустив, например, из списка макросов.
А можно ещё организовать его работу автоматически, но не самостоятельно, а только по факту происхождения какого-либо события (например, открытия книги, выбора листа, изменения выбранной ячейки, и ещё огромная куча событий-Event может быть отслежена программно).
А если у Вас в книге обработка событий (вызов процедур по событиям) не прописан, то никакой макрос сам по себе не запустится.

**********************************************
ВНИМАНИЕ! Вчера в коде мною была допущена ошибка в синтаксисе обращения к объекту Range. Прошу прощения. На данный момент она уже закомментирована и исправлена.

Автор - Alex_ST
Дата добавления - 31.10.2013 в 12:24
Ekaterina Дата: Четверг, 31.10.2013, 12:39 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Alex_ST, спасибо большое. Но я не поняла, а где все те строчки, которые были у меня? Их же тоже нужно куда-то вставлять, чтоб у меня защищались на листе именно те области, которые нужно защитить? Или это и есть весь макрос целиком?
 
Ответить
СообщениеAlex_ST, спасибо большое. Но я не поняла, а где все те строчки, которые были у меня? Их же тоже нужно куда-то вставлять, чтоб у меня защищались на листе именно те области, которые нужно защитить? Или это и есть весь макрос целиком?

Автор - Ekaterina
Дата добавления - 31.10.2013 в 12:39
Ekaterina Дата: Четверг, 31.10.2013, 12:57 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Alex_ST, не работает :( . Выделяет вот этот отравок End With
sH.Range и выдаёт ошибку: "Compile error: Wrong number of arguments or invalid property assignment"
 
Ответить
СообщениеAlex_ST, не работает :( . Выделяет вот этот отравок End With
sH.Range и выдаёт ошибку: "Compile error: Wrong number of arguments or invalid property assignment"

Автор - Ekaterina
Дата добавления - 31.10.2013 в 12:57
SkyPro Дата: Четверг, 31.10.2013, 13:11 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Приложите ваш файл.


skypro1111@gmail.com
 
Ответить
СообщениеПриложите ваш файл.

Автор - SkyPro
Дата добавления - 31.10.2013 в 13:11
Ekaterina Дата: Четверг, 31.10.2013, 13:22 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
SkyPro, я не знаю как его сделать размером в 100 кБ. Он весит намного больше, хотя я удалила 2/3 всех листов, чтоб вставить сюда
 
Ответить
СообщениеSkyPro, я не знаю как его сделать размером в 100 кБ. Он весит намного больше, хотя я удалила 2/3 всех листов, чтоб вставить сюда

Автор - Ekaterina
Дата добавления - 31.10.2013 в 13:22
Ekaterina Дата: Четверг, 31.10.2013, 13:29 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Уже удалила всё что только можно, но весит всё равно много 4 Мб
 
Ответить
СообщениеУже удалила всё что только можно, но весит всё равно много 4 Мб

Автор - Ekaterina
Дата добавления - 31.10.2013 в 13:29
Alex_ST Дата: Четверг, 31.10.2013, 13:39 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3199
Репутация: 606 ±
Замечаний: 0% ±

2003
К сожалению, моё свободное время закончилось. Убегаю. Проверить сейчас не могу. Самое раннее - вечером.
(а куча хлама, которую Вам выдал макрорекордер, никому нафиг не нужна, т.к. ничего не делает)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеК сожалению, моё свободное время закончилось. Убегаю. Проверить сейчас не могу. Самое раннее - вечером.
(а куча хлама, которую Вам выдал макрорекордер, никому нафиг не нужна, т.к. ничего не делает)

Автор - Alex_ST
Дата добавления - 31.10.2013 в 13:39
SkyPro Дата: Четверг, 31.10.2013, 14:06 | Сообщение № 19
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
ничего не делает

Ну почему ничего ? Скроллит вверх\вниз :)

Ekaterina, скопируйте все данные в новый файл. Скорее всего у вас там очень много лишнего (строк, столбцов).


skypro1111@gmail.com
 
Ответить
Сообщение
ничего не делает

Ну почему ничего ? Скроллит вверх\вниз :)

Ekaterina, скопируйте все данные в новый файл. Скорее всего у вас там очень много лишнего (строк, столбцов).

Автор - SkyPro
Дата добавления - 31.10.2013 в 14:06
Alex_ST Дата: Четверг, 31.10.2013, 19:01 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3199
Репутация: 606 ±
Замечаний: 0% ±

2003
Ну, описАлся когда аргументы в Range(...) перечислял... Поспешил, не проверил :'(
Наврал в синтаксисе перечисления диапазонов в Range :(
Код исправил в предыдущем посте чтобы на форуме не было ошибочного синтаксиса



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Четверг, 31.10.2013, 20:43
 
Ответить
СообщениеНу, описАлся когда аргументы в Range(...) перечислял... Поспешил, не проверил :'(
Наврал в синтаксисе перечисления диапазонов в Range :(
Код исправил в предыдущем посте чтобы на форуме не было ошибочного синтаксиса

Автор - Alex_ST
Дата добавления - 31.10.2013 в 19:01
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как применить макрос сразу ко всей книге целиком? (Формулы)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!