Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 31.08.2007, 15:16   #1
Oxidous
Пользователь
 
Регистрация: 31.08.2007
Сообщений: 28
По умолчанию Написание макроса для стирания данных

Нужно написать макрос и привязать его к кнопке.

Вобщем,чтоб при нажатии на кнопку стирались данные в определённых ячейках.
Прикладываю экселевский файл,в котором хочу этого добиться.

В данном файле,чтоб при нажатии на кнопку "Стереть форму" стирались дааные из ячеек: F4,F6,F8,F10,F14,F16,F18,F20,F24,F2 6,F28,F30

П.С. Очень бы хотелось подробных объяснений как сделать такой макрос.
Заранее огромное спасибо.
Вложения
Тип файла: rar podpot.rar (7.1 Кб, 26 просмотров)
Oxidous вне форума
Старый 31.08.2007, 20:16   #2
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

В данном примере наличествует уже готовый макрос.
Вложения
Тип файла: zip podpot.zip (11.4 Кб, 74 просмотров)
pashulka вне форума
Старый 05.09.2007, 17:19   #3
Smile E
 
Регистрация: 03.09.2007
Сообщений: 5
По умолчанию

А можно по подробнее. Как выглядет этот макрос для стирания и как сделать эту чудо кнопку. На примере удаления данных из одной ячейки.
Smile E вне форума
Старый 05.09.2007, 18:48   #4
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

Код Pashulki. Его надо вставить в модуль Sheet1

Код:
 
Private Sub ClearContents1()
    With Me.Range("F4,F6,F8,F10,F14,F16,F18,F20,F24,F26,F28,F30")
         If Not Me.ProtectContents Or Not .Locked Then
            .ClearContents
         Else
            MsgBox "Вы защитили нужные ячейки (все или некоторые)", vbCritical, ""
            'Если Вы хотите очистить данные защищённых ячеек, то можно
            'либо играться со снятием и установкой пароля для нужного
            'рабочего листа, а можно использовать необязательный
            'именованный аргумент UserInterfaceOnly метода .Protect, т.е.
            'Me.Protect Password:="Ваш_пароль", UserInterfaceOnly:=True
            'а затем очистить данные нужных ячеек (.ClearContents)
            
            'Примечание :
            'Обладатели MS Excel 97, 2000 могут не указывать пароль, т.е.
            'Me.Protect UserInterfaceOnly:=True
         End If
    End With
End Sub
Private Sub ClearContents2()
    'Если существует вероятность удаления имени "Данные", то его
    'можно либо скрыть от глаз праздношатающихся граждан,
    'либо предварительно проверить его наличие
    With Me.Range("Данные")
         If Not Me.ProtectContents Or Not .Locked Then
            .ClearContents
         Else
            MsgBox "Вы защитили нужные ячейки (все или некоторые)", vbCritical, ""
            'Если Вы хотите очистить данные защищённых ячеек, то см.выше
         End If
    End With
End Sub
Когда я скачал файл от Pashulka и открыл его, то там не было никаких макросов. Потом я выяснил, что архив заблокирован системой, нажал в свойствах архива (правой клавишей мыши на архиве ) нажал Разблокировать - и макрос появился.


P.S. мой вариант

1) Откройте ваш файл;
2) нажмите Alt+F11 - откроется редактор VBE;
3) нажмите Ctrl+R - отобразится окно Project Explorer;
4) в окне Project Explorer выделите мышкой название вашего файла в нажмите меню Insert - Module - и в вашем файле появится папочка Modules в ней будет находится Module1 - щёлкните по нему 2 раза мышкой;
5) вставьте в этот модуль этот код;

Код:
Sub Очистка()
    Range("F4 , F6, F8, F10, F14, F16, F18, F20, F24, F26, F28, F30").ClearContents
End Sub
6) закройте редактор VBE;
7) далее меню Вид-Панельи инструментов - Формы - отобразится панель инструментов - найдите инструмент Кнопка - и щёлкните по ней мышкой, далее мышкой нарисуйте кнопку у себя на листе (просто прямоугольник);
8) откроется окно Назначить макрос объекту - мышкой укажите макрос Очистка - ОК;

P.S. Если что-то не получилось, то скажите на каком именно пункте вы остановились.

Последний раз редактировалось Pavel55; 05.09.2007 в 19:00.
Pavel55 вне форума
Старый 05.09.2007, 20:05   #5
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Pavel55, Я не помню, чтобы нанимал Вас на должность личного секретаря, поэтому, не надо комментировать мои действия и примеры, тем паче, что Ваша квалификация, увы, оставляет желать лучшего.

Что, кстати, подтвержает "Ваш" пример, который по сути повторяет мой, только является багопотенциальным, ибо вызовет ошибку, если рабочий лист, и любая(или все) из очищаемых ячеек будут защищены. Кроме того, этот макрос не является приватным, а значит может быть запущен, если активным листом будет любой лист, в этом случае : могут быть удалены нужные данные (если активным листом окажется лист имеющий ячейки) или также вызовет ошибку (если активным будет, например, лист диаграммы)
pashulka вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический запуск макроса Len@ Microsoft Office Excel 6 23.07.2008 12:05
Перенос макроса в модуль valerij Microsoft Office Excel 6 09.06.2008 23:13
Создание SetUp для макроса Romuald Microsoft Office Excel 3 06.06.2008 12:23
Запись макроса valerij Microsoft Office Excel 5 01.12.2007 00:49