Добрый день! Помогите пожалуйста написать макрос. В приложенном примере: После нажатия кнопки добавить объект открывается форма «Факторы» После выбора переключателя и установки необходимых флажков, после нажатия кнопки «ОК», на листе «форма» отображаются строки, мне необходимо после заполнения таблицы скопировать эти строки на лист «отчет». Далее при нажатии кнопки «Добавить объект» нужно чтобы на листе «форма» формировалась таблица для нового объекта и далее он вставлялся на лист "отчет" ниже предыдущего объекта. И еще посоветуйте если есть возможность как оптимизировать процедуры формы "Факторы"
Добрый день! Помогите пожалуйста написать макрос. В приложенном примере: После нажатия кнопки добавить объект открывается форма «Факторы» После выбора переключателя и установки необходимых флажков, после нажатия кнопки «ОК», на листе «форма» отображаются строки, мне необходимо после заполнения таблицы скопировать эти строки на лист «отчет». Далее при нажатии кнопки «Добавить объект» нужно чтобы на листе «форма» формировалась таблица для нового объекта и далее он вставлялся на лист "отчет" ниже предыдущего объекта. И еще посоветуйте если есть возможность как оптимизировать процедуры формы "Факторы"StasON
If CB_Подг_работы Then Worksheets("форма").Range("ОбъектСОУТ_ПР").EntireRow.Hidden = 0 Else Worksheets("форма").Range("ОбъектСОУТ_ПР").EntireRow.Hidden = 1 End If
[/vba] достаточно [vba]
Код
Worksheets("форма").Range("ОбъектСОУТ_ПР").EntireRow.Hidden = Not CB_Подг_работы
[/vba]
Цитата
как оптимизировать процедуры формы "Факторы"
можно сократить код. вместо: [vba]
Код
If CB_Подг_работы Then Worksheets("форма").Range("ОбъектСОУТ_ПР").EntireRow.Hidden = 0 Else Worksheets("форма").Range("ОбъектСОУТ_ПР").EntireRow.Hidden = 1 End If
[/vba] достаточно [vba]
Код
Worksheets("форма").Range("ОбъектСОУТ_ПР").EntireRow.Hidden = Not CB_Подг_работы
Благодарю, буду пробовать. Кое что уже сделал, не могу только понять как этот диапазон вставить на другой лист например через 2 строки после предыдущего диапазона [vba]
Код
Private Sub CommandButton1_Click() Range("объект").SpecialCells(xlCellTypeVisible).Copy Sheets("отчет").Select Dim lLastRow As Long lLastRow = Cells.SpecialCells(xlLastCell).Row ActiveSheet.Paste End Sub
[/vba]
диапазон вставляется начиная с выделенной ячейки
Благодарю, буду пробовать. Кое что уже сделал, не могу только понять как этот диапазон вставить на другой лист например через 2 строки после предыдущего диапазона [vba]
Код
Private Sub CommandButton1_Click() Range("объект").SpecialCells(xlCellTypeVisible).Copy Sheets("отчет").Select Dim lLastRow As Long lLastRow = Cells.SpecialCells(xlLastCell).Row ActiveSheet.Paste End Sub
[/vba]
диапазон вставляется начиная с выделенной ячейкиStasON
Private Sub CommandButton1_Click() Range("объект").SpecialCells(xlCellTypeVisible).Copy Sheets("отчет").Select Dim R As Long R = Range("A" & Rows.Count).End(xlUp).Row + 2 Range("A" & R).Select ActiveSheet.Paste End Sub
[/vba]
[vba]
Код
Private Sub CommandButton1_Click() Range("объект").SpecialCells(xlCellTypeVisible).Copy Sheets("отчет").Select Dim R As Long R = Range("A" & Rows.Count).End(xlUp).Row + 2 Range("A" & R).Select ActiveSheet.Paste End Sub