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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2013, 19:15   #1
astrofitum
 
Регистрация: 18.07.2013
Сообщений: 3
По умолчанию Макрос: в защищенном файле удалить строки.

Тема рассматривалась много раз, все примеры уже просмотрены, темы форума прочитаны. Нужна помощь.
Макрос должен удалять активную строку.
В защищенном режиме не работает.

Подскажите чайнику в чем дело, пожалуйста.
Вложения
Тип файла: zip Книга2.zip (14.4 Кб, 7 просмотров)
astrofitum вне форума Ответить с цитированием
Старый 18.07.2013, 20:07   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Если уж просмотрены все темы и примеры, что здесь добавишь.
Ваш макрос находится вне книги, следовательно только рекомендации:
1.Удалять/Ставить защиту на время работы макроса
2.Изпользовать для защиты листа код
Код:
Worksheets(1).Protect UserInterfaceOnly:=True
защищает от ввода с клавиатуры, но позволяет работу макроса.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 18.07.2013, 22:00   #3
astrofitum
 
Регистрация: 18.07.2013
Сообщений: 3
По умолчанию

Совсем заработался.
Выкладываю с модулем внутри.
Вложения
Тип файла: zip Книга2.zip (17.4 Кб, 10 просмотров)
astrofitum вне форума Ответить с цитированием
Старый 18.07.2013, 22:21   #4
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Первый вариант, то, о чем я говорил - снять/восстановить защиту.
Код:
Sub DeleteRows()
    Dim rng As Range
    Set rng = ActiveSheet.ListObjects(1).Range
    If Not TypeOf Selection Is Range Then Exit Sub
    Sheets("Лист1").Unprotect
    With Selection
        If .Areas.Count > 1 Then Exit Sub
        If .Row > rng.Row + 1 And _
            (.Row + .Rows.Count) < (rng.Row + rng.Rows.Count) Then
                .EntireRow.Delete
        Else
            MsgBox "Can't delete rows outside of the data area. " & _
                "Please select cells inside the table"
        End If
    End With
    Sheets("Лист1").Protect
End Sub
Все работает.
Неужели не нашли об этом ничего во всех просмотренных темах?
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 18.07.2013, 22:26   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Второй вариант:
Сначала защищаем лист вот таким образом, например при открытии книги
Код:
Sub pr()
Sheets("Лист1").Protect UserInterfaceOnly:=True
End Sub
Теперь Ваш макрос работает и без изменений.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 18.07.2013, 22:49   #6
astrofitum
 
Регистрация: 18.07.2013
Сообщений: 3
По умолчанию

Получилось.
Спасибо.
astrofitum вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос фильтра на защищенном листе Сергей3528 Microsoft Office Excel 20 17.01.2014 21:43
удалить секцию в Ini файле Viten2 Общие вопросы Delphi 6 11.07.2011 18:13
Макрос удалить пустые строки убрать ноли Петро1 Microsoft Office Excel 8 28.02.2011 16:28
удалить пустые строки в txt файле andreton Помощь студентам 3 05.06.2010 21:35
Как выполнить макрос на защищенном листе Gennady_58 Microsoft Office Excel 3 18.04.2009 10:31