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

Вход

Регистрация

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

 

= Мир MS Excel/Удаление строк если значение ячейки равно нулю или пусто - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление строк если значение ячейки равно нулю или пусто (Макросы/Sub)
Удаление строк если значение ячейки равно нулю или пусто
temnoo Дата: Четверг, 02.02.2017, 14:05 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Есть документ который необходимо распечатать. Необходимо вывести макрос, что бы сначало проверял есть ли вообще какие-то данные в диапазоне A5:A26, если они есть то он удалял пустые строчки и уже потом делал печать.

Если в данном диапазоне нету данных для печати, то макрос переходит на след документ, предположительно Скл 2 и проверял там в точно таком же диапазоне.
К сообщению приложен файл: 73523527.xlsx (21.0 Kb)
 
Ответить
СообщениеЕсть документ который необходимо распечатать. Необходимо вывести макрос, что бы сначало проверял есть ли вообще какие-то данные в диапазоне A5:A26, если они есть то он удалял пустые строчки и уже потом делал печать.

Если в данном диапазоне нету данных для печати, то макрос переходит на след документ, предположительно Скл 2 и проверял там в точно таком же диапазоне.

Автор - temnoo
Дата добавления - 02.02.2017 в 14:05
Manyasha Дата: Четверг, 02.02.2017, 15:53 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
temnoo, так пойдет?
[vba]
Код
Sub removeBlankRows()
    Application.ScreenUpdating = False
    Dim sh As Worksheet, lr As Long, i As Long
    For Each sh In ThisWorkbook.Sheets
        If sh.Name Like "Скл*" Then
            With sh
                If Not Intersect(.Range("A5:A26"), .UsedRange) Is Nothing Then
                    lr = .Cells(Rows.Count, 1).End(xlUp).Row
                    For i = lr To 5 Step -1
                        If .Cells(i, 1) = "" Then .Rows(i).Delete
                    Next i
                    .PrintOut Copies:=1
                End If
            End With
        End If
    Next sh
    Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: 73523527-1.xlsm (28.2 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеtemnoo, так пойдет?
[vba]
Код
Sub removeBlankRows()
    Application.ScreenUpdating = False
    Dim sh As Worksheet, lr As Long, i As Long
    For Each sh In ThisWorkbook.Sheets
        If sh.Name Like "Скл*" Then
            With sh
                If Not Intersect(.Range("A5:A26"), .UsedRange) Is Nothing Then
                    lr = .Cells(Rows.Count, 1).End(xlUp).Row
                    For i = lr To 5 Step -1
                        If .Cells(i, 1) = "" Then .Rows(i).Delete
                    Next i
                    .PrintOut Copies:=1
                End If
            End With
        End If
    Next sh
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 02.02.2017 в 15:53
temnoo Дата: Четверг, 02.02.2017, 17:09 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
А можно не удалять а скрывать строчки?


Сообщение отредактировал Manyasha - Четверг, 02.02.2017, 17:12
 
Ответить
СообщениеА можно не удалять а скрывать строчки?

Автор - temnoo
Дата добавления - 02.02.2017 в 17:09
Manyasha Дата: Четверг, 02.02.2017, 17:13 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
temnoo, вместо Delete - напишите hidden = true


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеtemnoo, вместо Delete - напишите hidden = true

Автор - Manyasha
Дата добавления - 02.02.2017 в 17:13
temnoo Дата: Понедельник, 06.02.2017, 15:41 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Manyasha, Данный макрос все равно печатает лист, например Скл 3, даже если я обнуляю значения в диапазоне A5:A26. Необходимо что бы он его пропускал.
 
Ответить
СообщениеManyasha, Данный макрос все равно печатает лист, например Скл 3, даже если я обнуляю значения в диапазоне A5:A26. Необходимо что бы он его пропускал.

Автор - temnoo
Дата добавления - 06.02.2017 в 15:41
sboy Дата: Понедельник, 06.02.2017, 17:48 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Попробуйте так
[vba]
Код
Sub removeBlankRows()
    Application.ScreenUpdating = False
    Dim sh As Worksheet, lr As Long, i As Long
    For Each sh In ThisWorkbook.Sheets
        If sh.Name Like "Скл*" Then
            With sh
                'If Not Intersect(.Range("A5:A26"), .UsedRange) Is Nothing Then
                lr = .Cells(Rows.Count, 1).End(xlUp).Row
                If lr > 5 Then
                    For i = lr To 5 Step -1
                        If .Cells(i, 1) = "" Then .Rows(i).Delete
                    Next i
                    .PrintOut Copies:=1
                End If
            End With
        End If
    Next sh
    Application.ScreenUpdating = True
End Sub
[/vba]


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Попробуйте так
[vba]
Код
Sub removeBlankRows()
    Application.ScreenUpdating = False
    Dim sh As Worksheet, lr As Long, i As Long
    For Each sh In ThisWorkbook.Sheets
        If sh.Name Like "Скл*" Then
            With sh
                'If Not Intersect(.Range("A5:A26"), .UsedRange) Is Nothing Then
                lr = .Cells(Rows.Count, 1).End(xlUp).Row
                If lr > 5 Then
                    For i = lr To 5 Step -1
                        If .Cells(i, 1) = "" Then .Rows(i).Delete
                    Next i
                    .PrintOut Copies:=1
                End If
            End With
        End If
    Next sh
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - sboy
Дата добавления - 06.02.2017 в 17:48
temnoo Дата: Вторник, 07.02.2017, 10:55 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
sboy, строчки пустые удаляет, но все равно печатает Скл 3 даже если обнулить данные в ячейках
 
Ответить
Сообщениеsboy, строчки пустые удаляет, но все равно печатает Скл 3 даже если обнулить данные в ячейках

Автор - temnoo
Дата добавления - 07.02.2017 в 10:55
sboy Дата: Вторник, 07.02.2017, 11:15 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
temnoo, Вы при "обнулении" данных все удаляете? или оставляете подписи?


Яндекс: 410016850021169
 
Ответить
Сообщениеtemnoo, Вы при "обнулении" данных все удаляете? или оставляете подписи?

Автор - sboy
Дата добавления - 07.02.2017 в 11:15
temnoo Дата: Вторник, 07.02.2017, 13:44 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
sboy,
Я в диапазоне ячеек A5:A26. в ручную использую функцию "Очистить содержимое" либо просто удаляю данные при помощи delete
К сообщению приложен файл: 73523527.xlsm (28.3 Kb)
 
Ответить
Сообщениеsboy,
Я в диапазоне ячеек A5:A26. в ручную использую функцию "Очистить содержимое" либо просто удаляю данные при помощи delete

Автор - temnoo
Дата добавления - 07.02.2017 в 13:44
Wasilich Дата: Вторник, 07.02.2017, 13:47 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
строчки пустые удаляет, но все равно печатает Скл 3
Надо снять объединение колонок в строках подписей, разместив текст так, чтобы он не попадал а колонку А. Ну, или замените в коде[vba]
Код
If lr > 5 Then
[/vba] на [vba]
Код
If lr > 7 Then
[/vba]


Сообщение отредактировал Wasilich - Вторник, 07.02.2017, 14:07
 
Ответить
Сообщение
строчки пустые удаляет, но все равно печатает Скл 3
Надо снять объединение колонок в строках подписей, разместив текст так, чтобы он не попадал а колонку А. Ну, или замените в коде[vba]
Код
If lr > 5 Then
[/vba] на [vba]
Код
If lr > 7 Then
[/vba]

Автор - Wasilich
Дата добавления - 07.02.2017 в 13:47
temnoo Дата: Среда, 08.02.2017, 10:34 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Wasilich, Все равно печатает лист целиком хотя в данном диапазоне нету данных совсем. Может привязать этот макрос к какой нибудь определенной ячейки, где будет считаться количество ячеек с данными в диапазоне A5:A26 и если это количество будет равно 0 то печататься данный лист не будет.

Файл прикрепил. Как будет выглядеть код макроса?
К сообщению приложен файл: 2969029.xlsm (28.4 Kb)
 
Ответить
СообщениеWasilich, Все равно печатает лист целиком хотя в данном диапазоне нету данных совсем. Может привязать этот макрос к какой нибудь определенной ячейки, где будет считаться количество ячеек с данными в диапазоне A5:A26 и если это количество будет равно 0 то печататься данный лист не будет.

Файл прикрепил. Как будет выглядеть код макроса?

Автор - temnoo
Дата добавления - 08.02.2017 в 10:34
sboy Дата: Среда, 08.02.2017, 14:01 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
temnoo, Вам чуть выше написали
Надо снять объединение колонок в строках подписей, разместив текст так, чтобы он не попадал а колонку А

Поправил Вам в файле
К сообщению приложен файл: 8690752.xlsm (29.3 Kb)


Яндекс: 410016850021169
 
Ответить
Сообщениеtemnoo, Вам чуть выше написали
Надо снять объединение колонок в строках подписей, разместив текст так, чтобы он не попадал а колонку А

Поправил Вам в файле

Автор - sboy
Дата добавления - 08.02.2017 в 14:01
Wasilich Дата: Среда, 08.02.2017, 23:02 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Все равно печатает
Да уж, на счет [vba]
Код
If lr > 7 Then
[/vba]будет работать если пустые строки будут удалены. Если скрываются - читать выше.
 
Ответить
Сообщение
Все равно печатает
Да уж, на счет [vba]
Код
If lr > 7 Then
[/vba]будет работать если пустые строки будут удалены. Если скрываются - читать выше.

Автор - Wasilich
Дата добавления - 08.02.2017 в 23:02
temnoo Дата: Четверг, 09.02.2017, 09:55 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Wasilich, Я пробовал и удалять, и скрывать. и все равно ничего не меняется
 
Ответить
СообщениеWasilich, Я пробовал и удалять, и скрывать. и все равно ничего не меняется

Автор - temnoo
Дата добавления - 09.02.2017 в 09:55
RAN Дата: Четверг, 09.02.2017, 10:29 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Информация к размышлению
[vba]
Код
Sub q()
    lr = 9
    Set r = Rows("5:" & lr)
    a = r.Rows.Hidden
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеИнформация к размышлению
[vba]
Код
Sub q()
    lr = 9
    Set r = Rows("5:" & lr)
    a = r.Rows.Hidden
End Sub
[/vba]

Автор - RAN
Дата добавления - 09.02.2017 в 10:29
Wasilich Дата: Четверг, 09.02.2017, 11:08 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Я пробовал и удалять, и скрывать. и все равно ничего не меняется
НЕ ВЕРЮ!
Внимательно читайте 12-й пост, Вам sboy процитировал и пример выложил.
И 13-й тоже обмозгуйте.
 
Ответить
Сообщение
Я пробовал и удалять, и скрывать. и все равно ничего не меняется
НЕ ВЕРЮ!
Внимательно читайте 12-й пост, Вам sboy процитировал и пример выложил.
И 13-й тоже обмозгуйте.

Автор - Wasilich
Дата добавления - 09.02.2017 в 11:08
temnoo Дата: Вторник, 14.02.2017, 16:27 | Сообщение № 17
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
НЕ ВЕРЮ!


Не буду спорить, если удалить все данные в диапазоне A5:A26 кнопкой delete то ничего не печатается, круто, но в данных ячейках есть формула =ЕСЛИ(A142=2;B142;""), (пример) через которую и получается какое-то значение либо "". И вот тогда она ее печатает. Хотя там (в диапазоне) пусто.
 
Ответить
Сообщение
НЕ ВЕРЮ!


Не буду спорить, если удалить все данные в диапазоне A5:A26 кнопкой delete то ничего не печатается, круто, но в данных ячейках есть формула =ЕСЛИ(A142=2;B142;""), (пример) через которую и получается какое-то значение либо "". И вот тогда она ее печатает. Хотя там (в диапазоне) пусто.

Автор - temnoo
Дата добавления - 14.02.2017 в 16:27
Wasilich Дата: Вторник, 14.02.2017, 21:39 | Сообщение № 18
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
если удалить все данные в диапазоне A5:A26 кнопкой delete то ничего не печатается, круто, но в данных ячейках есть формула
hands Да уж, не годимся мы в экстрасенсы. Не могли догадаться, что у вас в столбце А формулы. :D
 
Ответить
Сообщение
если удалить все данные в диапазоне A5:A26 кнопкой delete то ничего не печатается, круто, но в данных ячейках есть формула
hands Да уж, не годимся мы в экстрасенсы. Не могли догадаться, что у вас в столбце А формулы. :D

Автор - Wasilich
Дата добавления - 14.02.2017 в 21:39
temnoo Дата: Среда, 15.02.2017, 09:08 | Сообщение № 19
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
не годимся мы в экстрасенсы


Слишком много сарказм. Я взял пример из поста 12 и вставил формулу, что когда ЛОЖЬ то значение приобретает "" и он все равно печатает. Я надеюсь я правильно выражаю мысль
 
Ответить
Сообщение
не годимся мы в экстрасенсы


Слишком много сарказм. Я взял пример из поста 12 и вставил формулу, что когда ЛОЖЬ то значение приобретает "" и он все равно печатает. Я надеюсь я правильно выражаю мысль

Автор - temnoo
Дата добавления - 15.02.2017 в 09:08
temnoo Дата: Четверг, 16.02.2017, 14:21 | Сообщение № 20
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
В листе "скл 3" в диапазоне от А5 до А26 во всех ячейках стоит значение ="", что для меня это означает "пусто". Очень бы хотелось, что бы макрос не печатал этот лист. Пока он просто не скрывает там строчки
К сообщению приложен файл: 142436473434.xlsm (28.2 Kb)


Сообщение отредактировал temnoo - Четверг, 16.02.2017, 14:21
 
Ответить
СообщениеВ листе "скл 3" в диапазоне от А5 до А26 во всех ячейках стоит значение ="", что для меня это означает "пусто". Очень бы хотелось, что бы макрос не печатал этот лист. Пока он просто не скрывает там строчки

Автор - temnoo
Дата добавления - 16.02.2017 в 14:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление строк если значение ячейки равно нулю или пусто (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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