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

Вход

Регистрация

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

 

= Мир MS Excel/Как защитить лист от макроса? - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как защитить лист от макроса? (Макросы/Sub)
Как защитить лист от макроса?
Nik57 Дата: Понедельник, 12.03.2018, 16:36 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 96
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте, друзья!
У пользователей часто встречаются трудности с тем, что если они ставят защиту на лист, то макрос перестает работать. А вот у меня другая проблема)) Как защитить лист от макроса?
Смысл в том, что макрос работает на все листы, но иногда требуется, скрыть определенные листы. Но когда я просто скрываю лист, то макрос все равно его видит!
Что делать надо? править макрос или есть какой то еще инструмент?
Помогите кому не лень)

[vba]
Код
Sub ertert()
Dim wsh As Worksheet, dt As Date, x, y(), i&, k&
dt = Range("A1").Value
Intersect(ActiveSheet.UsedRange.Offset(1), [B:F]).ClearContents

For Each wsh In ThisWorkbook.Sheets
If Not wsh Is ActiveSheet Then
x = wsh.Range("I1").CurrentRegion.Value
If Not IsEmpty(x) Then
k = 0
ReDim y(1 To UBound(x), 1 To 5)
For i = 1 To UBound(x) Step 2
If x(i, 1) = dt Then
k = k + 1
y(k, 1) = dt
y(k, 2) = x(i + 1, 1)
y(k, 3) = x(i, 2)
y(k, 4) = x(i + 1, 2)
y(k, 5) = wsh.Name
End If
Next i
If k > 0 Then Cells(Rows.Count, 2).End(xlUp)(2, 1).Resize(k, 5).Value = y()
End If
End If
Next wsh

With Range("B1:F" & Cells(Rows.Count, 2).End(xlUp).Row)
.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _
Key2:=.Cells(1, 2), Order2:=xlAscending, Header:=xlYes
End With
End Sub
[/vba]


Сообщение отредактировал Nik57 - Понедельник, 12.03.2018, 16:38
 
Ответить
СообщениеЗдравствуйте, друзья!
У пользователей часто встречаются трудности с тем, что если они ставят защиту на лист, то макрос перестает работать. А вот у меня другая проблема)) Как защитить лист от макроса?
Смысл в том, что макрос работает на все листы, но иногда требуется, скрыть определенные листы. Но когда я просто скрываю лист, то макрос все равно его видит!
Что делать надо? править макрос или есть какой то еще инструмент?
Помогите кому не лень)

[vba]
Код
Sub ertert()
Dim wsh As Worksheet, dt As Date, x, y(), i&, k&
dt = Range("A1").Value
Intersect(ActiveSheet.UsedRange.Offset(1), [B:F]).ClearContents

For Each wsh In ThisWorkbook.Sheets
If Not wsh Is ActiveSheet Then
x = wsh.Range("I1").CurrentRegion.Value
If Not IsEmpty(x) Then
k = 0
ReDim y(1 To UBound(x), 1 To 5)
For i = 1 To UBound(x) Step 2
If x(i, 1) = dt Then
k = k + 1
y(k, 1) = dt
y(k, 2) = x(i + 1, 1)
y(k, 3) = x(i, 2)
y(k, 4) = x(i + 1, 2)
y(k, 5) = wsh.Name
End If
Next i
If k > 0 Then Cells(Rows.Count, 2).End(xlUp)(2, 1).Resize(k, 5).Value = y()
End If
End If
Next wsh

With Range("B1:F" & Cells(Rows.Count, 2).End(xlUp).Row)
.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _
Key2:=.Cells(1, 2), Order2:=xlAscending, Header:=xlYes
End With
End Sub
[/vba]

Автор - Nik57
Дата добавления - 12.03.2018 в 16:36
bmv98rus Дата: Понедельник, 12.03.2018, 16:59 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1417
Репутация: 238 ±
Замечаний: 0% ±

Excel 2013/2016
Проверьте в коде не скрыт ли лист

[vba]
Код
If Not wsh Is ActiveSheet and wsh.Visible then
[/vba]


Сообщение отредактировал bmv98rus - Понедельник, 12.03.2018, 17:01
 
Ответить
СообщениеПроверьте в коде не скрыт ли лист

[vba]
Код
If Not wsh Is ActiveSheet and wsh.Visible then
[/vba]

Автор - bmv98rus
Дата добавления - 12.03.2018 в 16:59
Nik57 Дата: Понедельник, 12.03.2018, 17:08 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 96
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
bmv98rus, ах вот где собака зарыта была)) понял, теперь все нормально, большое спасибо за помощь!!
 
Ответить
Сообщениеbmv98rus, ах вот где собака зарыта была)) понял, теперь все нормально, большое спасибо за помощь!!

Автор - Nik57
Дата добавления - 12.03.2018 в 17:08
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как защитить лист от макроса? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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