Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Всплывающая подсказка в таблице данных Excel

Автор 052, 25.04.2012, 09:59

« назад - далее »

052


052

Добры день.
Вроде немного удалось разобраться, но не совсем. возникает проблема, при ошибочном заполнении ячейки в ней прописывается примечание, а при удалении содержимого примечание остается.
так же, в уже заполненных до добавления макроса ячейках таблицы не создаются примечания.

Prist

#17
В уже заполненных и не будет. Вы просили "при изменении данных в ячейке" - это реализовано. Про удаление примечаний вместе с удалением содержимого тоже не было разговора. От ошибочного заполнения никуда не деться - как программа поймет по ошибке Вы заполнили или нет?

За создание примечаний отвечает этот блок:
Во вложении код изменен. Если данные из ячейки удаляются - удаляется и примечание.
        Dim sStr As String, li As Long, sTXT As String, vTmpVal
        'назначаем переменной значение ячейки
        sStr = Target.Value
        'цикл по буквам(цифрам) в ячейке. Для каждой ищем соответствие в таблицах
        For li = 1 To Len(sStr)
            vTmpVal = Mid(sStr, li, 1)
            If IsNumeric(vTmpVal) Then vTmpVal = --Mid(sStr, li, 1)
            sTXT = sTXT & "-" & Application.VLookup(vTmpVal, Range("code" & IIf(li > 3, 3, li)), 2, 0) & ";" & Chr(10)
        Next li
        sTXT = Mid(sTXT, 1, Len(sTXT) - 2)
        'если есть примечание в ячейке - удаляем
        On Error Resume Next
        Target.Comment.Delete
        'добавляем примечание, подтягивая туда значения из таблиц соответствия
        Target.AddComment sTXT
        'устанавливаем для примечания авторазмер
        Target.Comment.Shape.OLEFormat.Object.AutoSize = True


Оформите его циклом(с заменой Target на элемент цикла) и получите код, создающий примечания в диапазоне по нажатии кнопки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453

052


Wasilic

ОФФ вступление
- Не подскажете где тут у вас магазин?
- Вот, через улицу.
- Так, он же промтоварный.
- Ну тогда, слева от него продовольственный.
- Так, там водка не продается.
- ...
А чё сразу не спросить: " Где тут у вас водка продается?"
Надеюсь, смысл вступления понятен.

А по теме, может такой вариант подойдет?
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

052

Добрый день!

Цитата: Wasilic от 04.05.2012, 16:35
ОФФ вступление
- Не подскажете где тут у вас магазин?
- Вот, через улицу.
- Так, он же промтоварный.
- Ну тогда, слева от него продовольственный.
- Так, там водка не продается.
- ...
А чё сразу не спросить: " Где тут у вас водка продается?"
Надеюсь, смысл вступления понятен.

не совсем, немного туплю в первый день после отпуска  :D  :o

Цитата: Wasilic от 04.05.2012, 16:35
А по теме, может такой вариант подойдет?

Сейчас быстро просмотрел ваш вариант, вроде пойдет и алгоритм понятней. Будет время - буду разбираться.
Спасибо.

IKor

Вопрос в сторону.

А точно ли нужен VBA?

Попробуйте поэкспериментировать с ограничениями на значения, вводимые в ячейки (меню ДАННЫЕ / Проверка Данных / Вкладка Параметры: Другой (формула). На соседних вкладках задаются тексты сообщений для ввода и сообщений об ошибке. )

052

Цитата: Wasilic от 04.05.2012, 16:35
А по теме, может такой вариант подойдет?

ваш вариан подходит и разобрался с ним быстро. Спасибо

Цитата: IKor от 28.05.2012, 18:08
Вопрос в сторону.

А точно ли нужен VBA?

Попробуйте поэкспериментировать с ограничениями на значения, вводимые в ячейки (меню ДАННЫЕ / Проверка Данных / Вкладка Параметры: Другой (формула). На соседних вкладках задаются тексты сообщений для ввода и сообщений об ошибке. )

попробую как нибуть, но вот будут ли отображаться так всплывающие подсказки?

IKor

Цитата: 052 от 29.05.2012, 07:51
попробую как нибуть, но вот будут ли отображаться так всплывающие подсказки?
Вот и узнаете. У Вас передо мной в данной ситуации есть неоспоримое преимущество: Вам нужно разбираться только с одной настройкой Excel, в то время как мне потребуется понять особенности Вашей задачи.

Впрочем, если задача УЖЕ решена программными средствами (т.е. с учетом индивидуальных особенностей), то стандартные средства Excel вероятно будут менее удобны.
В любом случае - решать Вам.

052

Добрый день.
Prist
когда копирую ваш код для другой страницы выдает ошибку:
Run-time error '1004':
method 'range' of object'_worksheet' failed


жму debug, выделяет желтым эту строку
sTXT = sTXT & "-" & Application.VLookup(vTmpVal, Range("code" & IIf(li > 3, 3, li)), 2, 0) & ";" & Chr(10)

разбираться времени у меня сейчас нет и ближайшее время точно не будет, так что прошу помочь объяснить.


Poltava

Если бы вы прикрепили файл в котором ЭТО не работает то тогда вам явно ответили бы быстрее.
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

Hugo121

Range("code" & номер)
Обеспечить наличие - и заработает. Наверное...
webmoney: E265281470651 Z422237915069

052


Poltava

ЦитироватьRange("code" & номер)
Вы скопировали в новую книгу лист в ней нет динамических диапазонов из старой!
нажмите ctrl+F3 в старой и посмотрите как там это сделано. Вывод либо создайте такие же диапазоны в новой книге либо по другому к ним обратитесь
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

052

#29
янсно, не знал. спасибо