Ёк-Мок, прошу Вас помочь немного откорректировать Ваш драгоценный код . В общем, смысл в том, что возникла необходимость дополнить ячейку (I8) выпадающим списком, значение которого подтягивается без цифры в ячейку (I9 и I11 с помощью формулы). Проблема заключается в том, что теперь слова из ячеек I9, I15, I18 перестали озвучиваться (при изменении слов). Но если в I9 просто прописать слово, то всё озвучивается. Проблема только в том, что если слово в ячейку (I9 и I11) попадает с помощью формулы (ВПР или Substring и т.д.), то озвучка пропадает .
Обязательно проверю последний вариант. Но я бы не стал утверждать, что предпоследний вариант (когда я удивился) мог бы привести к ошибке...Во всяком случае, я это не констатировал .
Во-первых, спасибо за наводку, что такое вариант имеется. Попробовал данную функцию. Есть два минуса. Нужно каждому пользователю нужно объяснить (если кто-то не разбирается в Excel), где эту функцию находить и как кнопку вытаскивать на панель...Во-вторых, субъективно, озвучка может быть гораздо хуже, чем будет в списке проигрываемых файлов.
И не только H15 и H18, но значения появляются и в ячейках H16 и H19, но только в том случае, если выбираешь на этом листе ТОП_218. В зависимости от выбранного значения в M2 подтягивается список из листа "источник" либо в ячейки H15 и H18, либо H16 и H19. Но что удивительно, что несмотря на то, что Вы прописали "Ancor" для M9, M15 и M18 и при этомM16 и M19 "выпали", то всё равно проигрываются все файлы, вне зависимости от того, в каких ячейках появляются слова (либо в H15 - H16, либо в H18 - H19) . В общем, Ваш вариант, конечно, изящный по сравнению с выпадающими путями к звуковому файлу. БРАВО !
Ёк-Мок, подскажите, пожалуйста, как можно применить Ваш макрос на остальные пары ячеек Ваше решение, достаточно, симпатично выглядит . В свою очередь, я решил эту задачу другим способом, может быть он и корявый, но рабочий. В ячейках "со ссылками на озвучку" работает функция ВПР, которая вытягивает путь к звуковому файлу из листа "источник". При этом формула ВПР "обернута" в функцию ГИПЕРССЫЛКА, которая оживляет путь к звуковому файлу .
Да, тут ошибся...У меня вопрос по макросу (раз у меня нет альтернатив ). Я в макросах, к сожалению, ничего не понимаю...Взял и ниже данного макроса
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H8")) Is Nothing Then
ActiveSheet.Hyperlinks.Add Anchor:=[M9], Address:="C:\ПАПКА\" & Target.Value & ".mp3", TextToDisplay:="Кликнуть для озвучивания"
End If
End Sub
вставил такую же строку..., но только изменил Target, Range("H8") на Target, Range("H15") а Add Anchor:=[M9] на Add Anchor:=[M9] и т.д. Выскочила ошибка, я так понимаю, что так прописывать нельзя.
Ёк-Мок, спасибо, что отозвались. В целом Вы смысл уловили, но есть два "но".
1. Распаковал на рабочий стол папку, запустил проигрыш первого слова - open и звук проигрался. После того, как выбрал второе слово из списка wav выскочило сообщение, что "не удаётся открыть указанный файл".
По пункту "3", а как распространить такой макрос и на другие ячейки (M15, M16, M18, M19) ?
2. Конечно, я не ограничивал решение задачи методом её решения (макрос или формула). Но если это каким-то образом возможно, как сделать выпадающий список формулой, но с живыми гиперссылками ? Дело в том, что файл будет для третьих лиц и если папка будет распаковываться на другой диск (или будет необходимость изменить адреса гиперссылок), то непосвященный пользователь не сможет изменить макрос (в частности я могу посмотреть, что Вы прописали, но сам в этом не разбираюсь ). А если такие гиперссылки будут в ячейках, то пользователю достаточно будет изменить адрес во всех ячейках (банально через окно замены) и звуки проиграются.
P/s. Я хотел бы максимально приблизить работу выпадающих списков по озвучке, в таком же формате, как работают зависимые выпадающие списки ячеек со словами (это H8, M15, M16, M18, M19), которые через формулы, соответственно, подтягивают нужные значения из листа "источник".
Подготовил обновленный файл с выпадающими списками, которые содержат мёртвые пути к звуковым файлам. Как их оживить (по возможности формулой) ?
Уважаемые специалисты ! Прошу помощи в решении такой задачи. Хочу сделать озвучку англоязычных слов и банально расположить в папке с файлом Excel wav или mp3 файлики, которые бы озвучивали конкретное слово. В листе "источник" в столбцах с заголовками 1, 2, 3 (для каждой таблицы отдельный перевод) будут находится гиперссылки на внешние файлы wav. Хотел бы сделать так, чтобы в листе "времена" в ячейках M10, M15, M16, M18, M19 находились выпадающие списки с гиперссылкой на wav.файл. При этом, такие выпадающие списки были бы зависимые (автоматически менялось значение выпадающего списка) от того слова, которое выбираешь напротив.
Например, в ячейке H8 выбираешь слово speed, а выпадающий список в ячейке M10 автоматом показывает путь C:\папка\speed.wav. При щелчке на такую гиперссылку, конечно, откроется проигрыватель...
P/s. Пробовал на листе "источник" в ячейку вносить формулу =ГИПЕРССЫЛКА("С:\Папка\speed.mp3"), а потом выводить выпадающий список, но получается, что ссылка "съедается" и остаётся неактивный путь.
Юрий, спасибо за ориентир . Благодаря Вам нашел ещё пару вариантов в интернете. Всё сработало !
Код
Private Sub Workbook_Open()
Application.ErrorCheckingOptions.BackgroundChecking = False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ErrorCheckingOptions.BackgroundChecking = True
End Sub
'''''''''''''''' ДЛЯ МОДУЛЯ '''''''''''''''''''
Public AE_BackgroundChecking As Boolean
Public AE_EvaluateToError As Boolean
Public AE_TextDate As Boolean
Public AE_NumberAsText As Boolean
Public AE_InconsistentFormula As Boolean
Public AE_OmittedCells As Boolean
Public AE_UnlockedFormulaCells As Boolean
Public AE_ListDataValidation As Boolean
Public AE_EmptyCellReferences As Boolean
''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''' В РАБОЧЕЙ КНИГЕ - для события открытия '''''''''''''
AE_BackgroundChecking = Application.ErrorCheckingOptions.BackgroundChecking
AE_EvaluateToError = Application.ErrorCheckingOptions.EvaluateToError
AE_TextDate = Application.ErrorCheckingOptions.TextDate
AE_NumberAsText = Application.ErrorCheckingOptions.NumberAsText
AE_InconsistentFormula = Application.ErrorCheckingOptions.InconsistentFormula
AE_OmittedCells = Application.ErrorCheckingOptions.OmittedCells
AE_UnlockedFormulaCells = Application.ErrorCheckingOptions.UnlockedFormulaCells
AE_ListDataValidation = Application.ErrorCheckingOptions.ListDataValidation
AE_EmptyCellReferences = Application.ErrorCheckingOptions.EmptyCellReferences
With Application.ErrorCheckingOptions
.BackgroundChecking = False
.EvaluateToError = False
.TextDate = False
.NumberAsText = False
.InconsistentFormula = False
.OmittedCells = False
.UnlockedFormulaCells = False
.ListDataValidation = False
.EmptyCellReferences = False
End With
''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''' В РАБОЧЕЙ КНИГЕ - для события закрытия '''''''''''''
Application.ErrorCheckingOptions.BackgroundChecking = AE_BackgroundChecking
Application.ErrorCheckingOptions.EvaluateToError = AE_EvaluateToError
Application.ErrorCheckingOptions.TextDate = AE_TextDate
Application.ErrorCheckingOptions.NumberAsText = AE_NumberAsText
Application.ErrorCheckingOptions.InconsistentFormula = AE_InconsistentFormula
Application.ErrorCheckingOptions.OmittedCells = AE_OmittedCells
Application.ErrorCheckingOptions.UnlockedFormulaCells = AE_UnlockedFormulaCells
Application.ErrorCheckingOptions.ListDataValidation = AE_ListDataValidation
Application.ErrorCheckingOptions.EmptyCellReferences = AE_EmptyCellReferences
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
Это работает только для своего утешения ? . Галочку нашел (на 2016-й версии формулы > поиск ошибок > снимаем галочку). А если отправить файл третьему лицу ?
Прошу помощи у спецов. Увы, не обладаю глубокими знаниями, но попытался решить такую задачу.
Есть два файла.
1. В первом файле размещается исходная информация (называется номенклатура товара). Из данного файла информация из столбцов "артикул поставщика" и "цена" подтягивается во второй файл - бланк заказа.
2. Файл бланк заказа "вытягивает" данные из файла номенклатура товара из столбца "цена" с помощью функции ВПР, а столбец с артикулом поставщика получает данные при помощи функций "ПОИСКПОЗ" и "ИНДЕКС".
Данные сразу же появляются, как только начинаю вносить наименование товара. Здесь всё работает нормально. Но как только я удаляю наименование товара получаю ошибочные значения #Н/Д и #ЗНАЧ!. Естественно, что и тут реакция программы предсказуемая.
"Лечил" с помощью ЕСЛИ(ЕОШИБКА... Вся проблема со столбцом "С" (артикул поставщика). Появляются зеленые треугольники и вариант с ЕСЛИ(ЕОШИБКА не помогает.
Вопрос. Подскажите, пожалуйста, возможно ли как-то избавиться от таких треугольников и сделать также как по аналогии в других "проблемных" ячейках (как в ячейках окрашенных желтым цветом) ?
Уважаемые знатоки ! Прошу помощи в решении следующей задачи путем написания макроса для комплексной замены значений. В листе "массив" имеется массив данных - в одном столбце (в одной ячейке может быть как одно значение так и комбинированное - текст + даты, или один текст). Массив будет значительным (более 10 тыс. строк) и поэтому просьба охватить весь диапазон столбца. В листе 2 "информация для замены" в незакрашенных ячейках содержатся значения, которые указывают на те значения, которые должны быть найдены и заменены в листе "массив". В серых ячейках указаны значения, на которые должны быть заменены все значения листа 1. Например, все значения, которые указаны в листе "информация о замене" 01<10.2013 10 2013 01.10 2013 находятся под значением 01.10.2013. При срабатывании макроса, все значения 01<10.2013 10 2013 01.10 2013 должны быть найдены в листе 1 "массив" (даже если они находятся рядом с другим текстом), где они должны быть заменены соответствующим значением серой ячейки. Таким образом, все значения листа "массив" 01<10.2013 10 2013 01.10 2013 должны изменится на 01.10.2013. Если серая ячейка не содержит значение, но под ней содержатся значения, тогда аналогичные значения в листе "массив" должны быть заменены пустотой (удалены). В нашем случае, значения < . ! < ; ^ % должны быть удалены из листа "массив", поскольку серая ячейка пустая. Краткий алгоритм работы макроса. Все значения листа "массив" сопоставляются с каждым столбцом листа "информация для замены". 1. Если совпадение произошло со значением конкретного столбца, тогда значение Листа "массив" изменяется на значение соответствующей серой ячейки, под которой содержалось аналогичное (совпавшее) значение со значением листа "массив". Результат того, как должны сработать замены находится в файле результат.