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

Вход

Регистрация

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

 

= Мир MS Excel/Сообщение при наведении или нажатию ячейки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сообщение при наведении или нажатию ячейки (Макросы/Sub)
Сообщение при наведении или нажатию ячейки
ovechkin1973 Дата: Суббота, 18.11.2017, 10:24 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
В экселе в во вкладке данные можно при проверке данных сделать, чтобы при нажатию на ячейку вплывало сообщение с нужным текстом. А если допустим для каждой ячейки этот текст разный и их очень много, то как можно этот текст допустим с другого листа брать? Т.е. допустим на листе 1 будет в первом столбце перечень уникальное имя, в остальных столбцах какие то другие значения для этого уникального имени. На листе 2 так же будет в столбце 1 этот же перечень уникальных имен, а во втором столбце краткое описание этого имени. Хотелось бы, если на листе 1 при наведении или выделении ячейки с уникальным именем появлялось его описание, которое будет браться с лист 2


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
СообщениеВ экселе в во вкладке данные можно при проверке данных сделать, чтобы при нажатию на ячейку вплывало сообщение с нужным текстом. А если допустим для каждой ячейки этот текст разный и их очень много, то как можно этот текст допустим с другого листа брать? Т.е. допустим на листе 1 будет в первом столбце перечень уникальное имя, в остальных столбцах какие то другие значения для этого уникального имени. На листе 2 так же будет в столбце 1 этот же перечень уникальных имен, а во втором столбце краткое описание этого имени. Хотелось бы, если на листе 1 при наведении или выделении ячейки с уникальным именем появлялось его описание, которое будет браться с лист 2

Автор - ovechkin1973
Дата добавления - 18.11.2017 в 10:24
китин Дата: Суббота, 18.11.2017, 10:46 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7014
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
а файлик то можно приложить, где ваши хотелки изложены? гадать то не умеем :'(


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеа файлик то можно приложить, где ваши хотелки изложены? гадать то не умеем :'(

Автор - китин
Дата добавления - 18.11.2017 в 10:46
ovechkin1973 Дата: Суббота, 18.11.2017, 12:54 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
файлик то можно приложить, где ваши хотелки изложены?
Пардон..
К сообщению приложен файл: _____.xlsm (10.3 Kb)


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщение
файлик то можно приложить, где ваши хотелки изложены?
Пардон..

Автор - ovechkin1973
Дата добавления - 18.11.2017 в 12:54
_Boroda_ Дата: Суббота, 18.11.2017, 16:04 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Такой вариант в модуль листа
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim d_ As Range
    c_ = 1
    r0_ = 2
    n_ = Cells(Rows.Count, c_).End(3).Row - r0_ + 1
    Set d_ = Intersect(Target(1), Cells(r0_, c_).Resize(n_))
    If Not d_ Is Nothing Then
        Cells(r0_, c_).Resize(n_).Validation.Delete
        On Error Resume Next
        With d_.Validation
            .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
            .InputTitle = "Описание"
            With Sheets("Лист2")
                c1_ = 1
                r01_ = 2
                n1_ = .Cells(.Rows.Count, c1_).End(3).Row - r01_ + 1
                im_ = WorksheetFunction.VLookup(d_, .Cells(r01_, c1_).Resize(n1_, 2), 2, 0)
            End With
            .InputMessage = im_
        End With
    End If
End Sub
[/vba]
К сообщению приложен файл: _1.xlsm (18.2 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТакой вариант в модуль листа
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim d_ As Range
    c_ = 1
    r0_ = 2
    n_ = Cells(Rows.Count, c_).End(3).Row - r0_ + 1
    Set d_ = Intersect(Target(1), Cells(r0_, c_).Resize(n_))
    If Not d_ Is Nothing Then
        Cells(r0_, c_).Resize(n_).Validation.Delete
        On Error Resume Next
        With d_.Validation
            .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
            .InputTitle = "Описание"
            With Sheets("Лист2")
                c1_ = 1
                r01_ = 2
                n1_ = .Cells(.Rows.Count, c1_).End(3).Row - r01_ + 1
                im_ = WorksheetFunction.VLookup(d_, .Cells(r01_, c1_).Resize(n1_, 2), 2, 0)
            End With
            .InputMessage = im_
        End With
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 18.11.2017 в 16:04
ovechkin1973 Дата: Суббота, 18.11.2017, 17:40 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, Вы профессор экселя! Спасибо! Кучу времени на поиске в инете чего то похожего потратил.. нашел только то, что приложил. Тоже наверно кому то пригодится.. но ваш вариант просто супер. Буду прилаживать его к своему файлу.
К сообщению приложен файл: __.xls (18.0 Kb)


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщение_Boroda_, Вы профессор экселя! Спасибо! Кучу времени на поиске в инете чего то похожего потратил.. нашел только то, что приложил. Тоже наверно кому то пригодится.. но ваш вариант просто супер. Буду прилаживать его к своему файлу.

Автор - ovechkin1973
Дата добавления - 18.11.2017 в 17:40
ovechkin1973 Дата: Суббота, 18.11.2017, 18:25 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Уважаемый _Boroda_, стыдно, но не могу понять где заменить код, чтобы описание бралось на со второго столбца листа 2, а с четвертого.. :(


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
СообщениеУважаемый _Boroda_, стыдно, но не могу понять где заменить код, чтобы описание бралось на со второго столбца листа 2, а с четвертого.. :(

Автор - ovechkin1973
Дата добавления - 18.11.2017 в 18:25
ovechkin1973 Дата: Суббота, 18.11.2017, 18:54 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
im_ = WorksheetFunction.VLookup(d_, .Cells(r01_, c1_).Resize(n1_, 4), 4, 0)
[/vba]
смог только методом не научного тыка сделать.. плохо быть не грамотным.. остается быть упорным... :) , но сделал...


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщение[vba]
Код
im_ = WorksheetFunction.VLookup(d_, .Cells(r01_, c1_).Resize(n1_, 4), 4, 0)
[/vba]
смог только методом не научного тыка сделать.. плохо быть не грамотным.. остается быть упорным... :) , но сделал...

Автор - ovechkin1973
Дата добавления - 18.11.2017 в 18:54
InExSu Дата: Воскресенье, 19.11.2017, 00:46 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Такой вариант

Спасибо. Ваш код работает даже так:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    With Target.Validation
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
        .InputTitle = "Описание"
        .InputMessage = WorksheetFunction.VLookup(Target, Worksheets(2).Columns("A:B"), 2, False)
    End With
End Sub
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
Сообщение
Такой вариант

Спасибо. Ваш код работает даже так:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    With Target.Validation
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
        .InputTitle = "Описание"
        .InputMessage = WorksheetFunction.VLookup(Target, Worksheets(2).Columns("A:B"), 2, False)
    End With
End Sub
[/vba]

Автор - InExSu
Дата добавления - 19.11.2017 в 00:46
_Boroda_ Дата: Воскресенье, 19.11.2017, 00:50 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ох, дурачина я, простофиля! Сколько лишних буковок написал! И совершенно непонятно зачем, да?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеОх, дурачина я, простофиля! Сколько лишних буковок написал! И совершенно непонятно зачем, да?

Автор - _Boroda_
Дата добавления - 19.11.2017 в 00:50
InExSu Дата: Воскресенье, 19.11.2017, 00:56 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
непонятно

Возможно Вы охватывали более сложные случаи ... ?


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
Сообщение
непонятно

Возможно Вы охватывали более сложные случаи ... ?

Автор - InExSu
Дата добавления - 19.11.2017 в 00:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сообщение при наведении или нажатию ячейки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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