Страницы: 1 2 След.
RSS
Выпадающее (всплывающее) окно из ячейки с тектом, при нажатии на ячейку всплывает окно, которое можно форматировать
 
Здравствуйте, во вложении файл с описанием, извиняюсь, что картинка в файле плохого качества - здесь ограничение по размеру файла стоит. Пришлось картинку сжимать. Добавил одну просто картинку, чтобы было понятней.
Спасибо всем, кто сможет найти решение!

ЗЫ: "Рабочий файл" можете не скачивать, он такой же, как и файл с описанием, но только без описания - там просто таблица. Я его прилдожил для удобства, а оказалось, что многим это наоборот неудобно.

Рисунок удален: превышение допустимого размера вложения [МОДЕРАТОР]
Изменено: novomaster - 05.09.2015 11:56:52
 
novomaster, здравия. Поправьте меня, если я ошибаюсь. Т.е. Вы хотите, что бы в ячейках под красными полями автоматом в примечания добавлялся текст из этих ячеек при внесении в них (ячейки) изменений?
---
И зачем два файла?
Изменено: JayBhagavan - 05.09.2015 09:47:18

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, почти верно, но немного не так. Должно быть примерно так: в ячейках столбца, например, F, где находится "Дополнительная информация" у меня в оригинале сейчас я эту доп. информацию пишу непосредственно в ячейках. В связи с этим ячейка разрастается каждый день и становится слишком большой. При этом таблица теряет свою привлекательность (если вместе с ячейкой увеличивается высота строки) или не видно весь текст с доп. информацией (если строка не меняет свою высоту). Поэтому вместо  всего текста с доп. информацией в ячейке будет одно слово "Дополнительно>>", нажав на которое (вернее на эту ячейку) рядом появляется окно (не стандартное примечание, а именно окно с возможностью дописывать сразу в нём текст), имеющее размер непосредственно позволяющий показать весь написанный текст.

А два файла - один с описанием задачи, а второй - рабочий - в котором можете пример сделать
Изменено: novomaster - 05.09.2015 09:54:16
 
novomaster, рассмотрите вариант с примечаниями. (в модуль листа)
Скрытый текст
Описанное Вами, думаю реализуемо, но не мной. Т.к. тут я имею смутное представление как это реализовать. Алгоритм более менее понятен. Допустим по двойному щелчку появляется форма с текстовым полем, которое заполняется информацией из скрытого/архискрытого листа по аналогичному адресу и внеся коррективы в которое, заполняем и яч. на скрытом листе. Если дублирующая яч. не пустая, то в текущую яч. заносим надпись "Дополнительно>>>" и т.п.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
JayBhagavan написал: внеся коррективы в которое, заполняем и яч. на скрытом листе
Думаю, задача даже сложнее, так как хочется все коррективы делать не на других листах, а именно в этом всплывающем окошке
 
Цитата
JayBhagavan написал: зачем два файла?
Присоединяюсь: можно было всё в одном файле показать - зачем заставлять желающих помочь Вам, скачивать ДВА файла?
 
Я тут подумал... А что, ели воспользоваться стандартными фигурами: Вкладка "Вставка">>"Фигуры">>"Прямоугольник, затем нарисовать его, выбрать нужное форматирование, потом нажать на него правой кнопкой мыши, выбрать пункт "Назначить макрос" и в этом макросе что-то такое написать, чтобы получилось так, как я задумал заранее?
 
Юрий М, думал, что так будет понятнее. Sorry...
 
Цитата
novomaster написал:
в ячейке будет одно слово "Дополнительно>>", нажав на которое (вернее на эту ячейку) рядом появляется окно (не стандартное примечание, а именно окно с возможностью дописывать сразу в нём текст), имеющее размер непосредственно позволяющий показать весь написанный текст.
Вариант: по событию Worksheet_SelectionChange в нужной ячейке отображаем ранее невидимый TextBox, куда и пишем нужную информацию. Ушли из ячейки - TextBox становится невидимым.
 
Юрий М, то есть так: Правой кнопкой мыши на имя листа >> Исходный текст >> Нахожу окно с макросом, где вверху написано Worksheet и там пишу "TextBox"?
 
Нет - Вы ведь ничего не пишете про свойства ТекстБокса. Скопируйте в модуль нужного листа:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("C2")) Is Nothing Then
        Me.TextBox1.Visible = True
    Else
        Me.TextBox1.Visible = False
    End If
End Sub
Контролируемая ячейка С2.
Только, как говорил, JayBhagavan, нужно будет связать его с какой-нибудь ячейкой на скрытом листе - это самый простой способ хранения.
 
Юрий М, блин, как же сложно, когда не понимаешь...
Вставил Ваш код в исходный текст, выскакивает ошибка:
 
А у Вас есть на листе ТекстБокс с таким именем? Может там TextBox3, например )) удалите выделенный текст, после Ме напишите точку и букву t - какой там у Вас контрол? Посмотрите на примере моего файла.
 
Юрий М, так, немного понял:

На вкладке "Разработчик" нажимаю "Вставить" и выбираю "Поле (элемент ActiveX)", верно?
Затем появляется крестик вместо курсора, я им рисую прямоугольник возле нужной ячейки, затем кликаю на него 2 раза, открывается окно для макроса и там я вставляю Ваш код:
Код
Private Sub TextBox1_Change()

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("C2")) Is Nothing Then
        Me.TextBox1.Visible = True
    Else
        Me.TextBox1.Visible = False
    End If
End Sub

Всё правильно делаю?
 
Неправильно:
1. Код следует оформлять тегом )) - исправьте.
2. Не нужно на него два раза кликать. Пустая процедура
Код
Private Sub TextBox1_Change() 

End Sub 
лишняя - удалите её.
3. Доступ в модуль листа: правый клик по ярлычку листа - исходный текст
Про вставку самого контрола на лист - всё верно.
 
Юрий М, вроде получилось, но возникает другой вопрос: в этом поле текст не переносится ни автоматически, ни кнопкой Enter, то есть весь текст размещается в одну длинную строку. Как это изменить?
Изменено: novomaster - 05.09.2015 11:58:24
 
Как изменить? Ну посмотрите в свойствах - ведь есть специальное свойство, которое за это отвечает - MultiLine.
 
Юрий М, а так для каждой ячейки макрос отдельный прописывать?
 
Код
If Not Intersect(Target, Range("C2:C10")) Is Nothing Then
И позиционировать ТекстБокс рядом с контролируемой ячейкой. И придётся программно ссылаться на ячейку скрытого листа с сохранённым текстом - записи ведь для каждой ячейки разные? Но мы ушли от темы )
 
Чуть доработал макрос Юрий М,
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
    If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Count = 1 Then
        With Me.TextBox1
            .Value = Target
            .Visible = True
        End With
    Else
        Me.TextBox1.Visible = False
    End If
Application.ScreenUpdating = True
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Юрий М, Почему ушли от темы? Это предполагалось изначально.
Цитата
Юрий М написал:
И позиционировать ТекстБокс рядом с контролируемой ячейкой
Это как сделать?
Цитата
Юрий М написал:
придётся программно ссылаться на ячейку скрытого листа с сохранённым текстом
А это как?

Простите, если многого хочу, но раз уж получилось воплотить идею на 50%, то хочется уже до конца это сделать

Во вложении файл, который получился
Изменено: novomaster - 05.09.2015 14:13:22
 
ТекстБокс (или Форма) рядом с контролируемой (активной) ячейкой обсуждалось неоднократно. Поищите. Будет готово - поможем с остальным.  
 
А где у Вас скрытый лист с данными?
Согласие есть продукт при полном непротивлении сторон
 
См. пример.
 
Вариант с сохранением текста в ячейку на другом листе. Этот лист можно (нужно) скрыть.
 
Юрий М, вот, на один столбец вроде получилось
 
Вам же нужно ещё и редактировать через TextBox?
Цитата
novomaster написал:
окно с возможностью дописывать сразу в нём текст
См. # 25.
 
Юрий М, так я оттуда и скопировал макрос...

И всё-таки я тупица. В пробном файле вроде начало получаться, попробовал в оригинале - не работает ((( Посмотрите? Я файл попробую приложить, если поместится
Там в столбцах B, F, G и I, начиная с 8-й строки и до конца листа должны быть эти всплывающие ТекстБоксы. А данные для них - на листе "Данные", который потом скрою.
Пробовал вставить туда Ваш код, поменяв диапазон - вообще ничего не получается. Может потому что там уже и так несколько модулей с макросами? (Кстати, там какие-то 4 пустых модуля, их можно удалять или не стоит? И если можно, то как они удаляются?
 
Юрий М, Ура! Для одного стобца получилось! Возникла проблемка: помните, выделяли цветом активную ячейку? Так вот, после того, как у меня получилось вставить код для ТекстБокса, одна из ячеек вдруг стала окрашенной в жёлтый цвет, независимо от того, активна она или нет. Если попробовать выделить ее и применить "без заливки", то не помогает - она всё равно желтая. Отчего этот баг произошел и как его исправить? Файл приложить не могу - он весит уже больше 100 Кб

И как сделать, чтобы в других столбцах тоже получились эти текстбоксы?
 
Попробовал аналогично вставить код для другого столбца - ругается
Страницы: 1 2 След.
Читают тему
Наверх