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

Вход

Регистрация

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

 

= Мир MS Excel/Конфликт м/у Private Sub и Sub - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Конфликт м/у Private Sub и Sub
QwertyBoss Дата: Воскресенье, 20.12.2015, 20:15 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Ребята добрый день. Проблема есть... Принёс на работу файл подшлифовать под рабочие файлв, запустил "маску" (вкраце - собирает инфу и фильтрует) и при выводе на лист
.... выводит ошибку '1004' Method 'Undo' of object'_Aplication' failed. Пробывал удалять ... не получилось устранить эту дасаду, пробывал добавить ... и опять ничего не получилось, т.к. не знал что добавлять.
Выручайте, без Private Sub (макрос на запрет на изменение %) весь смысл этого небольшого проекта теряется. Абидна...
ЗЫ Пароль "123" (это для коллег на работе, чтоб код не снесли)
К сообщению приложен файл: 1665437.xlsm (64.5 Kb)


Сообщение отредактировал QwertyBoss - Понедельник, 21.12.2015, 05:23
 
Ответить
СообщениеРебята добрый день. Проблема есть... Принёс на работу файл подшлифовать под рабочие файлв, запустил "маску" (вкраце - собирает инфу и фильтрует) и при выводе на лист
.... выводит ошибку '1004' Method 'Undo' of object'_Aplication' failed. Пробывал удалять ... не получилось устранить эту дасаду, пробывал добавить ... и опять ничего не получилось, т.к. не знал что добавлять.
Выручайте, без Private Sub (макрос на запрет на изменение %) весь смысл этого небольшого проекта теряется. Абидна...
ЗЫ Пароль "123" (это для коллег на работе, чтоб код не снесли)

Автор - QwertyBoss
Дата добавления - 20.12.2015 в 20:15
QwertyBoss Дата: Понедельник, 21.12.2015, 06:23 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Как сделать так чтобы код в модуле листа отлючался временно? допустим при удалении строки или работы с формами на общем модуле?

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Application.Intersect(Range("G2:G100"), Target) Is Nothing Then Else Exit Sub
Dim a As Variant
Application.EnableEvents = 0
a = Target.Value
Application.Undo
On Error GoTo 0
If Target > a Then
On Error GoTo 0
MsgBox "НВЕРНЫЕ ДАННЫЕ, КТО РАЗРЕШИЛ МЕНЯТЬ?"
Else
Target = a
End If
Application.EnableEvents = -1
End Sub
[/vba]

код предоставлен ув.Wasilic
[moder]Правила форума Вы так и не прочитали. Код следует оформлять тегами (кнопка #)[/moder]


Сообщение отредактировал Pelena - Понедельник, 21.12.2015, 07:27
 
Ответить
СообщениеКак сделать так чтобы код в модуле листа отлючался временно? допустим при удалении строки или работы с формами на общем модуле?

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Application.Intersect(Range("G2:G100"), Target) Is Nothing Then Else Exit Sub
Dim a As Variant
Application.EnableEvents = 0
a = Target.Value
Application.Undo
On Error GoTo 0
If Target > a Then
On Error GoTo 0
MsgBox "НВЕРНЫЕ ДАННЫЕ, КТО РАЗРЕШИЛ МЕНЯТЬ?"
Else
Target = a
End If
Application.EnableEvents = -1
End Sub
[/vba]

код предоставлен ув.Wasilic
[moder]Правила форума Вы так и не прочитали. Код следует оформлять тегами (кнопка #)[/moder]

Автор - QwertyBoss
Дата добавления - 21.12.2015 в 06:23
Roman777 Дата: Понедельник, 21.12.2015, 09:26 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
QwertyBoss, ну как вариант добавить макросы
[vba]
Код
Sub offEvants()
   Application.EnableEvents=False
End Sub
Sub onEvants()
   Application.EnableEvents=true
End Sub
[/vba]
можно вывести их на кнопки и когда надо включать или отключать обработку событий.


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Понедельник, 21.12.2015, 09:27
 
Ответить
СообщениеQwertyBoss, ну как вариант добавить макросы
[vba]
Код
Sub offEvants()
   Application.EnableEvents=False
End Sub
Sub onEvants()
   Application.EnableEvents=true
End Sub
[/vba]
можно вывести их на кнопки и когда надо включать или отключать обработку событий.

Автор - Roman777
Дата добавления - 21.12.2015 в 09:26
QwertyBoss Дата: Понедельник, 21.12.2015, 09:53 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Оппа... Спс. Не знал. Эт упрощает задачу. Огромное спс. Буду тестить.
 
Ответить
СообщениеОппа... Спс. Не знал. Эт упрощает задачу. Огромное спс. Буду тестить.

Автор - QwertyBoss
Дата добавления - 21.12.2015 в 09:53
QwertyBoss Дата: Вторник, 22.12.2015, 07:14 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Address(0, 0) = "M1" Then
        Cancel = 1
        Run "skr_stolb"
    End If
End Sub
[/vba]

Цитата
Модератор:
Правила форума Вы так и не прочитали. Код следует оформлять тегами (кнопка #)

эт я тренеруюсь , после прочтения правил =)

а замечания будут сниматься?
[moder]Снимем, если не будете нарушать Правила в дальнейшем[/moder]


Сообщение отредактировал Pelena - Вторник, 22.12.2015, 09:46
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Address(0, 0) = "M1" Then
        Cancel = 1
        Run "skr_stolb"
    End If
End Sub
[/vba]

Цитата
Модератор:
Правила форума Вы так и не прочитали. Код следует оформлять тегами (кнопка #)

эт я тренеруюсь , после прочтения правил =)

а замечания будут сниматься?
[moder]Снимем, если не будете нарушать Правила в дальнейшем[/moder]

Автор - QwertyBoss
Дата добавления - 22.12.2015 в 07:14
  • Страница 1 из 1
  • 1
Поиск:

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