Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Настройка подсказок при выделении/наведении на ячейку - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Настройка подсказок при выделении/наведении на ячейку (Формулы/Formulas)
Настройка подсказок при выделении/наведении на ячейку
Tarquinn Дата: Среда, 02.05.2018, 13:50 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Доброго времени суток.

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

Заранее спасибо%)
К сообщению приложен файл: 2072254.xlsm (14.9 Kb)


Сообщение отредактировал Tarquinn - Среда, 02.05.2018, 13:57
 
Ответить
СообщениеДоброго времени суток.

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

Заранее спасибо%)

Автор - Tarquinn
Дата добавления - 02.05.2018 в 13:50
bmv98rus Дата: Среда, 02.05.2018, 14:27 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Что-то вроде этого в модуле листа
[vba]
Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("C2:H7")) Is Nothing Then
        With Target.Validation
            .Delete
            DoEvents
            Set Comment = Sheet1.Columns(2).Find(what:=Cells(Target.Row, 2))
            If Not Comment Is Nothing Then
                .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
                :=xlBetween
                '.IgnoreBlank = True
                '.InCellDropdown = True
                '.InputTitle = ""
                .InputMessage = Comment.Offset(, 1)
                .ShowInput = True
                .ShowError = False
            End If
        End With
    End If
End Sub
[/vba]
К сообщению приложен файл: Copy_of_1-.xlsm (18.1 Kb)


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеЧто-то вроде этого в модуле листа
[vba]
Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("C2:H7")) Is Nothing Then
        With Target.Validation
            .Delete
            DoEvents
            Set Comment = Sheet1.Columns(2).Find(what:=Cells(Target.Row, 2))
            If Not Comment Is Nothing Then
                .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
                :=xlBetween
                '.IgnoreBlank = True
                '.InCellDropdown = True
                '.InputTitle = ""
                .InputMessage = Comment.Offset(, 1)
                .ShowInput = True
                .ShowError = False
            End If
        End With
    End If
End Sub
[/vba]

Автор - bmv98rus
Дата добавления - 02.05.2018 в 14:27
Nic70y Дата: Среда, 02.05.2018, 14:28 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
дэлит
делал по первому выложенному файлу
неактуально


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Среда, 02.05.2018, 14:35
 
Ответить
Сообщениедэлит
делал по первому выложенному файлу
неактуально

Автор - Nic70y
Дата добавления - 02.05.2018 в 14:28
Tarquinn Дата: Четверг, 03.05.2018, 15:26 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Что-то вроде этого в модуле листа


Спасибо, получилось довольно хорошо, если бы не 2 минуса:

1) Как я понимаю командой Target.Validation.Delete происходит удаление проверки данных, наложенных на ячейки
2) Срабатывает за установленным интервалом

Подскажите, как с этим быть?
Заранее спасибо)
К сообщению приложен файл: 8565843.xlsm (18.9 Kb)


Сообщение отредактировал Tarquinn - Четверг, 03.05.2018, 15:26
 
Ответить
Сообщение
Что-то вроде этого в модуле листа


Спасибо, получилось довольно хорошо, если бы не 2 минуса:

1) Как я понимаю командой Target.Validation.Delete происходит удаление проверки данных, наложенных на ячейки
2) Срабатывает за установленным интервалом

Подскажите, как с этим быть?
Заранее спасибо)

Автор - Tarquinn
Дата добавления - 03.05.2018 в 15:26
bmv98rus Дата: Четверг, 03.05.2018, 15:35 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Если по простому то
[vba]
Код
If Not Intersect(Target, Range("C2:H7")) Is Nothing And Target.Count = 1 Then
[/vba]

Если мудрить, то

[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set WorkRange = Intersect(Target, Range("C2:H7"))
    If Not WorkRange Is Nothing Then
        For Each WorkCell In WorkRange
            With WorkCell.Validation
                .Delete
                'DoEvents
                Set Comment = Sheet1.Columns(2).Find(what:=Cells(Target.Row, 2))
                If Not Comment Is Nothing Then
                    .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
                    :=xlBetween
    
                    '.IgnoreBlank = True
                    '.InCellDropdown = True
                    '.InputTitle = ""
                    .InputMessage = Comment.Offset(, 1)
                    .ShowInput = True
                    .ShowError = False
                End If
            End With
        Next
        DoEvents
    End If
End Sub
[/vba]


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеЕсли по простому то
[vba]
Код
If Not Intersect(Target, Range("C2:H7")) Is Nothing And Target.Count = 1 Then
[/vba]

Если мудрить, то

[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set WorkRange = Intersect(Target, Range("C2:H7"))
    If Not WorkRange Is Nothing Then
        For Each WorkCell In WorkRange
            With WorkCell.Validation
                .Delete
                'DoEvents
                Set Comment = Sheet1.Columns(2).Find(what:=Cells(Target.Row, 2))
                If Not Comment Is Nothing Then
                    .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
                    :=xlBetween
    
                    '.IgnoreBlank = True
                    '.InCellDropdown = True
                    '.InputTitle = ""
                    .InputMessage = Comment.Offset(, 1)
                    .ShowInput = True
                    .ShowError = False
                End If
            End With
        Next
        DoEvents
    End If
End Sub
[/vba]

Автор - bmv98rus
Дата добавления - 03.05.2018 в 15:35
Tarquinn Дата: Четверг, 03.05.2018, 17:05 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Если мудрить, то


Спасибо за Ваш труд) Осталась последняя проблема (вернее первая)... Стороннюю проверку данных заложенную до введения макроса в рабочем диапазоне, как я понимаю, мы сохранить не сможем?
 
Ответить
Сообщение
Если мудрить, то


Спасибо за Ваш труд) Осталась последняя проблема (вернее первая)... Стороннюю проверку данных заложенную до введения макроса в рабочем диапазоне, как я понимаю, мы сохранить не сможем?

Автор - Tarquinn
Дата добавления - 03.05.2018 в 17:05
bmv98rus Дата: Четверг, 03.05.2018, 17:28 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Tarquinn, Смотря что там и по какому признаку можно определить что её нужно поменять или подправить. Удалял то я только для того чтоб при отсутствии в таблице с примечаниями удалить все подсказки. Это можно не делать.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеTarquinn, Смотря что там и по какому признаку можно определить что её нужно поменять или подправить. Удалял то я только для того чтоб при отсутствии в таблице с примечаниями удалить все подсказки. Это можно не делать.

Автор - bmv98rus
Дата добавления - 03.05.2018 в 17:28
Tarquinn Дата: Четверг, 03.05.2018, 17:39 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Tarquinn, Смотря что там и по какому признаку можно определить что её нужно поменять или подправить. Удалял то я только для того чтоб при отсутствии в таблице с примечаниями удалить все подсказки. Это можно не делать.


В рабочем диапазоне на ячейках был выпадающий список установленный проверкой данных через имя таблицы со списком.
 
Ответить
Сообщение
Tarquinn, Смотря что там и по какому признаку можно определить что её нужно поменять или подправить. Удалял то я только для того чтоб при отсутствии в таблице с примечаниями удалить все подсказки. Это можно не делать.


В рабочем диапазоне на ячейках был выпадающий список установленный проверкой данных через имя таблицы со списком.

Автор - Tarquinn
Дата добавления - 03.05.2018 в 17:39
bmv98rus Дата: Четверг, 03.05.2018, 19:34 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Думаю можно. Попозже посмотрю.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеДумаю можно. Попозже посмотрю.

Автор - bmv98rus
Дата добавления - 03.05.2018 в 19:34
Tarquinn Дата: Четверг, 03.05.2018, 19:50 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Думаю можно. Попозже посмотрю.


Извратил Вашу идею.... Эстетики нуль, но работает. Спасибо)

[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set WorkRange = Intersect(Target, Range("C2:C21"))
If Not WorkRange Is Nothing Then
For Each WorkCell In WorkRange
With WorkCell.Validation

'DoEvents
Set Comment = Sheet1.Columns(2).Find(what:=Cells(Target.Row, 2))
If Not Comment Is Nothing Then
.Modify AlertStyle:=xlValidAlertInformation, Operator _
:=xlBetween

.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "УПС"
.InputMessage = Comment.Offset(, 1)
.ShowInput = True
.ShowError = False
End If
End With
Next
DoEvents
End If

If Not WorkRange Is Nothing Then
For Each WorkCell In WorkRange
With WorkCell.Validation

'DoEvents
Set Comment = Sheet1.Columns(2).Find(what:=Cells(Target.Row, 2))
If Comment Is Nothing Then
.Modify AlertStyle:=xlValidAlertInformation, Operator _
:=xlBetween

.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.InputMessage = ""
.ShowInput = False
.ShowError = False
End If
End With
Next
DoEvents
End If

End Sub
[/vba]


Сообщение отредактировал Tarquinn - Четверг, 03.05.2018, 19:52
 
Ответить
Сообщение
Думаю можно. Попозже посмотрю.


Извратил Вашу идею.... Эстетики нуль, но работает. Спасибо)

[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set WorkRange = Intersect(Target, Range("C2:C21"))
If Not WorkRange Is Nothing Then
For Each WorkCell In WorkRange
With WorkCell.Validation

'DoEvents
Set Comment = Sheet1.Columns(2).Find(what:=Cells(Target.Row, 2))
If Not Comment Is Nothing Then
.Modify AlertStyle:=xlValidAlertInformation, Operator _
:=xlBetween

.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "УПС"
.InputMessage = Comment.Offset(, 1)
.ShowInput = True
.ShowError = False
End If
End With
Next
DoEvents
End If

If Not WorkRange Is Nothing Then
For Each WorkCell In WorkRange
With WorkCell.Validation

'DoEvents
Set Comment = Sheet1.Columns(2).Find(what:=Cells(Target.Row, 2))
If Comment Is Nothing Then
.Modify AlertStyle:=xlValidAlertInformation, Operator _
:=xlBetween

.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.InputMessage = ""
.ShowInput = False
.ShowError = False
End If
End With
Next
DoEvents
End If

End Sub
[/vba]

Автор - Tarquinn
Дата добавления - 03.05.2018 в 19:50
bmv98rus Дата: Четверг, 03.05.2018, 20:19 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Могу не смотреть?:-)
Если во всех ячейках была проверка данных и надо только подправить коммент, то

[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("C2:H7")) Is Nothing And Target.Count = 1 Then
        With Target.Validation
            '.Delete
            'DoEvents
            Set Comment = Sheet1.Columns(2).Find(what:=Cells(Target.Row, 2))
            If Not Comment Is Nothing Then
                '.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
                ':=xlBetween

                '.IgnoreBlank = True
                '.InCellDropdown = True
                '.InputTitle = ""
                .InputMessage = Comment.Offset(, 1)
                '.ShowInput = True
                '.ShowError = False
            End If
        End With
    End If
End Sub
[/vba]


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Четверг, 03.05.2018, 20:26
 
Ответить
СообщениеМогу не смотреть?:-)
Если во всех ячейках была проверка данных и надо только подправить коммент, то

[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("C2:H7")) Is Nothing And Target.Count = 1 Then
        With Target.Validation
            '.Delete
            'DoEvents
            Set Comment = Sheet1.Columns(2).Find(what:=Cells(Target.Row, 2))
            If Not Comment Is Nothing Then
                '.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
                ':=xlBetween

                '.IgnoreBlank = True
                '.InCellDropdown = True
                '.InputTitle = ""
                .InputMessage = Comment.Offset(, 1)
                '.ShowInput = True
                '.ShowError = False
            End If
        End With
    End If
End Sub
[/vba]

Автор - bmv98rus
Дата добавления - 03.05.2018 в 20:19
Tarquinn Дата: Пятница, 04.05.2018, 13:27 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Могу не смотреть?:-)
Если во всех ячейках была проверка данных и надо только подправить коммент, то

Почему же :) Обернул условие и добавил вставку пустого примечания при удалении человека из комментариев. Вроде работает)

[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("C2:H21")) Is Nothing And Target.Count = 1 Then
        With Target.Validation
            '.Delete
            'DoEvents
            Set Comment = Sheet1.Columns(2).Find(what:=Cells(Target.Row, 2))
            If Comment Is Nothing Then
                .InputTitle = ""
                .InputMessage = ""
                .ShowInput = True
            Else
                '.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
                ':=xlBetween

                .IgnoreBlank = True
                '.InCellDropdown = True
                .InputTitle = "Описание"
                .InputMessage = Comment.Offset(, 1)
                .ShowInput = True
                '.ShowError = False
             End If
        End With
    End If
End Sub
[/vba]

А не подскажите, какой командой регламентируется положение всплывающей подсказки? А то подсказка при случайном перемещении мышью остается на заданной позиции до перезапуска файла %)
и есть ли операторы способные изменить её визуально (увеличить/изменить шрифт, цвет и т.д.)?
 
Ответить
Сообщение
Могу не смотреть?:-)
Если во всех ячейках была проверка данных и надо только подправить коммент, то

Почему же :) Обернул условие и добавил вставку пустого примечания при удалении человека из комментариев. Вроде работает)

[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("C2:H21")) Is Nothing And Target.Count = 1 Then
        With Target.Validation
            '.Delete
            'DoEvents
            Set Comment = Sheet1.Columns(2).Find(what:=Cells(Target.Row, 2))
            If Comment Is Nothing Then
                .InputTitle = ""
                .InputMessage = ""
                .ShowInput = True
            Else
                '.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
                ':=xlBetween

                .IgnoreBlank = True
                '.InCellDropdown = True
                .InputTitle = "Описание"
                .InputMessage = Comment.Offset(, 1)
                .ShowInput = True
                '.ShowError = False
             End If
        End With
    End If
End Sub
[/vba]

А не подскажите, какой командой регламентируется положение всплывающей подсказки? А то подсказка при случайном перемещении мышью остается на заданной позиции до перезапуска файла %)
и есть ли операторы способные изменить её визуально (увеличить/изменить шрифт, цвет и т.д.)?

Автор - Tarquinn
Дата добавления - 04.05.2018 в 13:27
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Настройка подсказок при выделении/наведении на ячейку (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!