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