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

Вход

Регистрация

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

 

= Мир MS Excel/Запрет выполнения макроса - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Запрет выполнения макроса
-SVP- Дата: Пятница, 16.08.2013, 20:56 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте.
На форуме ничего не нашел или неправильно задавал текст в поиске.
Задача в том, как запретить выполнение любого макроса, если в текущей строке
хотя бы в одной из ячеек находятся какие-либо данные (цифры, буквы, пробел и пр.знаки).
Ячеек в строке может быть до 60.
Если в строке в каких-либо ячейках есть информация, то появляется предупреждение, что
строка занята и что делать дальше: отменить действие или продолжить выполнение макроса.
Может кто-нибудь уже сталкивался с данной задачей.
Спасибо.
 
Ответить
СообщениеЗдравствуйте.
На форуме ничего не нашел или неправильно задавал текст в поиске.
Задача в том, как запретить выполнение любого макроса, если в текущей строке
хотя бы в одной из ячеек находятся какие-либо данные (цифры, буквы, пробел и пр.знаки).
Ячеек в строке может быть до 60.
Если в строке в каких-либо ячейках есть информация, то появляется предупреждение, что
строка занята и что делать дальше: отменить действие или продолжить выполнение макроса.
Может кто-нибудь уже сталкивался с данной задачей.
Спасибо.

Автор - -SVP-
Дата добавления - 16.08.2013 в 20:56
RAN Дата: Пятница, 16.08.2013, 21:05 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Пока вопрос звучит так:
Как запретить выполнение UDF деньги прописью в книге1, если в книге(ХЗ какой) в строке 1 что-нибудь есть.
Во запросы! :'(


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПока вопрос звучит так:
Как запретить выполнение UDF деньги прописью в книге1, если в книге(ХЗ какой) в строке 1 что-нибудь есть.
Во запросы! :'(

Автор - RAN
Дата добавления - 16.08.2013 в 21:05
Serge_007 Дата: Пятница, 16.08.2013, 21:15 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Андрей, а на мой взгляд всё довольно просто :)
...в текущей строке...
Текущая (активная) строка может быть только в активной книге на активном листе, следовательно проверяем Selection на однострочность, если ок - СЧЁТЗ выделения, если >0 - MsgBox с выбором
Не?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеАндрей, а на мой взгляд всё довольно просто :)
...в текущей строке...
Текущая (активная) строка может быть только в активной книге на активном листе, следовательно проверяем Selection на однострочность, если ок - СЧЁТЗ выделения, если >0 - MsgBox с выбором
Не?

Автор - Serge_007
Дата добавления - 16.08.2013 в 21:15
ABC Дата: Пятница, 16.08.2013, 21:34 | Сообщение № 4
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
[vba]
Код
Sub www()
     Dim vopros As String
     If Application.CountA([a1:h1].Value) > 0 Then
         vopros = MsgBox("ВЫПОЛНИТЬ?", vbOKCancel)
         If vopros = 1 Then MsgBox 1
     'else:
     End If
End Sub
[/vba]


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет
 
Ответить
Сообщение[vba]
Код
Sub www()
     Dim vopros As String
     If Application.CountA([a1:h1].Value) > 0 Then
         vopros = MsgBox("ВЫПОЛНИТЬ?", vbOKCancel)
         If vopros = 1 Then MsgBox 1
     'else:
     End If
End Sub
[/vba]

Автор - ABC
Дата добавления - 16.08.2013 в 21:34
RAN Дата: Пятница, 16.08.2013, 22:17 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010

А мне откуда знать?
ABC, и чё? Код есть. Рабочий. Ну и?
Нет, может ТС того и нать, но я исхожу из того, что просит.

PS
Цитата
Текущая (активная) строка может быть только в активной книге на активном листе

На мой взгляд, в каждом файле своя текущая строка.

PSS Попробуй остановить Application.OnTime, запущенный из произвольного файла!


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Пятница, 16.08.2013, 22:24
 
Ответить
Сообщение
А мне откуда знать?
ABC, и чё? Код есть. Рабочий. Ну и?
Нет, может ТС того и нать, но я исхожу из того, что просит.

PS
Цитата
Текущая (активная) строка может быть только в активной книге на активном листе

На мой взгляд, в каждом файле своя текущая строка.

PSS Попробуй остановить Application.OnTime, запущенный из произвольного файла!

Автор - RAN
Дата добавления - 16.08.2013 в 22:17
-SVP- Дата: Суббота, 17.08.2013, 15:54 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Добрый день.
АВС, я попробовал ваш макрос. Почему-то макрос задает вопрос и при запуске его в пустой строке или я чего-то не понимаю.
Может быть это связано с тем, чо таблица уже отформатирована?
К сожалению, я не силен в написании макросов. И еще вопрос для чего нужна строка "If vopros = 1 Then MsgBox 1".
 
Ответить
СообщениеДобрый день.
АВС, я попробовал ваш макрос. Почему-то макрос задает вопрос и при запуске его в пустой строке или я чего-то не понимаю.
Может быть это связано с тем, чо таблица уже отформатирована?
К сожалению, я не силен в написании макросов. И еще вопрос для чего нужна строка "If vopros = 1 Then MsgBox 1".

Автор - -SVP-
Дата добавления - 17.08.2013 в 15:54
SergeyKorotun Дата: Суббота, 17.08.2013, 22:49 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 301
Репутация: 15 ±
Замечаний: 0% ±

Excel 2007
[vba]
Код
Sub www()
     Dim vopros As String
     With ActiveSheet.Rows(ActiveCell.Row)
         iCount = Application.CountBlank(.Cells)
         If iCount = .Cells.Count Then
             MsgBox "Строка № " & .Row & " пустая и макрос что-то должен изменить без предупреждения"
         Else
             vopros = MsgBox("ВЫПОЛНИТЬ?", vbOKCancel)
             If vopros = 1 Then
                 MsgBox "Несмотря на то, что строка непустая, макрос все равно что-то делает"
             Else
                 MsgBox "Макрос не обрабатывает текущую строку"
             End If
         End If
     End With
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Sub www()
     Dim vopros As String
     With ActiveSheet.Rows(ActiveCell.Row)
         iCount = Application.CountBlank(.Cells)
         If iCount = .Cells.Count Then
             MsgBox "Строка № " & .Row & " пустая и макрос что-то должен изменить без предупреждения"
         Else
             vopros = MsgBox("ВЫПОЛНИТЬ?", vbOKCancel)
             If vopros = 1 Then
                 MsgBox "Несмотря на то, что строка непустая, макрос все равно что-то делает"
             Else
                 MsgBox "Макрос не обрабатывает текущую строку"
             End If
         End If
     End With
End Sub
[/vba]

Автор - SergeyKorotun
Дата добавления - 17.08.2013 в 22:49
RAN Дата: Суббота, 17.08.2013, 23:45 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
%)
Беседа слепого с глухим.
Когда увижу "www", я тебе в барабан постучу! hands
Ну почему вы так тупо игнорируете
как запретить выполнение любого макроса

и в барабан стучать не надо
и продолжаете предлагать всякую .... бяку?
-SVP-, может все же определитесь?
Впрочем, я не настаиваю.
Кто хочет - спрашивает, кто хочет - ответы пишет.
А согласие - по взаимности. ;)


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение%)
Беседа слепого с глухим.
Когда увижу "www", я тебе в барабан постучу! hands
Ну почему вы так тупо игнорируете
как запретить выполнение любого макроса

и в барабан стучать не надо
и продолжаете предлагать всякую .... бяку?
-SVP-, может все же определитесь?
Впрочем, я не настаиваю.
Кто хочет - спрашивает, кто хочет - ответы пишет.
А согласие - по взаимности. ;)

Автор - RAN
Дата добавления - 17.08.2013 в 23:45
-SVP- Дата: Воскресенье, 18.08.2013, 11:37 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте.
SergeyKorotun, ваш макрос как раз то, что надо.
Большое спасибо. И спасибо всем кто откликнулся.
 
Ответить
СообщениеЗдравствуйте.
SergeyKorotun, ваш макрос как раз то, что надо.
Большое спасибо. И спасибо всем кто откликнулся.

Автор - -SVP-
Дата добавления - 18.08.2013 в 11:37
-SVP- Дата: Понедельник, 19.08.2013, 08:28 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

SergeyKorotun, добрый день.
Возвращаюсь к вашему макросу. Проявилась некорректность работы макроса. При отказе продолжения выполнения макроса (если строка не пустая),
и после сообщения "Макрос не обрабатывает текущую строку", макрос все равно переписывает данные текущей строки.

 
Ответить
СообщениеSergeyKorotun, добрый день.
Возвращаюсь к вашему макросу. Проявилась некорректность работы макроса. При отказе продолжения выполнения макроса (если строка не пустая),
и после сообщения "Макрос не обрабатывает текущую строку", макрос все равно переписывает данные текущей строки.


Автор - -SVP-
Дата добавления - 19.08.2013 в 08:28
SergeyKorotun Дата: Понедельник, 19.08.2013, 11:57 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 301
Репутация: 15 ±
Замечаний: 0% ±

Excel 2007
Мой макрос нигде ничего не записывает в ячейки.
Я написал вам только заготовку, а что и куда копировать в условии задачи не описано.
Ниженаведенные строки вам не нужны, поставьте вначале апостроф или удалите их и если что-то после них добавили, также удалите
[vba]
Код
            Else
                 MsgBox "Макрос не обрабатывает текущую строку"
[/vba]
 
Ответить
СообщениеМой макрос нигде ничего не записывает в ячейки.
Я написал вам только заготовку, а что и куда копировать в условии задачи не описано.
Ниженаведенные строки вам не нужны, поставьте вначале апостроф или удалите их и если что-то после них добавили, также удалите
[vba]
Код
            Else
                 MsgBox "Макрос не обрабатывает текущую строку"
[/vba]

Автор - SergeyKorotun
Дата добавления - 19.08.2013 в 11:57
-SVP- Дата: Понедельник, 19.08.2013, 14:58 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

SergeyKorotun, идею понял.
Спасибо.
 
Ответить
СообщениеSergeyKorotun, идею понял.
Спасибо.

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

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