Страницы: 1
RSS
ссылка на ячейку из колонтитула
 
Помогите, пожалуйста!!!  
Делаю рыбу отчета в Ехсе1е. Значение ячейки А17 ООО "Название"  
Мне нужно подписать каждый лист, следовательно в колонтитуле должно быть: директор ООО "Название" _________ Пупкин А.В.  
Как сделать чтобы ООО "Название" автоматьчески в ставало на свое место в колонтитуле???  
Заранее благодарен!!!
 
Sub Signature()  
   With ActiveSheet.PageSetup  
       .LeftFooter = "Директор " & [A1]
       .CenterFooter = "_________________"  
   End With  
End Sub  
 
Макросом можно, например, так. В А1 на активном листе - переменное название организации
 
Спасибо за участие, но поподробней, если можно и с цитатой, что и куда написать. Я макросами еще не пользовался...
 
Предварительно в ячейке А1 пишем название фирмы. Копируем код (записано макрорекордером и удалено "лишнее"):  
===  
Sub Макрос1()  
   With ActiveSheet.PageSetup  
       .LeftFooter = "Директор" & [A1]
       .CenterFooter = "____________________"  
       .RightFooter = "В. Пупкин"  
   End With  
End Sub  
===  
Затем правый клик по ярлычку листа - Исходный текст. В появившемся окне редактора вставляем скопированное. Закрываем редактор. Alt + F8, выбираем наш макрос - Выполнить. Нажимаем на кнопочку "Предварительный просмотр" и смотрим результат.
 
Тогда так:  
1. Где писать.  
Открываем файл. Давим Alt+F11 - открывается окно редактора VBA. Слева вверху иерархический список объектов файла (листы, книга и т.д.). В редакторе выбираем пункт меню Insert - Module - вставится модуль (появится в списке слева). Два раза клик по нему - откроется окно кода модуля (бОльшая часть окна справа вверху) - туда надо скопировать эту писанину:  
 
Sub Signature()  
With ActiveSheet.PageSetup  
.LeftFooter = "Директор " & [A1]
.CenterFooter = "_________________"  
End With  
End Sub  
 
 
2. Как работает  
Активизируем лист1. В А1 листа пишем ООО "Василек". Давим Alt+F8 - выбираем из списка макрос Signature - выполнить. Смотрим просмотр печати.  
 
3. Что это все значит  
Sub Signature()-Название процедуры (имя макроса)  
With ActiveSheet.PageSetup -Работаем с видом страницы активного листа  
.LeftFooter = "Директор " & [A1] -устанавливаем левый нижний колонтитул как 'объединение строки "Директор " и значения ячейки А1 активного листа
.CenterFooter = "_________________" -устанавливаем нижний центральный колонтитул как строку, содержащую место для подписи.  
End With -конец работы с видом страницы  
End Sub -конец процедуры (макроса)  
 
Если сложно разобраться - нарисуйте пример, где ручками расставьте колонтитулы, как надо - и укажите из какой ячейки какого листа брать переменное значение (название организации) - подправим макрос-пример.
 
Спасибо,сработало, но я попытался подправить, ругается и не работает неправляю Вам документ, посотрите, пожалуйста, что не так. Что должно быть есть во втором листе. Там я делал в ручную, уже напоролся, распечатал с разными названиями на листе и в калонтитуле, почему и хочу сделать макрос.  
Заранее очень благодарен!!!
 
У вас почти получилось, надо было так:  
Sub Signature()  
With ActiveSheet.PageSetup  
.RightFooter = "Директор " & [A17] & "_________________ Жихарев А.В."
End With  
End Sub  
 
т.е. межу [A17] и строкой надо еще один знак конкантенации &
См. файл - запускать макрос, когда активен 2 лист
 
Спасибо большое!  
Заработало, но при смене значения ячейки в колонтитуле наименование не меняется. Меняется после перезапуска макроса Alt+F8. это нромально? И еще вопрос, я еще не пробовал, на других листах макрос будет работать?  
Благодарю.
 
меняется после перезапуска макроса - это нормально - мы ж не ссылку на ячейку даем в колонтитуле, мы туда пишем значения при помощи набора команд (макроса). Если его не запустить - команды не выполнятся - как же там изменяться будет?  
 
На других листах сработает, если значение организации будет в А17.  
Макрос написан так, что для колонтитула он берет значение из А17 АКТИВНОГО (на момент выполнения макроса) листа
 
Огромное спасибо!! Вы мне очень помогли!!!
 
ну а как заставить, что бы в колонтитуле менялись значения при смене их в ячейке???
 
У книги есть событие Workbook_BeforePrint. Вот туда вышеприведенный код.
Я сам - дурнее всякого примера! ...
 
Можно подробнее рассказать, как привязать скрипт к указанному событию? Для чайника?
Страницы: 1
Читают тему
Наверх