создание кнопки RESET
Aexbro
Дата: Вторник, 23.07.2013, 21:25 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация:
4
±
Замечаний:
0% ±
Excel 2007
Здравствуйте. Я несилен макросе, даже прочитав подобный пост, честно ничего не понял. Помогите создать кнопку RESET сбрасывающую все значения в незакрашенных ячейках (незакрашенные для визуальности). Ячейки с формулами, защищены паролем 288520. Заранее спасибо за ваше внимание и время
Здравствуйте. Я несилен макросе, даже прочитав подобный пост, честно ничего не понял. Помогите создать кнопку RESET сбрасывающую все значения в незакрашенных ячейках (незакрашенные для визуальности). Ячейки с формулами, защищены паролем 288520. Заранее спасибо за ваше внимание и время Aexbro
Ответить
Сообщение Здравствуйте. Я несилен макросе, даже прочитав подобный пост, честно ничего не понял. Помогите создать кнопку RESET сбрасывающую все значения в незакрашенных ячейках (незакрашенные для визуальности). Ячейки с формулами, защищены паролем 288520. Заранее спасибо за ваше внимание и время Автор - Aexbro Дата добавления - 23.07.2013 в 21:25
SkyPro
Дата: Вторник, 23.07.2013, 23:03 |
Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация:
255
±
Замечаний:
0% ±
2010
[vba]Код
Sub reset() Dim rCell As Range For Each rCell In Sheets(1).UsedRange If rCell.Locked = False Then rCell.Formula = "" End If Next End Sub
[/vba] "очистит" все нелоченные ячейки на листе 1. Точнее введет двойные кавычки.
[vba]Код
Sub reset() Dim rCell As Range For Each rCell In Sheets(1).UsedRange If rCell.Locked = False Then rCell.Formula = "" End If Next End Sub
[/vba] "очистит" все нелоченные ячейки на листе 1. Точнее введет двойные кавычки. SkyPro
skypro1111@gmail.com
Сообщение отредактировал SkyPro - Вторник, 23.07.2013, 23:07
Ответить
Сообщение [vba]Код
Sub reset() Dim rCell As Range For Each rCell In Sheets(1).UsedRange If rCell.Locked = False Then rCell.Formula = "" End If Next End Sub
[/vba] "очистит" все нелоченные ячейки на листе 1. Точнее введет двойные кавычки. Автор - SkyPro Дата добавления - 23.07.2013 в 23:03
Aexbro
Дата: Вторник, 23.07.2013, 23:21 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация:
4
±
Замечаний:
0% ±
Excel 2007
SkyPro, Спасибо работает! Вопрос закрыт. Реально wow
SkyPro, Спасибо работает! Вопрос закрыт. Реально wow Aexbro
Ответить
Сообщение SkyPro, Спасибо работает! Вопрос закрыт. Реально wow Автор - Aexbro Дата добавления - 23.07.2013 в 23:21
SkyPro
Дата: Вторник, 23.07.2013, 23:50 |
Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация:
255
±
Замечаний:
0% ±
2010
Уверен, что есть более быстрое решение, но я его не знаю
Уверен, что есть более быстрое решение, но я его не знаю SkyPro
skypro1111@gmail.com
Ответить
Сообщение Уверен, что есть более быстрое решение, но я его не знаю Автор - SkyPro Дата добавления - 23.07.2013 в 23:50
AndreTM
Дата: Среда, 24.07.2013, 03:30 |
Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
501
±
Замечаний:
0% ±
2003 & 2010
Ну да,естественно - если отключить на время обработки пересчёты и вывод на экран - то скорость, естественно, возрастёт: [vba]Код
Sub reset() Dim rCell As Range 'saveCalc = Application.Calculation 'Application.Calculation = xlManual Application.DisplayStatusBar = False Application.ScreenUpdating = False For Each rCell In Sheets(1).UsedRange If Not rCell.Locked Then rCell.Formula = "" End If Next Application.DisplayStatusBar = True Application.StatusBar = "Ready..." Application.ScreenUpdating = True 'Application.Calculation = saveCalc End Sub
[/vba]
Ну да,естественно - если отключить на время обработки пересчёты и вывод на экран - то скорость, естественно, возрастёт: [vba]Код
Sub reset() Dim rCell As Range 'saveCalc = Application.Calculation 'Application.Calculation = xlManual Application.DisplayStatusBar = False Application.ScreenUpdating = False For Each rCell In Sheets(1).UsedRange If Not rCell.Locked Then rCell.Formula = "" End If Next Application.DisplayStatusBar = True Application.StatusBar = "Ready..." Application.ScreenUpdating = True 'Application.Calculation = saveCalc End Sub
[/vba] AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Ответить
Сообщение Ну да,естественно - если отключить на время обработки пересчёты и вывод на экран - то скорость, естественно, возрастёт: [vba]Код
Sub reset() Dim rCell As Range 'saveCalc = Application.Calculation 'Application.Calculation = xlManual Application.DisplayStatusBar = False Application.ScreenUpdating = False For Each rCell In Sheets(1).UsedRange If Not rCell.Locked Then rCell.Formula = "" End If Next Application.DisplayStatusBar = True Application.StatusBar = "Ready..." Application.ScreenUpdating = True 'Application.Calculation = saveCalc End Sub
[/vba] Автор - AndreTM Дата добавления - 24.07.2013 в 03:30
SkyPro
Дата: Среда, 24.07.2013, 08:54 |
Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация:
255
±
Замечаний:
0% ±
2010
Тяжелый день был вчера. Даже не подумал об этом Спасибо, AndreTM.
Тяжелый день был вчера. Даже не подумал об этом Спасибо, AndreTM. SkyPro
skypro1111@gmail.com
Ответить
Сообщение Тяжелый день был вчера. Даже не подумал об этом Спасибо, AndreTM. Автор - SkyPro Дата добавления - 24.07.2013 в 08:54
Aexbro
Дата: Среда, 24.07.2013, 10:48 |
Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация:
4
±
Замечаний:
0% ±
Excel 2007
AndreTM, А можно это алгоритм встроить в файл? как это сделать сам не знаю. спасибо
AndreTM, А можно это алгоритм встроить в файл? как это сделать сам не знаю. спасибо Aexbro
Ответить
Сообщение AndreTM, А можно это алгоритм встроить в файл? как это сделать сам не знаю. спасибо Автор - Aexbro Дата добавления - 24.07.2013 в 10:48
SkyPro
Дата: Среда, 24.07.2013, 16:33 |
Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация:
255
±
Замечаний:
0% ±
2010
Aexbro, [alt + F11] - Module1 вот там находится макрос. Копируете с сайта и вставляете в модуль (предварительно удалив предыдущий макрос). После этого правой клавишей на кнопке "ресет" и "назначить макрос". Сохраняете книгу.
Aexbro, [alt + F11] - Module1 вот там находится макрос. Копируете с сайта и вставляете в модуль (предварительно удалив предыдущий макрос). После этого правой клавишей на кнопке "ресет" и "назначить макрос". Сохраняете книгу. SkyPro
skypro1111@gmail.com
Ответить
Сообщение Aexbro, [alt + F11] - Module1 вот там находится макрос. Копируете с сайта и вставляете в модуль (предварительно удалив предыдущий макрос). После этого правой клавишей на кнопке "ресет" и "назначить макрос". Сохраняете книгу. Автор - SkyPro Дата добавления - 24.07.2013 в 16:33
AndreTM
Дата: Четверг, 25.07.2013, 00:14 |
Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
501
±
Замечаний:
0% ±
2003 & 2010
После этого правой клавишей на кнопке "ресет" и "назначить макрос". Сохраняете книгу.
Не обязательно Поскольку имя процедуры то же самое - то достаточно (после замены кода) в редакторе VBA вызвать Debug-Compile VBAProject
После этого правой клавишей на кнопке "ресет" и "назначить макрос". Сохраняете книгу.
Не обязательно Поскольку имя процедуры то же самое - то достаточно (после замены кода) в редакторе VBA вызвать Debug-Compile VBAProject AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Ответить
Сообщение После этого правой клавишей на кнопке "ресет" и "назначить макрос". Сохраняете книгу.
Не обязательно Поскольку имя процедуры то же самое - то достаточно (после замены кода) в редакторе VBA вызвать Debug-Compile VBAProject Автор - AndreTM Дата добавления - 25.07.2013 в 00:14
Матрёна
Дата: Четверг, 25.07.2013, 07:31 |
Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация:
40
±
Замечаний:
0% ±
Вариант:[vba]Код
Sub makros() Cells.Select If Selection.Locked = False Then Selection.Locked = "" End If End Sub
[/vba]
Вариант:[vba]Код
Sub makros() Cells.Select If Selection.Locked = False Then Selection.Locked = "" End If End Sub
[/vba] Матрёна
Ответить
Сообщение Вариант:[vba]Код
Sub makros() Cells.Select If Selection.Locked = False Then Selection.Locked = "" End If End Sub
[/vba] Автор - Матрёна Дата добавления - 25.07.2013 в 07:31
AndreTM
Дата: Четверг, 25.07.2013, 09:52 |
Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
501
±
Замечаний:
0% ±
2003 & 2010
Матрёна, да, так получается ещё быстрее. Только не надо забывать снимать выделение: [vba]Код
Set c = ActiveCell ' делаем тра-та-та c.Select
[/vba]
Матрёна, да, так получается ещё быстрее. Только не надо забывать снимать выделение: [vba]Код
Set c = ActiveCell ' делаем тра-та-та c.Select
[/vba]AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Ответить
Сообщение Матрёна, да, так получается ещё быстрее. Только не надо забывать снимать выделение: [vba]Код
Set c = ActiveCell ' делаем тра-та-та c.Select
[/vba]Автор - AndreTM Дата добавления - 25.07.2013 в 09:52
SkyPro
Дата: Четверг, 25.07.2013, 10:12 |
Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация:
255
±
Замечаний:
0% ±
2010
Вариант:
[vba]
Код
Sub makros() Cells.Select If Selection.Locked = False Then Selection.Locked = "" End If End Sub
[/vba]
Тогда уж лучше так: [vba]Код
Sub makros() Cells.Select If Selection.Locked = False Then Selection.Locked = "" End If MsgBox "Урааа!!! Мы выделили все ячейки на листе, так как на нем есть залоченые ячейки!" End Sub
[/vba]
Вариант:
[vba]
Код
Sub makros() Cells.Select If Selection.Locked = False Then Selection.Locked = "" End If End Sub
[/vba]
Тогда уж лучше так: [vba]Код
Sub makros() Cells.Select If Selection.Locked = False Then Selection.Locked = "" End If MsgBox "Урааа!!! Мы выделили все ячейки на листе, так как на нем есть залоченые ячейки!" End Sub
[/vba]SkyPro
skypro1111@gmail.com
Ответить
Сообщение Вариант:
[vba]
Код
Sub makros() Cells.Select If Selection.Locked = False Then Selection.Locked = "" End If End Sub
[/vba]
Тогда уж лучше так: [vba]Код
Sub makros() Cells.Select If Selection.Locked = False Then Selection.Locked = "" End If MsgBox "Урааа!!! Мы выделили все ячейки на листе, так как на нем есть залоченые ячейки!" End Sub
[/vba]Автор - SkyPro Дата добавления - 25.07.2013 в 10:12
Матрёна
Дата: Четверг, 25.07.2013, 10:52 |
Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация:
40
±
Замечаний:
0% ±
Только не надо забывать снимать выделение:
AndreTM! А чем может "грозить" юзеру безграмотность моего макроса? Я полагаю, только дополнительным "топом" мышой. Тогда уж лучше так: MsgBox "Урааа!!!"
Ну, тогда уж лучше так: MsgBox "Эх! Выпить бы нам с Людоедочкой из дикого племени "Ням-Ням"!!!"
Только не надо забывать снимать выделение:
AndreTM! А чем может "грозить" юзеру безграмотность моего макроса? Я полагаю, только дополнительным "топом" мышой. Тогда уж лучше так: MsgBox "Урааа!!!"
Ну, тогда уж лучше так: MsgBox "Эх! Выпить бы нам с Людоедочкой из дикого племени "Ням-Ням"!!!"Матрёна
Ответить
Сообщение Только не надо забывать снимать выделение:
AndreTM! А чем может "грозить" юзеру безграмотность моего макроса? Я полагаю, только дополнительным "топом" мышой. Тогда уж лучше так: MsgBox "Урааа!!!"
Ну, тогда уж лучше так: MsgBox "Эх! Выпить бы нам с Людоедочкой из дикого племени "Ням-Ням"!!!"Автор - Матрёна Дата добавления - 25.07.2013 в 10:52
SkyPro
Дата: Четверг, 25.07.2013, 13:17 |
Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация:
255
±
Замечаний:
0% ±
2010
[offtop]
skypro1111@gmail.com
Ответить
Сообщение [offtop] Автор - SkyPro Дата добавления - 25.07.2013 в 13:17