Доброго времени суток. Всё ни как не могу решить одну проблему.
Мне нужны примечания в ячейках. И содержание этих примечаний должно извлекаться из определённых ячеек. Как это можно сделать ?
Возможно есть другой способ получить динамический текст (результат какой либо формулы Excel) всплывающий по наведению курсора на ячейку - если да, то как ?
Добавляем примечание в ячейку "B11". Текст примечания - сумма ячеек "A1" и "A2":
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$B$11" Then Exit Sub
With Target
On Error Resume Next
.Comment.Delete
.AddComment
With .Comment
.Text Text:=CStr(Cells(1, 1) + Cells(2, 1))
.Visible = False
End With
End With
End Sub
О ! Спасибо, вроде-бы все почти отлично работает, только 3 последние досадные мелочи, об которые я сам-себе башку сломаю, так как в макросах совсем не силён.
1. Как в примере от К61 заставить "примечание" в ячейке В11 автоматически обновится если ячейки А1 или А2 изменят своё значение (а это будет происходить периодически и много раз)
2. Как прописать таким образом сразу много ячеек, как при протягивании. К примеру добавить примечание в ячейку А1 из ячейки А2, в ячейку В1 из ячейки В2, в ячейку С1 из ячейки С2.
3. Как прописать какое именно значение в ячейке (текст, число), так как в изначальном примере от К61, при в воде в ячейку А1 текста, а в ячейку А2 цифры, в результате получается "".
1. Событие SelectionChange поменять на Change. 2. Указать контролируемый диапазон. 3. Помнить, что примечание - всегда текст и использовать амперсанд (&) при сцеплении значений из ячеек.
Юрий, я только начинаю осваивать макросы, и честно попробовал разобраться, но у меня не достаточно знание языка.
Что произойдет если Change я сообразил - при любом изменении. а у Карена при любом выделение, но только если это В11 иначе на выход.
Глупо, Но все равно не могу доделать, потому что теперь не знаю какой командой, и с какими параметрами правильно указать что примечание должно создаваться быть в именно в ячейке В11 (а не в а1 на пример) ___ К стати пользуясь случаем поблагодарю за сайт, это один из лучших сайтов по экселю, во всяком случае из тех что я видел.
Сначала нужно определить контролируемый диапазон, а потом уже ячейку, в которой будет меняться примечание. Примерно так:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A2")) Is Nothing Then
With Range("A11")
'Здесь код по примечанию
End With
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:A2")) Is Nothing Then With Range("A11") On Error Resume Next .Comment.Delete .AddComment With .Comment .Text Text:=CStr(Cells(1, 1) + Cells(2, 1)) .Visible = False End With End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A2")) Is Nothing Then
Application.EnableEvents = False
With Range("A11")
On Error Resume Next
Comment.Delete
.AddComment
With .Comment
.Visible = False
.Text Text:=CStr(Cells(1, 1) & Cells(2, 1))
End With
End With
End If
Application.EnableEvents = False
End Sub
Всё-же, видимо, я наверное с самого начала плохо сформулировал вопрос.
Поясню: Это срабатывает только если ячейки А1 и А2 менять вручную, можно ли сделать так чтобы это было автоматически ? Потому что в ячейках А1, и А2 (в примере) будут находиться всякие довольно ёмкие формулы - именно они (формулы) и будут периодически-часто менять значения ячеек А1 и А2.
Изменено: kzit - 05.08.2013 19:18:26(опечатка: Не "не плохо", а именно плохо! )
kzit пишет: Всё-же, видимо, я наверное с самого начала не плохо сформулировал вопрос.
Не "не плохо", а именно плохо! Кто же знал, что у Вас там формулы? В таком случае используйте событие листа Calculate. А с точкой и True я не доглядел. Прошу пардону))
Private Sub Worksheet_Calculate() ' If Not Intersect(Target, Range("A1:A2")) Is Nothing Then Application.EnableEvents = False With Range("A11") On Error Resume Next .Comment.Delete .AddComment With .Comment .Visible = False .Text Text:=CStr(Cells(1, 1) & Cells(2, 1)) End With End With ' End If Application.EnableEvents = True End Sub
вроде все меняется, все работает, и вообще все круто За что большое вам всем спасибо.
Просто стремно мне есчё, а вдруг когда начну применять это реальной в таблице все сломается. Я за события листа только что узнал, я вообще экселем только пару дней занимаюсь, освоил пока обычные фунции ячеек.
Пс. У меня есть такое желание создать толковый определитель грибов. Ни такой каким сейчас пользуются любители "тихой охоты", а такой какими пользуются профессионалы-микологи, обладающий не только ключами определения семейства (что совсем не достаточно), но и с хорошими ключами для определения вида, подвида... с качественным выявлением похожих грибов и двойников. Адаптированный на понимание человека далёкого от биологии.
По существующим на данный момент определителям грибов за частую можно определить только семейство (и то не всегда это будет верно), а дальше личный опыт грибника (не всегда благополучный и не всегда верный в перспективе).
Специально для этого и увлекся экселем, на мой взгляд этот инструмент хорошо подходит для этой цели.
Задача не подъёмная. Причина: сейчас систематиками описано не более 5% всех существующих грибов на планете. О грибах была одна из передач А.Гардона (7 октября 2003 г.)
Ну, это верно но не совсем. Дело в том что есть три категории грибов высшие, низшие.
Грибы которые собирают простые грибники относятся к первой категории, и эта категория довольно хорошо изучена... хотя с другой стороны почти каждый год открывают все новые и новые виды. Все равно многие определители более похожи на ознакомительные брошюры, а професиональными книгами человек не знающий терминов и формулировок врядли сможет воспользоваться.
Изменено: kzit - 06.08.2013 09:00:25(Вообщем я чего-то "перемудрил" после ночной смены)
Думаю с помощью экселя можно систематизировать отличительные признаки гриба (это профессиональным языком называется ключ). Также можно с большей вероятностью исключить досадные ошибки. А так же сам ключ можно облечь в более доступную для человека форму.
я пока еще не начал, я сначала достаточно овладею экселем потом приступлю, к определителю. Потому то прошлая моя попытка не очень. Пока делаю более простые вещи.
Цитата
k61 пишет: Какая роль отводиться примечаниям
Это будут подсказки.
Цитата
k61 пишет: Файл с маслятами покажите?
Обязательно.
Маслёнок оч. легко отличить от грибов другого семейства (ну, обычно это так), но их не так уж и просто отличить друг от друга. Правда для грибников разница скажем между Маслёнком Зернистым, Масленоком Средиземноморским и к примеру Маслёнком Беллини обычно не принципиальна. Хотя по мне так Зернистый М. - он самый вкусный .
Ну как сказать третья категория довольно спорная есть небольшое количество грибов которые трудно занести ни в одну из первых двух категорий. После некоторых споров, попыток обусловить третью категорию и даже объявить такие грибы вообще "не грибами",- а пока-что их пока называют "грибоподобными". К примеру такие грибы как слизевики
"Больше интересуют галлюциногенные грибочки" В зазеркалье захотелось ? - я противник изменения сознания при помощи химических препараторов.