Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Скопировать не скрытые строки с одного листа на другой - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скопировать не скрытые строки с одного листа на другой (Макросы/Sub)
Скопировать не скрытые строки с одного листа на другой
StasON Дата: Пятница, 21.11.2014, 10:56 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 40% ±

2010
Добрый день!
Помогите пожалуйста написать макрос.
В приложенном примере:
После нажатия кнопки добавить объект открывается форма «Факторы»
После выбора переключателя и установки необходимых флажков, после нажатия кнопки «ОК», на листе «форма» отображаются строки, мне необходимо после заполнения таблицы скопировать эти строки на лист «отчет».
Далее при нажатии кнопки «Добавить объект» нужно чтобы на листе «форма» формировалась таблица для нового объекта и далее он вставлялся на лист "отчет" ниже предыдущего объекта.
И еще посоветуйте если есть возможность как оптимизировать процедуры формы "Факторы"
К сообщению приложен файл: 8113907.xlsm (53.0 Kb)


Сообщение отредактировал StasON - Пятница, 21.11.2014, 11:16
 
Ответить
СообщениеДобрый день!
Помогите пожалуйста написать макрос.
В приложенном примере:
После нажатия кнопки добавить объект открывается форма «Факторы»
После выбора переключателя и установки необходимых флажков, после нажатия кнопки «ОК», на листе «форма» отображаются строки, мне необходимо после заполнения таблицы скопировать эти строки на лист «отчет».
Далее при нажатии кнопки «Добавить объект» нужно чтобы на листе «форма» формировалась таблица для нового объекта и далее он вставлялся на лист "отчет" ниже предыдущего объекта.
И еще посоветуйте если есть возможность как оптимизировать процедуры формы "Факторы"

Автор - StasON
Дата добавления - 21.11.2014 в 10:56
alex77755 Дата: Воскресенье, 23.11.2014, 14:08 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Цитата
как оптимизировать процедуры формы "Факторы"

можно сократить код. вместо:
[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_Подг_работы
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение
Цитата
как оптимизировать процедуры формы "Факторы"

можно сократить код. вместо:
[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_Подг_работы
[/vba]

Автор - alex77755
Дата добавления - 23.11.2014 в 14:08
Wasilich Дата: Воскресенье, 23.11.2014, 16:37 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Чисто по теме. Код для копирования видимого диапазона.
[vba]
Код
Range("A1:E108").SpecialCells(xlVisible).Copy
[/vba]
 
Ответить
СообщениеЧисто по теме. Код для копирования видимого диапазона.
[vba]
Код
Range("A1:E108").SpecialCells(xlVisible).Copy
[/vba]

Автор - Wasilich
Дата добавления - 23.11.2014 в 16:37
StasON Дата: Воскресенье, 23.11.2014, 17:12 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 40% ±

2010
Благодарю, буду пробовать.
Кое что уже сделал, не могу только понять как этот диапазон вставить на другой лист например через 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
Дата добавления - 23.11.2014 в 17:12
Wasilich Дата: Воскресенье, 23.11.2014, 18:30 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
[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
[/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
[/vba]

Автор - Wasilich
Дата добавления - 23.11.2014 в 18:30
StasON Дата: Воскресенье, 23.11.2014, 18:47 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 40% ±

2010
Ругается на[vba]
Код
Range("A" & R).Select
[/vba]


Сообщение отредактировал Serge_007 - Воскресенье, 23.11.2014, 19:13
 
Ответить
СообщениеРугается на[vba]
Код
Range("A" & R).Select
[/vba]

Автор - StasON
Дата добавления - 23.11.2014 в 18:47
RAN Дата: Воскресенье, 23.11.2014, 18:53 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Строка R скрыта.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСтрока R скрыта.

Автор - RAN
Дата добавления - 23.11.2014 в 18:53
StasON Дата: Воскресенье, 23.11.2014, 19:10 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 40% ±

2010
на том листе куда нужно вставлять нет скрытых строк, или я чего-то не догоняю?


Сообщение отредактировал Serge_007 - Воскресенье, 23.11.2014, 19:13
 
Ответить
Сообщениена том листе куда нужно вставлять нет скрытых строк, или я чего-то не догоняю?

Автор - StasON
Дата добавления - 23.11.2014 в 19:10
RAN Дата: Воскресенье, 23.11.2014, 19:28 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Долго в загадки играть будем?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеДолго в загадки играть будем?

Автор - RAN
Дата добавления - 23.11.2014 в 19:28
StasON Дата: Понедельник, 24.11.2014, 10:14 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 40% ±

2010
Проблема решена. Только процедуру пришлось перенести в модуль, иначе не работало.
Благодарю за участие.
К сообщению приложен файл: __24___2014_.xlsm (54.7 Kb)
 
Ответить
СообщениеПроблема решена. Только процедуру пришлось перенести в модуль, иначе не работало.
Благодарю за участие.

Автор - StasON
Дата добавления - 24.11.2014 в 10:14
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скопировать не скрытые строки с одного листа на другой (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!