powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как обрабатывать вставку новой строки в Excel
8 сообщений из 8, страница 1 из 1
Как обрабатывать вставку новой строки в Excel
    #33638265
Livesms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как обрабатывать вставку новой строки в Excel?

Нужно отлавливать событие вставки новой строки на листе - и заполнять некоторые ее ячейки формулами.

Чтоб избавить юзеров от постоянного копирования формул Ctrl+D - так как в строке не во всех ячейках формулы, и значения из предыдущей строки переносить не нужно (ламеры будут пропускать и оставлять же 100%).
...
Рейтинг: 0 / 0
Как обрабатывать вставку новой строки в Excel
    #33638325
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имхо никак
лутше сделать свою кнопку для добавления строк
...
Рейтинг: 0 / 0
Как обрабатывать вставку новой строки в Excel
    #33638384
Livesms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И что нету события OnRoInsert или т.д. (как в Oracle)

Есть же OnChange
...
Рейтинг: 0 / 0
Как обрабатывать вставку новой строки в Excel
    #33638400
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё что есть
...
Рейтинг: 0 / 0
Как обрабатывать вставку новой строки в Excel
    #33638442
Livesms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не густо

Тогда прийдется наверно отслеживать изменения в области выделения и перечитывать одну ячейку (основную несущую нагрузку) или отслеживать изменение ее содержания.

Когда в ней или даже области что-то меняют, то заполнять нужные ячейки формулами.
...
Рейтинг: 0 / 0
Как обрабатывать вставку новой строки в Excel
    #33640174
121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
121
Гость
Ну, к примеру так.
Ячейки с формулами покрашены,
на листе есть диапазоны, где строки добавлять можно.
Строку, идущую за диапазоном, красим в серый цвет ColorIndex-15.
Option Base 1

Dim CellValue(1 To 2) As Integer
Dim Stz As String
Dim SetlName As String
Dim CellKoord() As Long




Private Sub Worksheet_sELECTIONChange(ByVal Target As Range)

If Range("B" + Trim(CStr(Target.Row))).Interior.ColorIndex = 40 Then


Answ = MsgBox("Õîòèòå äîáàâèòü ñòðîêó?", vbYesNo)
If Answ = vbYes Then
ActiveSheet.Unprotect Password:="92RIhjZ"
Target.Select
Target.EntireRow.Insert
Rows(Trim(CStr(Target.Row - 1)) + ":" + Trim(CStr(Target.Row - 1))).Select
Selection.Locked = False
Selection.FormulaHidden = False


Range("g" + Trim(CStr(Target.Row - 1))).Formula = Replace(expression:=CStr(Range("G" + Trim(CStr(Target.Row - 2))).Formula), Find:=Trim(CStr(CStr(Target.Row - 2))), Replace:=Trim(CStr(CStr(Target.Row))), Start:=1, Count:=-1, compare:=vbTextCompare)
Range("i" + Trim(CStr(Target.Row - 1))).Formula = Replace(expression:=CStr(Range("I" + Trim(CStr(Target.Row - 2))).Formula), Find:=Trim(CStr(CStr(Target.Row - 2))), Replace:=Trim(CStr(CStr(Target.Row))), Start:=1, Count:=-1, compare:=vbTextCompare)
ActiveSheet.Columns("C").Hidden = True
ActiveSheet.Protect Password:="92RIhjZ"
ActiveWorkbook.Protect Structure:=True, Windows:=False


End If
End If
' ActiveSheet.Columns("C").Hidden = True
ActiveSheet.Protect Password:="92RIhjZ"
ActiveWorkbook.Protect

End Sub
...
Рейтинг: 0 / 0
Как обрабатывать вставку новой строки в Excel
    #33640184
Livesms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
121Ну, к примеру так.
Ячейки с формулами покрашены,
на листе есть диапазоны, где строки добавлять можно.
Строку, идущую за диапазоном, красим в серый цвет ColorIndex-15.
Option Base 1

Dim CellValue(1 To 2) As Integer
Dim Stz As String
Dim SetlName As String
Dim CellKoord() As Long




Private Sub Worksheet_sELECTIONChange(ByVal Target As Range)

If Range("B" + Trim(CStr(Target.Row))).Interior.ColorIndex = 40 Then


Answ = MsgBox("Õîòèòå äîáàâèòü ñòðîêó?", vbYesNo)
If Answ = vbYes Then
ActiveSheet.Unprotect Password:="92RIhjZ"
Target.Select
Target.EntireRow.Insert
Rows(Trim(CStr(Target.Row - 1)) + ":" + Trim(CStr(Target.Row - 1))).Select
Selection.Locked = False
Selection.FormulaHidden = False


Range("g" + Trim(CStr(Target.Row - 1))).Formula = Replace(expression:=CStr(Range("G" + Trim(CStr(Target.Row - 2))).Formula), Find:=Trim(CStr(CStr(Target.Row - 2))), Replace:=Trim(CStr(CStr(Target.Row))), Start:=1, Count:=-1, compare:=vbTextCompare)
Range("i" + Trim(CStr(Target.Row - 1))).Formula = Replace(expression:=CStr(Range("I" + Trim(CStr(Target.Row - 2))).Formula), Find:=Trim(CStr(CStr(Target.Row - 2))), Replace:=Trim(CStr(CStr(Target.Row))), Start:=1, Count:=-1, compare:=vbTextCompare)
ActiveSheet.Columns("C").Hidden = True
ActiveSheet.Protect Password:="92RIhjZ"
ActiveWorkbook.Protect Structure:=True, Windows:=False


End If
End If
' ActiveSheet.Columns("C").Hidden = True
ActiveSheet.Protect Password:="92RIhjZ"
ActiveWorkbook.Protect

End Sub

Я пока в макросах не силен чтоб сразу понять все строки.
Поэтому можно пару коментариев :)
...
Рейтинг: 0 / 0
Как обрабатывать вставку новой строки в Excel
    #33642497
121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
121
Гость
Файл прикладываю, посмотрите.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как обрабатывать вставку новой строки в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]