Здравствуйте!
Прошу оказать помощь за вознаграждение в связке двух независимых друг от друга макросов в единый код для одного листа книги.
Первый макрос (добавление текущей даты в ячейку слева, при вводу данных в соседней ячейке справа):
Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("D18:D10000"), Target)
xOffsetColumn = -1
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Date
Rng.Offset(0, xOffsetColumn).NumberFormat = "dd.mm.yyyy"
Else
Rng.Offset(0, xOffsetColumn).ClearContents
End If
Next
Application.EnableEvents = True
End If
End Sub
Второй макрос (вставка необходимого количества скопированных строк, снизу под активной):
Sub Вставка_строк()
n = InputBox("Сколько строк вставить?")
With ActiveCell
.Offset(1).Resize(n).EntireRow.Insert
Range(Cells(.Row, "A"), Cells(.Row, "BZ")).Copy Cells(.Row, 1).Offset(1).Resize(n)
End With
End Sub
Модуль ко второму макросу:
Sub Вставка_строк()
n = InputBox("Сколько строк вставить?")
With ActiveCell
.Offset(1).Resize(n).EntireRow.Insert
Range(Cells(.Row, "A"), Cells(.Row, "BZ")).Copy Cells(.Row, 1).Offset(1).Resize(n)
End With
End Sub
Необходимо, чтобы оба макроса работали для одного листа книги.
P.S. в работе с макросами новичок.
Прошу оказать помощь за вознаграждение в связке двух независимых друг от друга макросов в единый код для одного листа книги.
Первый макрос (добавление текущей даты в ячейку слева, при вводу данных в соседней ячейке справа):
Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("D18:D10000"), Target)
xOffsetColumn = -1
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Date
Rng.Offset(0, xOffsetColumn).NumberFormat = "dd.mm.yyyy"
Else
Rng.Offset(0, xOffsetColumn).ClearContents
End If
Next
Application.EnableEvents = True
End If
End Sub
Второй макрос (вставка необходимого количества скопированных строк, снизу под активной):
Sub Вставка_строк()
n = InputBox("Сколько строк вставить?")
With ActiveCell
.Offset(1).Resize(n).EntireRow.Insert
Range(Cells(.Row, "A"), Cells(.Row, "BZ")).Copy Cells(.Row, 1).Offset(1).Resize(n)
End With
End Sub
Модуль ко второму макросу:
Sub Вставка_строк()
n = InputBox("Сколько строк вставить?")
With ActiveCell
.Offset(1).Resize(n).EntireRow.Insert
Range(Cells(.Row, "A"), Cells(.Row, "BZ")).Copy Cells(.Row, 1).Offset(1).Resize(n)
End With
End Sub
Необходимо, чтобы оба макроса работали для одного листа книги.
P.S. в работе с макросами новичок.