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

Вход

Регистрация

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

 

= Мир MS Excel/перенос табличной части счета на оплату, на новый лист - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
перенос табличной части счета на оплату, на новый лист
alexsampler2119 Дата: Четверг, 20.06.2024, 13:07 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Добрый день, товарищи Excel специалисты!
Нужен макрос, который бы обращался к листу с формой Счета на оплату и копировал только табличную часть с данными, заключенную в "жирную" рамку, которая может меняться только по количеству строк. И переносил бы ее на новый лист в том же виде, для дальнейшего форматирования с помощью макро рекордера.
В VBA не силен, только макро рекордер. по этому буду признателен за разъяснение как работает макрос.
Спасибо большое!
К сообщению приложен файл: schet_na_oplatu_test.xlsx (19.3 Kb)
 
Ответить
СообщениеДобрый день, товарищи Excel специалисты!
Нужен макрос, который бы обращался к листу с формой Счета на оплату и копировал только табличную часть с данными, заключенную в "жирную" рамку, которая может меняться только по количеству строк. И переносил бы ее на новый лист в том же виде, для дальнейшего форматирования с помощью макро рекордера.
В VBA не силен, только макро рекордер. по этому буду признателен за разъяснение как работает макрос.
Спасибо большое!

Автор - alexsampler2119
Дата добавления - 20.06.2024 в 13:07
Nic70y Дата: Четверг, 20.06.2024, 14:19 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9001
Репутация: 2367 ±
Замечаний: 0% ±

Excel 2010
вариант:
макрос в модуле книги
срабатывает на двойной клик левой кнопки мыши
по любой ячейке
[vba]
Код
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    a = Range("b1").Value
    'если в ячейке B1 значение = №
    'значит это уже обработанный лист
    If a = "№" Then
        MsgBox "Что надо?"
    Else
        'иначе
        'копируем активный лист и переносим его после крайнего
        ActiveSheet.Copy After:=Sheets(Sheets.Count)
        'удаляем строки 1:12
        Rows("1:22").Delete Shift:=xlUp
        'ищем нижнюю строку таблицы (прибавляем 2)
        'это как выделить ячейку с № и нажать на End и стрелку вниз
        b = Range("b1").End(xlDown).Row + 2
        'ищем нижнюю строку со значением
        c = Cells(Rows.Count, "b").End(xlUp).Row
        'удаляем эти строки
        Rows(b & ":" & c).Delete Shift:=xlUp
    End If
End Sub
[/vba]
К сообщению приложен файл: schet_na_oplatu_test.xlsm (26.8 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениевариант:
макрос в модуле книги
срабатывает на двойной клик левой кнопки мыши
по любой ячейке
[vba]
Код
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    a = Range("b1").Value
    'если в ячейке B1 значение = №
    'значит это уже обработанный лист
    If a = "№" Then
        MsgBox "Что надо?"
    Else
        'иначе
        'копируем активный лист и переносим его после крайнего
        ActiveSheet.Copy After:=Sheets(Sheets.Count)
        'удаляем строки 1:12
        Rows("1:22").Delete Shift:=xlUp
        'ищем нижнюю строку таблицы (прибавляем 2)
        'это как выделить ячейку с № и нажать на End и стрелку вниз
        b = Range("b1").End(xlDown).Row + 2
        'ищем нижнюю строку со значением
        c = Cells(Rows.Count, "b").End(xlUp).Row
        'удаляем эти строки
        Rows(b & ":" & c).Delete Shift:=xlUp
    End If
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 20.06.2024 в 14:19
  • Страница 1 из 1
  • 1
Поиск:

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