Подскажите пожалуйста,существует ли какой макрос по удалению лишних страниц Есть данный табель кол-во страниц в нём каждый раз разное в нём максимальное 40 страниц в формате A3.Для примера сделал 16 заполненных страниц, в данном случае необходимо удалить с 18-39 и подставить последнюю 40 Последняя 40 страница всегда должна быть чётной Товарищи модераторы простите Как только не пытался сжать в 100kb не укладывается пришлось на яндекс закинуть Удалено. Нарушение Правил форума
Подскажите пожалуйста,существует ли какой макрос по удалению лишних страниц Есть данный табель кол-во страниц в нём каждый раз разное в нём максимальное 40 страниц в формате A3.Для примера сделал 16 заполненных страниц, в данном случае необходимо удалить с 18-39 и подставить последнюю 40 Последняя 40 страница всегда должна быть чётной Товарищи модераторы простите Как только не пытался сжать в 100kb не укладывается пришлось на яндекс закинуть Удалено. Нарушение Правил форумаgge29
Сообщение отредактировал Pelena - Пятница, 19.08.2016, 22:21
gge29, не надо писать мне в личку(если не собираетесь оплачивать мои услуги), для обсуждений есть этот форум. Что Вы расписали? Удалить от сих до сих? Не вопрос. Для первого примера(удаленного): [vba]
Код
Public Sub www() ActiveSheet.Range((17 * 22 + 6) & ":" & (39 * 22 + 5)).Delete End Sub
gge29, не надо писать мне в личку(если не собираетесь оплачивать мои услуги), для обсуждений есть этот форум. Что Вы расписали? Удалить от сих до сих? Не вопрос. Для первого примера(удаленного): [vba]
Код
Public Sub www() ActiveSheet.Range((17 * 22 + 6) & ":" & (39 * 22 + 5)).Delete End Sub
Последняя 40 страница всегда должна быть чётной Вы хоть читаете, что пишете?
Это было написано в 1 сообщении где в файле было 40 страниц, у этого табеля каждый месяц разное кол-во страниц,максимальное 40 Например если из 40 заполнено 16 удалить надо с 18-39,а остаться должно 1-17+40(которая всегда чётная
Последняя 40 страница всегда должна быть чётной Вы хоть читаете, что пишете?
Это было написано в 1 сообщении где в файле было 40 страниц, у этого табеля каждый месяц разное кол-во страниц,максимальное 40 Например если из 40 заполнено 16 удалить надо с 18-39,а остаться должно 1-17+40(которая всегда чётнаяgge29
Сообщение отредактировал gge29 - Пятница, 19.08.2016, 23:23
Public Sub www() ActiveSheet.Range((17 * 22 + 6) & ":" & (39 * 22 + 5)).Delete End Sub
В данном коде вы в ручную указываете что удалить с 17,а если их не 16 заполненных а например 10 должно остаться 1-10+11 нечётная чистая + 40 чётная обложка
Public Sub www() ActiveSheet.Range((17 * 22 + 6) & ":" & (39 * 22 + 5)).Delete End Sub
В данном коде вы в ручную указываете что удалить с 17,а если их не 16 заполненных а например 10 должно остаться 1-10+11 нечётная чистая + 40 чётная обложкаgge29
Сообщение отредактировал gge29 - Пятница, 19.08.2016, 23:13
- это по-Вашему пояснение? Тогда мой макрос - исчерпывающее решение. Уже восьмое сообщение в теме(не считая лички), а Вы до сих пор внятно не сформулировали задачу. Ну, мне не настолько нечего делать, чтоб толочь тут воду в ступе
- это по-Вашему пояснение? Тогда мой макрос - исчерпывающее решение. Уже восьмое сообщение в теме(не считая лички), а Вы до сих пор внятно не сформулировали задачу. Ну, мне не настолько нечего делать, чтоб толочь тут воду в ступе KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Здравствуйте. А обязательно удалять? Можно просто скрывать не нужные. В файле вариант с фильтром в столбце BS. Фильтр по 1, отобразит нужное, филтр по нулю ненужное, которое можно выделит и удалить строки.
Здравствуйте. А обязательно удалять? Можно просто скрывать не нужные. В файле вариант с фильтром в столбце BS. Фильтр по 1, отобразит нужное, филтр по нулю ненужное, которое можно выделит и удалить строки.gling
не подходит оставляет много чистых и рамки пропадают Смысл в том что последний лист должен быть всегда чётным В оригинальном шаблоне 40 листов каждый под себя заполняет своих работников и сохраняет к себе на пк(шаблон остаётся не тронутым) у всех разное кол-во заполненных страниц
не подходит оставляет много чистых и рамки пропадают Смысл в том что последний лист должен быть всегда чётным В оригинальном шаблоне 40 листов каждый под себя заполняет своих работников и сохраняет к себе на пк(шаблон остаётся не тронутым) у всех разное кол-во заполненных страниц
Может подскажете как реализовать такой макрос если через ЕСЛИ даты в 0 переделать [vba]
Код
Sub test() Application.ScreenUpdating = False ' отключаем обновление экрана Dim sh As Worksheet: Set sh = ActiveSheet ' Set sh = Sheets("MAKROS_EKSPIREMENT") Dim FirstCell As Range: Set FirstCell = sh.Range("G5") ' первая ячейка ' берем диапазон до последней заполненной Dim ra As Range: Set ra = sh.Range(FirstCell, FirstCell.End(xlDown)) ra.Value = ra.Value ' преобразуем формулы в значения ra.Replace "0", vbNullString, xlWhole ' очищаем ячейки с нулями On Error Resume Next ra.SpecialCells(xlCellTypeBlanks).EntireRow.Delete ' удаляем строки, которые были с нулями
sh.UsedRange.Value = sh.UsedRange.Value ' преобразуем формулы в значения на всем листе
' удаляем строки с ошибками в первом столбце sh.Range("a:a").SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete End Sub
[/vba]
Может подскажете как реализовать такой макрос если через ЕСЛИ даты в 0 переделать [vba]
Код
Sub test() Application.ScreenUpdating = False ' отключаем обновление экрана Dim sh As Worksheet: Set sh = ActiveSheet ' Set sh = Sheets("MAKROS_EKSPIREMENT") Dim FirstCell As Range: Set FirstCell = sh.Range("G5") ' первая ячейка ' берем диапазон до последней заполненной Dim ra As Range: Set ra = sh.Range(FirstCell, FirstCell.End(xlDown)) ra.Value = ra.Value ' преобразуем формулы в значения ra.Replace "0", vbNullString, xlWhole ' очищаем ячейки с нулями On Error Resume Next ra.SpecialCells(xlCellTypeBlanks).EntireRow.Delete ' удаляем строки, которые были с нулями
sh.UsedRange.Value = sh.UsedRange.Value ' преобразуем формулы в значения на всем листе
' удаляем строки с ошибками в первом столбце sh.Range("a:a").SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete End Sub
Владимир добрый вечер!!! Попробовал Ваш вариант создаёт лист и в ячейки BS вставляет формулу и присваивает № странице как реализовать это на удаление, и ругается на строку [vba]
Владимир добрый вечер!!! Попробовал Ваш вариант создаёт лист и в ячейки BS вставляет формулу и присваивает № странице как реализовать это на удаление, и ругается на строку [vba]
Если использовать фильтр для выделения листов появляются чистые листы перед последним например у меня заполнено 16 я выделил с 1 по 16+17 чистый лист табеля+40(чётная18-я) и у меня между 17 и 40 8 чистых листов
Если использовать фильтр для выделения листов появляются чистые листы перед последним например у меня заполнено 16 я выделил с 1 по 16+17 чистый лист табеля+40(чётная18-я) и у меня между 17 и 40 8 чистых листовgge29
Сообщение отредактировал gge29 - Суббота, 20.08.2016, 23:25
В вашем примере для чего то стоят нули в столбце G, где пишется ФИО уберите их, и на сороковом листе единицы уберите и попробуйте вновь. А ругается потому что не находит текст в ячейках столбца BS. Такое будет когда все листы будут заполнены. Наверно нужно прописать On Error Resume Next, чтобы не ругался. В файле выделите Лист4 и нажмите 35 раз "вставить строки", получится 40 листов. Запустите макрос.
В вашем примере для чего то стоят нули в столбце G, где пишется ФИО уберите их, и на сороковом листе единицы уберите и попробуйте вновь. А ругается потому что не находит текст в ячейках столбца BS. Такое будет когда все листы будут заполнены. Наверно нужно прописать On Error Resume Next, чтобы не ругался. В файле выделите Лист4 и нажмите 35 раз "вставить строки", получится 40 листов. Запустите макрос.gling
Владимир уже освоил Вашу версию, через фильтр выбираю страницы,потом перевожу в pdf и всё отлично(офис подтупливал походу,т.к. принтер не установлен,а на другом пк отлично Спасибо Вам за помощь!!!
Владимир уже освоил Вашу версию, через фильтр выбираю страницы,потом перевожу в pdf и всё отлично(офис подтупливал походу,т.к. принтер не установлен,а на другом пк отлично Спасибо Вам за помощь!!!gge29