Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2009, 21:50   #1
Alex___
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 59
По умолчанию АВТОФОРМАТ ячеек это РЕАЛЬНО?

К примеру есть книга в ней несколько листов в которые в свою очередь вносятся данные посредством макроса или формул. Данные вносятся в строго определенные диапазоны в листах.

Вопрос 1:
Данные( или значения) бывают настолько длинные что не помещаются в ячейки и для того что бы их увидеть нужно постоянно раздвигать строчки.Так вот можно ли что бы сами строчки раздвигались зная размер и шрифт которые будут отображать значения.Для чего это нужно?значения в листах динамичны или постоянно меняются.

Вопрос 2:

Предположим что вопрос 1 решился.Но данные в заданном диапазоне вносятся свеху вниз, а нижние ячейки не заполнены и остались к примеру пустые(в следующий раз они будут заполнены) но сейчас они не нужны,можно ли чтобы они автоматически скрывались в таком случае?А потом когда в них появятся снова значения отображались.

Спасибо.
Alex___ вне форума Ответить с цитированием
Старый 17.10.2009, 00:27   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Да, реально. Можете попробовать записать действия макрорекордером.
Следующий макрос, например, изменяет высоту и ширину ячеек и скрывает 4 строку:

Код:
Sub Макрос()
'
'

'
    Rows("1:1").RowHeight = 51
    Columns("A:A").ColumnWidth = 63.29
    Rows("4:4").Select
    Selection.EntireRow.Hidden = True
End Sub
motorway вне форума Ответить с цитированием
Старый 18.10.2009, 11:18   #3
Alex___
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 59
По умолчанию

Спасибо за ответ но ничего не понял,вернее частично понял и есть большое желание поглядеть как это работает, но с чего начать?

Не могли бы Вы подробнее описать вставку макроса и раз уж он коротенький пояснить какая команда что делает?
Alex___ вне форума Ответить с цитированием
Старый 18.10.2009, 12:13   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Можете попробовать записать действия макрорекордером и посмотреть потом код.
Вложения
Тип файла: rar MACRO.rar (1.18 Мб, 18 просмотров)
Тип файла: rar Macro motorway.rar (1.50 Мб, 20 просмотров)
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 18.10.2009 в 12:31.
doober вне форума Ответить с цитированием
Старый 18.10.2009, 12:26   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Так вот можно ли что бы сами строчки раздвигались зная размер и шрифт которые будут отображать значения.
Можно, но сложно.
Как Вы хотите вписать текст в ячейку?
Изменяя только размер шрифта, или только ширину и высоту ячейки?
Или изменять надо и то, и другое?

Не совсем понял, что именно требуется, но макрорекордер здесь мало чем поможет - основная сложность будет в алгоритме.
По поводу кода - вот основные команды, которые могут Вам понадобиться:
Код:
Sub ВсеНеобходимыеКоманды()
    Rows(5).RowHeight = 44    ' изменяем высоту 5-й строки
    Columns(3).ColumnWidth = 62    ' изменяем ширину 3-го столбца

    Rows(4).Hidden = True    ' скрываем 4-ю строку
    Rows(6).Hidden = False    ' отображаем 6-ю строку

    Columns(10).Hidden = True    ' скрываем 10-й столбец
    Columns(7).Hidden = False    ' отображаем 7-й столбец
    
    Range("e2").Font.Size = Range("e2").Font.Size + 1 ' увеличиваем на 1 размер шрифта в ячейке e2
    Range("d3").Font.Size = 14 ' устанавливаем нужный размер шрифта в ячейке d3
End Sub
Про автоподбор высоты объединённых ячеек можно почитать в этой теме:
http://www.programmersforum.ru/showthread.php?t=52354
EducatedFool вне форума Ответить с цитированием
Старый 18.10.2009, 21:31   #6
Alex___
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 59
По умолчанию

Дело в том , что шрифт и его размеры постоянны.

Предположим есть столбец "А1:А10" в "листе 1" (см. прикрепленный файл.)
Из "листа 2" посредством формул, данные попадают в "лист1".
Но! В листе 1 ширина столбца "А" фиксированная, в отличии от столбца "А",который находится в "листе 2".

"Лист 2" служит для того чтобы данные в него вносились вручную и его ширина не принципиальна.А лист 1 -это уже какой нибудь документ, где нельзя сдвинуться ни вправо ни влево можно только вниз.

По этому важно сделать в "листе 1" (вот этот рабочий диапазон "А1:А10") таким образом что если в ячейке поместились данные-хорошо, не поместились то [B]ячейка раздвинулась вниз!!!,(повторюсь ширина фиксированная! если же остались пустые ячейки то они скрылись.
Вложения
Тип файла: rar Расширение ячеек.rar (1.8 Кб, 9 просмотров)

Последний раз редактировалось Alex___; 18.10.2009 в 21:35.
Alex___ вне форума Ответить с цитированием
Старый 18.10.2009, 22:25   #7
vostok
Форумчанин
 
Регистрация: 29.04.2009
Сообщений: 119
По умолчанию

Цитата:
Сообщение от Alex___ Посмотреть сообщение
Дело в том , что шрифт и его размеры постоянны.

данные-хорошо, не поместились то [B]ячейка раздвинулась вниз!!!,(повторюсь ширина фиксированная! если же остались пустые ячейки то они скрылись.
"раздвинулась вниз" - это элементарно формат ячеек -выравнивание-перенос по словам, а насчет скрытия пустых я нихт ферштее, хотя я делал подобное через автофильтр и макрос, который запускает этот автофильтр по условию - показать непустые ячейки. Но для этого надо будет запускать макрос в нужный момент, чтобы обновить данные. И еще надо в Сервис-параметры убрать птичку "нулевые значения", чтобы не было нулей на странице, ноль - это тоже непустая ячейка.
Вложения
Тип файла: rar Расширение ячеек.rar (6.0 Кб, 18 просмотров)

Последний раз редактировалось vostok; 18.10.2009 в 22:43.
vostok вне форума Ответить с цитированием
Старый 18.10.2009, 22:34   #8
Alex___
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 59
По умолчанию

Мне нужно не вручную!

необходим макрос который будет обрабатывать диапазон который я указал т.е. "А1:А10".
Alex___ вне форума Ответить с цитированием
Старый 18.10.2009, 22:46   #9
vostok
Форумчанин
 
Регистрация: 29.04.2009
Сообщений: 119
По умолчанию

Макрос все равно запускается вручную, автоматом запускается КОД листа, ты это имеешь ввиду? Посмотри вложение, я повспоминал, как делал.
vostok вне форума Ответить с цитированием
Старый 19.10.2009, 11:10   #10
Alex___
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 59
По умолчанию

Спасибо фильтр. Действительно он справился с задачей но отчасти.
Он скрывает пустые ячейки-отображает непустые -это отлично, но как заставить его не только расширять ячейки но и обратно сдвигать по мере надобности.Вдруг допустим данные слишком короткие? А ячейка как была раздвинута широко так и осталась! Пустые скрылись без проблем, но не очень то красиво получается когда короткие значения находятся в огромных ячейках.Не рационально становится с точки зрения расхода бумаги.
Alex___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Это реально? liberty PHP 8 14.10.2008 11:27
Для установки второго и последующих сайтов нужно заново покупать лицензию, Это реально? liberty HTML и CSS 10 14.10.2008 10:47