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

Вход

Регистрация

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

 

= Мир MS Excel/Разделить данные на разные страницы по первой цифре - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Разделить данные на разные страницы по первой цифре
Ocharovashka666 Дата: Среда, 13.03.2024, 20:32 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 167
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
Добрый день/вечер :)

Помогите пожалуйста еще одним макросом.
Есть файл с данными, в нем нужно с помощью макроса:
1. Сортировать по возрастанию столбик "Е"
2. Удалить строчки с данными столбика Е "999а"
3. Упорядочить оставшиеся данные так, что б каждая первая цифра из столбика "Е" начиналась с новой страницы (шапка остается только на первом листе, так же там уже есть колонтитул верхний на каждый лист с датой) для печати.

Суть та, что данные каждый раз разное количество и их надо распечатать и разложить в разные папки согласно первой цифре столбика Е. Данные каждой цифры может быть по 10 листов, а может всего несколько строчек

Во вложении два листа: сырая база и как должно быть..

Возможно ли вообще такое?
Заранее спасибо
К сообщению приложен файл: dlja_bazy.xlsx (36.9 Kb)


Рада нашему знакомству
 
Ответить
СообщениеДобрый день/вечер :)

Помогите пожалуйста еще одним макросом.
Есть файл с данными, в нем нужно с помощью макроса:
1. Сортировать по возрастанию столбик "Е"
2. Удалить строчки с данными столбика Е "999а"
3. Упорядочить оставшиеся данные так, что б каждая первая цифра из столбика "Е" начиналась с новой страницы (шапка остается только на первом листе, так же там уже есть колонтитул верхний на каждый лист с датой) для печати.

Суть та, что данные каждый раз разное количество и их надо распечатать и разложить в разные папки согласно первой цифре столбика Е. Данные каждой цифры может быть по 10 листов, а может всего несколько строчек

Во вложении два листа: сырая база и как должно быть..

Возможно ли вообще такое?
Заранее спасибо

Автор - Ocharovashka666
Дата добавления - 13.03.2024 в 20:32
Kuzmich Дата: Пятница, 15.03.2024, 16:31 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация: 157 ±
Замечаний: 0% ±

Excel 2003
Цитата
Возможно ли вообще такое?

Да
'удаляем из таблицы строки где в столбце С пусто
'сортировка по столбцу Е
'расстановка разрывов
 
Ответить
Сообщение
Цитата
Возможно ли вообще такое?

Да
'удаляем из таблицы строки где в столбце С пусто
'сортировка по столбцу Е
'расстановка разрывов

Автор - Kuzmich
Дата добавления - 15.03.2024 в 16:31
Kuzmich Дата: Среда, 20.03.2024, 22:59 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация: 157 ±
Замечаний: 0% ±

Excel 2003
Цитата
нужно с помощью макроса

[vba]
Код
Sub DeleteBlankRowSort()
Dim i&
Dim n&
  With ActiveSheet.ListObjects(1)
        'удаляем из таблицы строки где в столбце С пусто
      .Range.AutoFilter
      .Range.AutoFilter Field:=3, Criteria1:=""
      Application.DisplayAlerts = False
      On Error Resume Next
      .DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
      Application.DisplayAlerts = True
      .Range.AutoFilter
         'сортировка по столбцу Е
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Intersect(.DataBodyRange, Columns(5)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
         With .Sort
           .Header = xlYes
           .MatchCase = False
           .Orientation = xlTopToBottom
           .SortMethod = xlPinYin
           .Apply
         End With
          'расстановка разрывов
   For i = .ListRows.Count To .DataBodyRange.Row Step -1
         n = Mid(.DataBodyRange(i, 5), 1, 1)
       If Mid(.DataBodyRange(i, 5), 1, 1) <> Mid(.DataBodyRange(i - 1, 5), 1, 1) Then
         ActiveSheet.HPageBreaks.Add .ListRows(i).Range
       End If
   Next
End With
End Sub

[/vba]
 
Ответить
Сообщение
Цитата
нужно с помощью макроса

[vba]
Код
Sub DeleteBlankRowSort()
Dim i&
Dim n&
  With ActiveSheet.ListObjects(1)
        'удаляем из таблицы строки где в столбце С пусто
      .Range.AutoFilter
      .Range.AutoFilter Field:=3, Criteria1:=""
      Application.DisplayAlerts = False
      On Error Resume Next
      .DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
      Application.DisplayAlerts = True
      .Range.AutoFilter
         'сортировка по столбцу Е
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Intersect(.DataBodyRange, Columns(5)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
         With .Sort
           .Header = xlYes
           .MatchCase = False
           .Orientation = xlTopToBottom
           .SortMethod = xlPinYin
           .Apply
         End With
          'расстановка разрывов
   For i = .ListRows.Count To .DataBodyRange.Row Step -1
         n = Mid(.DataBodyRange(i, 5), 1, 1)
       If Mid(.DataBodyRange(i, 5), 1, 1) <> Mid(.DataBodyRange(i - 1, 5), 1, 1) Then
         ActiveSheet.HPageBreaks.Add .ListRows(i).Range
       End If
   Next
End With
End Sub

[/vba]

Автор - Kuzmich
Дата добавления - 20.03.2024 в 22:59
Ocharovashka666 Дата: Четверг, 28.03.2024, 19:06 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 167
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
Спасибо Вам огромное ))) все супер)))


Рада нашему знакомству
 
Ответить
СообщениеСпасибо Вам огромное ))) все супер)))

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

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