Страницы: 1 2 След.
RSS
Фиксация изображения в Excel 2003 при прокрутке (с привязкой к листу)., Модификация готового макроса.
 
Имеется интересный скрипт, сделанный для Эксель 2003, позволяющий фиксировать изображение на рабочей области экселя.
Вы можете скрывать это закрепленное изображение или наоборот отображать его.
А также можете выбирать разные графические файлы  для этой картинки.
Главная идея заключается в том, чтобы при прокрутке рабочей области по горизонтали или по вертикали - картинка оставалась закрепленной на рабочей области.
Единственная досадная проблема - в том, что картинка не привязана к одному конкретному листу. И при переходе на другой лист - она никуда не исчезает.
Кто-нибудь знает как привязать ее к одному произвольному листу - для того, чтобы при переходе на другой лист - картинка исчезала бы, а при возврате на первоначальный лист - зафиксированная картинка вновь появлялась бы ?
Это нужно для того, чтобы к примеру - на ряде листов - были бы свои, уникальные зафиксированные изображения.
Примечание: Такая функция эксель как "закрепление области" - совершенно из другой пьесы и здесь не подходит.
Изменено: ttt480 - 17.12.2015 23:55:17
 
There is no knowledge that is not power
 
ttt480, не нужно писать через 1-3 строки. Исправьте.
 
Джони, это не поможет )
 
Дык вы не картинку добавляете, а форму, а это две разные вещи.
There is no knowledge that is not power
 
Изменение свойств формата рисунка - это вообще к чему ?
Рисунок при этих изменениях - все равно прокручивается вместе с рабочей областью.
Как по горизонтали, так и по вертикали.
 
Цитата
Юрий М написал:
ttt480, не нужно писать через 1-3 строки. Исправьте.
 
ttt480, Вы утверждаете, что свойства Visible у картинки в Vba нет. Вставьте на лист картинку и выполните поочерёдно два макроса:
Код
Sub Visible_Yes()
    ActiveSheet.Shapes.Range(Array("Picture 1")).Visible = True
End Sub

Sub Visible_No()
    ActiveSheet.Shapes.Range(Array("Picture 1")).Visible = False
End Sub
Проследите, чтобы имя совпадало.
 
Цитата
Юрий М написал: Вставьте на лист картинку и выполните поочерёдно два макроса
Я не утверждал, что свойства Visible у картинки в VBA нет. Я утверждаю, что оно есть и дай бог, чтобы было всегда....
Да, действительно если добавить фотографию - это фото исчезает и появляется при использовании этих макросов. Выглядит очень красиво.
Но не совсем понятно как это относится к теме.
Я приложил к начальному сообщению файл, где автор уже провел основную работу по созданию изображения нечувствительного к прокрутке. Это и есть самое главное, что сделано. Автор файла - молодец.
Я просто спрашивал - возможно ли на каждый лист сделать свое отдельное изображение. Чтобы на каждом листе - была бы своя, уникальная картинка нечувствительная к прокрутке. Это и есть суть вопроса.
 
Цитата
SuperCat написал: Дык вы не картинку добавляете, а форму, а это две разные вещи.
Там ведь понимаете, в чем главная хитрость. Изображение вставляется не напрямую, а через форму.
Изначально вообще было большой проблемой - хоть какое-то изображение на листе закрепить. И самая удачная реализация - достигается именно через форму.
Умные люди ломали голову - как простую фотографию зафиксировать - ничего не получалось. В итоге решили это сделать через форму.
Однако проблема остается. Неудобно работать, когда эта картинка перемещается при переходе с листа на лист.
 
Доброе время суток
:qstn:
Успехов.
 
В приложенном примере предусмотрен еще и переход на другие книги, а также работу и в 64-битном Excel
 
Цитата
ttt480 написал:
Но не совсем понятно как это относится к теме
Цитата
ttt480 написал:
Единственная досадная проблема - в том, что картинка не привязана к одному конкретному листу. И при переходе на другой лист - она никуда не исчезает.
Я и говорил про это - картинку можно скрывать. И про позиционирования я вообще ни словом )) Оно уже реализовано.
 
Цитата
ZVI написал: переход на другие книги, а также работу и в 64-битном Excel
Да все работает. Просто фантастика.
Это как раз то, что требовалось.
 
ttt480, Странный вы человек, ни здравствуйте, ни спасибо, ни до свидания...  Уверены, что следующий раз помогут?
 
Цитата
Андрей VG написал: Странный вы человек, ни здравствуйте, ни спасибо, ни до свидания...
Да нет, почему же?  Спасибо огромное.
Я просто хотел еще пару вопросов по теме задать.
 
Цитата
Андрей VG написал: Странный вы человек, ни здравствуйте, ни спасибо, ни до свидания...
Цитата
ttt480 написал: Я просто хотел еще пару вопросов по теме задать.
А потом поздороваться ))
 
Цитата
ZVI написал: переход на другие книги, а также работу и в 64-битном Excel
   Файл в принципе работает как надо.
   В общем я хотел немного доработать этот файлик - поставить эти кнопки управляющие картинкой - на каждом листе. Чтобы на каждом листе была своя картинка. Если допустим осуществляется переход на другой лист - картинка текущего листа (с текущим расположением исчезает) и появляется другая картинка, которая прикреплена к другому листу и с другим расположением.
    Я пытался сам что-то сделать. Размножил лист со скриптом - в тройном количестве и создал две новые формы (с другими картинками). Что-то не получается.... Все три кнопки - как бы управляют одной картинкой.
  Вот файлик который я пытался доработать.
 
Доброе время суток
Вы размножили только листы и формы. А вот кнопки вызывают одни и те же процедуры, которые работают только с одной исходной формой. Пропишите для кнопок на остальных листах свои процедуры для своих форм. Плюс добавьте код в событие открытия книги для загрузки остальных форм.

Успехов.
 
Цитата
Андрей VG написал:
Пропишите для кнопок на остальных листах свои процедуры для своих форм
Значит я вот щелкаю правой клавишей на кнопке - выбираю команду "Присвоить макрос"...
Меня выкидывает на  код, который прописан в "Module.1" и который отвечает за самую первую форму.
То есть как я понял - если я создаю другие формы, то нужно создавать соответствующие модули под них  ?
Значит нужно создать еще два модуля и привязать к ним кнопки с соответствующих двух листов?
 
В общем вот что получилось.
Создано два дополнительных модуля.
Но картинки они перестали открывать.
 
Да и еще добавил два объекта в код.
И присвоил код формам (ну как присвоил - взял код из первой формы и скопировал на две остальные формы)
В итоге вся эта конструкция немного утратила работоспособность и стала ругаться при нажатии на кнопки.
Три формы открываются - но все на одном листе, друг на друге и их двигать нельзя...
 
Цитата
ttt480 написал:
То есть как я понял - если я создаю другие формы, то нужно создавать соответствующие модули под них  ?
Именно модули создавать необязательно: можно в одном модуле разместить несколько процедур.
Но ещё можно не повторять процедуры для каждого листа, а передавать туда имя листа.
P.S. Файл не смотрел.
 
Ну в общем я все процедуры записал в один модуль, но все равно что-то не работает.
 
Цитата
ZVI написал:
В приложенном примере предусмотрен еще и переход на другие книги, а также работу и в 64-битном Excel
Спасибо за интересное решение. В Excel 2013 работает, как надо, а в 2016 выдаёт ошибку. Понятно, что 4 года уже прошло, но, может, скорректируйте код?
Dum spiro spero
 
А что именно не работает?
Если на компьютере кодовая страница Windows по умолчанию отлична от Win-1251, то могут быть проблемы с кодовым именем листа (сейчас это кириллица). Взял на себя смелость изменить (надеюсь, Владимир не возражает).
Владимир
 
sokol92, Спасибо, работает.
Dum spiro spero
 
Спасибо Владимиру (ZVI)!
Владимир
 
Цитата
sokol92 написал:
А что именно не работает?Если на компьютере кодовая страница Windows по умолчанию отлична от Win-1251, то могут быть проблемы с кодовым именем листа (сейчас это кириллица). Взял на себя смелость изменить (надеюсь, Владимир не возражает).
Добрый день! Очень хорошее решение по привязке картинки, спасибо всем кто разрабатывал коды. Возможно, чтобы в книге было 3 листа и на каждом была бы своя картинка?
 
если 3 монитора то картинка вставляется не туда куда нужно просто на другой монитор прыгает
Страницы: 1 2 След.
Наверх