Столкнулся с проблемой. Друг когда-то помог сделать макрос по автоматическому заполнению наряда, используя тот же макрос что и был хочу применить его к заполнению другой формы бланка. необходимые параметры, во вкладке сотрудники при простановке цифры 1 напротив нужных сотрудников и при нажатии перезаполнить наряд, автоматически переносились имена и должности в бланк наряд допуск в алфавитном порядке. При перезаполнении наряда наряд автоматически зачищался и перезаполнялося если введены другие значения.
Столкнулся с проблемой. Друг когда-то помог сделать макрос по автоматическому заполнению наряда, используя тот же макрос что и был хочу применить его к заполнению другой формы бланка. необходимые параметры, во вкладке сотрудники при простановке цифры 1 напротив нужных сотрудников и при нажатии перезаполнить наряд, автоматически переносились имена и должности в бланк наряд допуск в алфавитном порядке. При перезаполнении наряда наряд автоматически зачищался и перезаполнялося если введены другие значения.Tindarius
Dim rng_Sign As Range Set rng_Sign = Worksheets("Сотрудники").Columns("H:H").SpecialCells(xlCellTypeConstants, 23)
Dim wsh As Worksheet Set wsh = Worksheets("Наряд допуск") Dim cell As Range, cell_Dest As Range For Each cell In rng_Sign
If cell.Value = 1 Then Set cell_Dest = cell_Empty(wsh) If Not cell_Dest Is Nothing Then cell_Dest.Value = cell.Offset(0, -2).Value ' ФИО cell_Dest.Offset(0, 1).Value = cell.Offset(0, -4).Value ' ФИО End If End If Next End Sub
Function cell_Empty( _ wsh As Worksheet) _ As Range
Dim cell As Range Set cell = wsh.Range("A61").End(xlDown).Offset(1, 0) ' нет исполнителей If cell.Row = 84 Then Set cell_Empty = wsh.Range("A62") ' исполнители заполнены If cell.Row < 81 Then Set cell_Empty = cell
End Function
[/vba]
Привет! Начало положил
[vba]
Код
Sub Tindarius()
Dim rng_Sign As Range Set rng_Sign = Worksheets("Сотрудники").Columns("H:H").SpecialCells(xlCellTypeConstants, 23)
Dim wsh As Worksheet Set wsh = Worksheets("Наряд допуск") Dim cell As Range, cell_Dest As Range For Each cell In rng_Sign
If cell.Value = 1 Then Set cell_Dest = cell_Empty(wsh) If Not cell_Dest Is Nothing Then cell_Dest.Value = cell.Offset(0, -2).Value ' ФИО cell_Dest.Offset(0, 1).Value = cell.Offset(0, -4).Value ' ФИО End If End If Next End Sub
Function cell_Empty( _ wsh As Worksheet) _ As Range
Dim cell As Range Set cell = wsh.Range("A61").End(xlDown).Offset(1, 0) ' нет исполнителей If cell.Row = 84 Then Set cell_Empty = wsh.Range("A62") ' исполнители заполнены If cell.Row < 81 Then Set cell_Empty = cell