Страницы: 1
RSS
макрос рисующий таблицу
 
Добрый день!  
 
Помогите пожалуйста автоматизировать процесс. Число моделей вводится с клавиатуры, все что выделено жирным не меняется. Суть в том что нужен макрос,который нарисует третью таблицу. Т.е фактически нужен макрос который после строки ,например, компьютеры 5 3 2 1 нарисует табличку,где в первом столбце написано "компьютеры" а количество строк равно максимальному значению в строке. И с остальными модельками так же. Помогите,пожалуйста)
 
Ничего не понятно. Что, куда, где "Компьютеры", по какому событию...  
Рамку нарисовать, что-ли?  
 
Sub tt()  
il = 10  
kolvo = [b1]
Cells(il, 6).Value = "Компьютеры"  
Range(Cells(il, 6), Cells(il + kolvo, 6)).Borders.Weight = xlThin  
End Sub
 
Нужно автоматизировать рисование третьей таблицы. В ней все наименования такие же как во второй, а количество строк должно быть равно максимальному числу в строке с таким же наименованием в предыдущей таблице. Я подозреваю,что это не очень сложно, но не умею сама, только учусь писать макросы.
 
Понял.  
Можно сделать по событию изменения [B1].
В общем несложно, если не нужна заливка цветом (это вероятно будет муторно прописывать, хотя тоже можно сделать)  
Видов так и будет всегда 9? И исходная таблица всегда на этом месте?
 
сорри, файл не цепляется :(  
 
Sub nnn()  
i = 32  
For Each c In ActiveSheet.[A19:A27]
m = WorksheetFunction.Max(Range(c.Offset(0, 1), c.Offset(0, 4)))  
For j = 1 To m: ActiveSheet.Cells(i, 1).Value = c.Value: i = i + 1: Next  
Next c  
End Sub  
 
 
оно?  
 
пс. не оптимизировано ниводномглазу :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Да,видов всегда 9 и на том же месте.
 
Близко, но все же не совсем то. Мне нужно,что бы была нарисована таблица. Цвета не обязательно,а вот клеточки нужны.
 
.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Всю эту кучу с рамками в цикле в файле выше можно заменить одной строкой  
r.Borders.Weight = xlThin  
и работает быстрее...
 
{quote}{login=Hugo}{date=22.03.2011 06:25}{thema=}{post}Всю эту кучу с рамками в цикле в файле выше можно заменить одной строкой  
r.Borders.Weight = xlThin  
и работает быстрее...{/post}{/quote}  
 
тсс!.. я макрорекодер изучаю.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
уберите "тсс!.."  
А то все, как в анекдоте про настоящего программиста, ждут формального разрешения продолжить обсуждения насущных проблем.  
Справочно текст упомянутого анекдота:  
Настоящий программист на ночь ставит возле кровати стакан с водой (на случай -если захочется пить), и пустой стакан (на случай - если не захочется пить).
 
to ikki  
Работает! и почти как надо, только жирным и курсивом выделяет то первую строку, то последнюю почему-то. Как это исправить?  
 
Кстати заменить все рисование рамок одной строчкой очень удачно получилось. Спасибо.
 
нуу... убрать "тсс!" я, конечно, не смогу: "движок форума не позволяет" (с)  
 
но "формальное разрешение" даю: ОБСУЖДАЙТЕ. насущные проблемы то есть. :)))  
 
пс. а вообще макрорекодер, как оказалось, шутник.    
вот конкретная задача: узнать, какие будут команды для установки границ ячеек для варианта "сеточка" (т.е. все вертикальные и горизонтальные границы снаружи и внутри диапазона).  
выделяем диапазон из двух соседних ячеек, высотой в 1 ячейку, жмем "начать запись", в списке "границы" выбираем нужную нам "сеточку", останавливаем запись. макрорекодер пишет кучу команд - для каждого типа линии (верхняя, левая и т.д.) отдельно. всё это, есс-но, применительно к Selection.  
дальнейшие действия - выделяем другой диапазон такого же размера, жмем "макросы" -> "выполнить"... получаем ошибку - внутренней горизонтальной границы в таком диапазоне нет.  
что должен сделать "начинающий"? сойти с ума? :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=Silvery}{date=23.03.2011 08:06}{thema=Re: }{post}to ikki  
Работает! и почти как надо, только жирным и курсивом выделяет то первую строку, то последнюю почему-то. Как это исправить?  
 
Кстати заменить все рисование рамок одной строчкой очень удачно получилось. Спасибо.{/post}{/quote}  
 
я смотрю, вы сами правите макросы?  
это оч. хорошо.  
давайте продолжим?  
 
дело в том, что в моём примере устанавливается только значение (содержимое) нужных ячеек и, потом, цвет и стиль заливки фона. всё.  
т.е. ни на цвет шрифта, ни на размер, ни на "полужирный", ни на отступ, ни на сам шрифт и т.д. эти команды не влияют. то есть вы пишете немного неправильно - ячейки выглядят по-разному не потому, что их "выделил" макрос, а потому, что они такими были ДО запуска макроса.  
 
ответ на ваш вопрос: если вам нужно одинаковое оформление, нужны либо дополнительные команды форматирования, либо применение предопределенного стиля ячейки, либо копирование и вставка ячейки-образца ПЕРЕД командой установки свойства Value.  
 
на вопрос я ответил.  
попробуйте сделать сами, ладно?  
макрорекодер вам в помощь.  
:)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Спасибо. На вопрос вы ответили и мне очень помогли. Правлю макросы,это оочень громко сказано. В Вузе давали только паскаль и то не слишком глубоко, поэтому правлю я их исключительно интуитивно. Буду рада если кто-то посоветует учебник для начинающих на ВБА, только желательно совсем до примитива что бы разжевывалось
 
Учебник не посоветую, т.к. ни одного не прочитал (хотя ссылки есть и в форуме, и например http://www.excelworld.ru/index/biblioteka/0-5 )  
Я в начале пользовался сайтом http://www.firststeps.ru/ - там слева оглавление, например VBA by Step можете посмотреть.
Страницы: 1
Читают тему
Наверх