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

Вход

Регистрация

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

 

= Мир MS Excel/Как ввести ограничения при добавлении/удалении строк - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Как ввести ограничения при добавлении/удалении строк
Муля2010 Дата: Среда, 06.10.2010, 12:29 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 290
Репутация: 12 ±
Замечаний: 0% ±

Привет, привет, привет! И на вечер два привета!
На листе 04.2010 имеется Рабочая таблица (см. самая большая)А в книге имется два макроса. Один для добавления строк, другой - для удаления.
Нужно в эти макросы ввести ограничения, чтобы они позволяли добавлять/удалять строки только в пределах рабочей (большой) таблицы. А если пользователь поставил курсор за пределами таблицы, выдавалось сообщение типа: "Вы пытаетесь вставить строки в запрещенном месте!"
Ориентировкой размера этой таблицы, может быть именованый диапазон "ОбластьСортировки".
С ув. Муля!
К сообщению приложен файл: 3289566.rar (22.3 Kb)


С ув. Муля!

Сообщение отредактировал Муля2010 - Среда, 06.10.2010, 12:33
 
Ответить
СообщениеПривет, привет, привет! И на вечер два привета!
На листе 04.2010 имеется Рабочая таблица (см. самая большая)А в книге имется два макроса. Один для добавления строк, другой - для удаления.
Нужно в эти макросы ввести ограничения, чтобы они позволяли добавлять/удалять строки только в пределах рабочей (большой) таблицы. А если пользователь поставил курсор за пределами таблицы, выдавалось сообщение типа: "Вы пытаетесь вставить строки в запрещенном месте!"
Ориентировкой размера этой таблицы, может быть именованый диапазон "ОбластьСортировки".
С ув. Муля!

Автор - Муля2010
Дата добавления - 06.10.2010 в 12:29
nilem Дата: Среда, 06.10.2010, 14:18 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Вот так можно:
Code
Sub VstRows()
If Cells(ActiveCell.Row, 1) = "х" Or Cells(ActiveCell.Row - 2, 1) = "№" Then
     MsgBox "Ви поставили курсор на рядок Всього. Внаслідок чого дані будуть зміщені," & vbCrLf _
            & "а таблиця спотворена. Для правильної вставки додаткових рядків установіть курсор на один рядок вище!", _
            vbExclamation, "Увага! У вас серйозна помилка"
     Exit Sub
End If
If Intersect(ActiveCell, Range("ОбластьСортировки")) Is Nothing Then
     MsgBox "Ви пытаетесь вставить строки в запрещенном месте!", vbExclamation, _
            "Увага! У вас ощень серйозна помилка"
     Exit Sub
End If
frmAddRows.Show
End Sub

Sub UdStr()
If Intersect(ActiveCell, Range("ОбластьСортировки")) Is Nothing Then
     MsgBox "Ви пытаетесь видаленить рядок из запрещенного места!", vbExclamation, _
            "Увага! У вас ощень серйозна помилка"
     Exit Sub
End If
If MsgBox("Будьте уважні! При натисканні на кнопку Да буде видалений зі списку рядок на якому знаходиться курсор : " & _
           ActiveCell.Value, vbYesNo, "Видалення даних звільнених працівників із відомості зарплати") = vbNo Then GoTo 20
x = ActiveCell.Rows.Row
Rows(x).Delete
[A15] = 1
For i = 15 To Rows.count
     If Cells(i, 3) = "" Then GoTo 10
Next i
10
Range("A15").AutoFill Destination:=Range(Cells(15, 1), Cells(i - 2, 1)), Type:=xlFillSeries
20
End Sub


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеВот так можно:
Code
Sub VstRows()
If Cells(ActiveCell.Row, 1) = "х" Or Cells(ActiveCell.Row - 2, 1) = "№" Then
     MsgBox "Ви поставили курсор на рядок Всього. Внаслідок чого дані будуть зміщені," & vbCrLf _
            & "а таблиця спотворена. Для правильної вставки додаткових рядків установіть курсор на один рядок вище!", _
            vbExclamation, "Увага! У вас серйозна помилка"
     Exit Sub
End If
If Intersect(ActiveCell, Range("ОбластьСортировки")) Is Nothing Then
     MsgBox "Ви пытаетесь вставить строки в запрещенном месте!", vbExclamation, _
            "Увага! У вас ощень серйозна помилка"
     Exit Sub
End If
frmAddRows.Show
End Sub

Sub UdStr()
If Intersect(ActiveCell, Range("ОбластьСортировки")) Is Nothing Then
     MsgBox "Ви пытаетесь видаленить рядок из запрещенного места!", vbExclamation, _
            "Увага! У вас ощень серйозна помилка"
     Exit Sub
End If
If MsgBox("Будьте уважні! При натисканні на кнопку Да буде видалений зі списку рядок на якому знаходиться курсор : " & _
           ActiveCell.Value, vbYesNo, "Видалення даних звільнених працівників із відомості зарплати") = vbNo Then GoTo 20
x = ActiveCell.Rows.Row
Rows(x).Delete
[A15] = 1
For i = 15 To Rows.count
     If Cells(i, 3) = "" Then GoTo 10
Next i
10
Range("A15").AutoFill Destination:=Range(Cells(15, 1), Cells(i - 2, 1)), Type:=xlFillSeries
20
End Sub

Автор - nilem
Дата добавления - 06.10.2010 в 14:18
Муля2010 Дата: Среда, 06.10.2010, 22:46 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 290
Репутация: 12 ±
Замечаний: 0% ±

Ув. nilem!
Макросы работают как надо.
Большущее вам СПАСИБО!


С ув. Муля!
 
Ответить
СообщениеУв. nilem!
Макросы работают как надо.
Большущее вам СПАСИБО!

Автор - Муля2010
Дата добавления - 06.10.2010 в 22:46
  • Страница 1 из 1
  • 1
Поиск:

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