помогите написать макрос задающий высоту строк автоподбором и фиксированную

Автор Anyuta, 24.12.2013, 14:12

« назад - далее »

Anyuta

Помогите пожалуйста написать макросы!

Есть файл, он состоит из тысяч строк и десятков столбцов, из него с помощью макросов я формирую разного вида отчеты.
Нюанс в том что кнопка вид справки например должна отображать строки в таблице с автоподбором высоты, т.е. текст должно быть видно в каждой ячейке

Sub Вид_справки()
   Application.ScreenUpdating = 0: Application.Calculation = xlManual 'отключаем обновление экрана для ускорения
    Columns.Hidden = False   'отменяем все скрытия строк и столбцов
    Rows.Hidden = False      '
    Range("Номера_столбцов").EntireRow.Hidden = True 'скрыть строку
    Columns("A:A").Hidden = True 'скрыть столбец
    Columns("C:F").Hidden = True '
    Columns("J:J").Hidden = True '
    Columns("L:L").Hidden = True '
    Columns("O:Q").Hidden = True '
    Columns("U:U").Hidden = True '
    Columns("W:X").Hidden = True '
    Columns("Z:AC").Hidden = True '
    Columns("AE:AF").Hidden = True '
     For Each cell In ActiveSheet.UsedRange.Columns(33).Cells         'проходим по всем ячейкам столбца
     If cell.Value = "х" Then cell.EntireRow.Hidden = True       'если в ячейке x - скрываем строку
  Next
  Application.ScreenUpdating = 1: Application.Calculation = xlAutomatic
End Sub


а кнопка вид отчета другой вариант, где все строки должны быть фиксированной высоты, например 15

Sub Вид_отчета()
    Application.ScreenUpdating = False 'отключаем обновление экрана для ускорения
    Columns.Hidden = False   'отменяем все скрытия строк и столбцов
    Rows.Hidden = False      '
    Range("Заголовок_справки").EntireRow.Hidden = True 'скрыть строку
    Range("Номера_справки").EntireRow.Hidden = True
    Columns("A:C").Hidden = True 'скрыть столбец
    Columns("I:J").Hidden = True '
    Columns("L:L").Hidden = True '
    Columns("O:O").Hidden = True '
    Columns("R:U").Hidden = True '
    Columns("W:AA").Hidden = True '
    Columns("AC:AC").Hidden = True '
    Columns("AE:AE").Hidden = True '
End Sub


Очень важный момент, высота строк должна корректироваться только исходя из необходимой высоты для ячеек которые входят в "Диапазон_данных"

RAN

Дежурный вопрос/ответ
У вас макрорекордер за неуплату отключили?
Включаем рекордер
Пишем макрос, добавляем 2 ваших, и, немного, серого вещества (у вас в наличии есть).
Вуаля!
Решение  получено!   ;D

Anyuta

подскажите тогда хоть как вот в это
Sub Высота_строк_автоподбором()
  Application.ScreenUpdating = 0: Application.Calculation = xlManual
       Range("Диапазон_данных").EntireRow.AutoFit
End Sub

вписать что бы он определял высоту автоподбором только видимых строк, вот это из макрорекордера
    Selection.SpecialCells(xlCellTypeVisible).Select
    Selection.Rows.AutoFit

cheshiki1

Sub Высота_строк_автоподбором()
  Application.ScreenUpdating = 0: Application.Calculation = xlManual
       Range("Диапазон_данных").SpecialCells(xlCellTypeVisible).EntireRow.AutoFit
End Sub


Anyuta

cheshiki1, к сожалению не совсем работает, он выравнивает по уровню всех ячеек, и скрытых тоже ((

kuklp

Ничего подобного, меняет высоту только видимых. И можно убрать лишнее:
Sub Высота_строк_автоподбором()
       Range("Диапазон_данных").SpecialCells(12).EntireRow.AutoFit
End Sub

Вот я отфильтровал по 22.02.2014. И еще Anyuta, правильно пишется отобрАзить. Исправьте.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Anyuta

С прошедшим Новым Годом!
Видимо я невнятно объяснила проблему, прошу прощения.
Скрытые строки он не трогает, тут все норм.
Но надо чтобы строки выравнивались по высоте только видимых ячеек в строке, т.е. в строке есть несколько ячеек где текста очень много, некоторые скрываются но, высота все равно формируется по всем ячейкам, и скрытым тоже.