Уважаемые специалисты ! Нужна помощь в решении следующей задачи. Собираюсь выложить в свободный доступ файл для тех, кто хочет начинать изучать английский язык. Версия файла урезанная, но самое главное суть проблемы. Поскольку не имею представления о VBA, на одном из форумов подсказали замечательный код (он уже в файле) по озвучке слов. Но обстоятельства немного изменились и нужно внести в него изменение. Основной смысл в том, что каждое слово в ячейках I9, I15, I18 озвучивается при нажатии на соответствующую ссылку в столбце O, это работает, но [/b]при условии, что в ячейке слово I9 прописано либо без формулы, либо как выпадающий список. Появилась необходимость вытягивать из выпадающего списка (ячейка I8) слово (без цифры), в ячейку I9 и чтобы обязательно сохранилась озвучка слов (I9, I15, I18).. P/s. Сам выпадающий список ячейки I8 является зависимым от ячейки O2 (через формулу ДВССЫЛ).
Уважаемые специалисты ! Нужна помощь в решении следующей задачи. Собираюсь выложить в свободный доступ файл для тех, кто хочет начинать изучать английский язык. Версия файла урезанная, но самое главное суть проблемы. Поскольку не имею представления о VBA, на одном из форумов подсказали замечательный код (он уже в файле) по озвучке слов. Но обстоятельства немного изменились и нужно внести в него изменение. Основной смысл в том, что каждое слово в ячейках I9, I15, I18 озвучивается при нажатии на соответствующую ссылку в столбце O, это работает, но [/b]при условии, что в ячейке слово I9 прописано либо без формулы, либо как выпадающий список. Появилась необходимость вытягивать из выпадающего списка (ячейка I8) слово (без цифры), в ячейку I9 и чтобы обязательно сохранилась озвучка слов (I9, I15, I18).. P/s. Сам выпадающий список ячейки I8 является зависимым от ячейки O2 (через формулу ДВССЫЛ).
Господа, спасибо, что обратили внимание на мою тему... Изначально, не мог показать более расширенную версию файла (из-за ограничений в 100 Kb), но проблема в том, что если "вытягивать" значение через формулу, то при смене выпадающего списка в ячейке О2 (это как бы уровень, который выбирает себе ученик), полностью затирает формулу в ячейке I9 (=ПСТР($I$8;НАЙТИ(".";I8)+2;10)) . Во вложении чуть более расширенная версия...добавлен доп. лист, чтобы работал выпадающий список ячейки О2. На выпадающий список О2, ссылается связанный с ним выпадающий список ячейки I8. Т.е. выбираем в О2 - ТОП_50, следовательно I8 - содержит 50 слов, выбираем ТОП-100 и уже I8 - содержит 100 слов. [b]Вот только проблема, как подтянуть значение в ячейку I9 без цифры ? Формула затирается, если изменять значение в О2 !!! P/s. Я изначально использовал найденный вариант (=Substring(имя листа _ адрес_ячейки;;2), работает также (отсекает лишнее), но также значение пропадает при смене значения в О2. Во вложении файл из ссобщения SLAVICK + дополнительный лист 100=70%.
Господа, спасибо, что обратили внимание на мою тему... Изначально, не мог показать более расширенную версию файла (из-за ограничений в 100 Kb), но проблема в том, что если "вытягивать" значение через формулу, то при смене выпадающего списка в ячейке О2 (это как бы уровень, который выбирает себе ученик), полностью затирает формулу в ячейке I9 (=ПСТР($I$8;НАЙТИ(".";I8)+2;10)) . Во вложении чуть более расширенная версия...добавлен доп. лист, чтобы работал выпадающий список ячейки О2. На выпадающий список О2, ссылается связанный с ним выпадающий список ячейки I8. Т.е. выбираем в О2 - ТОП_50, следовательно I8 - содержит 50 слов, выбираем ТОП-100 и уже I8 - содержит 100 слов. [b]Вот только проблема, как подтянуть значение в ячейку I9 без цифры ? Формула затирается, если изменять значение в О2 !!! P/s. Я изначально использовал найденный вариант (=Substring(имя листа _ адрес_ячейки;;2), работает также (отсекает лишнее), но также значение пропадает при смене значения в О2. Во вложении файл из ссобщения SLAVICK + дополнительный лист 100=70%.Taurus
полностью затирает формулу в ячейке I9 (=ПСТР($I$8;НАЙТИ(".";I8)+2;10)) .
А зачем вообще удалять эту формулу из I9? Достаточно удалить значение с I8 - формула покажет "". Получилось так:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [O2]) Is Nothing Then Application.EnableEvents = False [I8,I11].ClearContents: Call удалить_ссылки Application.EnableEvents = True Exit Sub End If If Not Intersect(Target, [I8:i9]) Is Nothing And [I9].Value <> "" Then Application.EnableEvents = False Call удалить_ссылки xxx = ActiveWorkbook.Path ActiveSheet.Hyperlinks.Add Anchor:=[O9], Address:=xxx & "\" & [I9].Value & ".wav", TextToDisplay:="Кликнуть для озвучивания" ActiveSheet.Hyperlinks.Add Anchor:=[O16], Address:=xxx & "\" & [I15].Value & ".wav", TextToDisplay:="Кликнуть для озвучивания" ActiveSheet.Hyperlinks.Add Anchor:=[O19], Address:=xxx & "\" & [I18].Value & ".wav", TextToDisplay:="Кликнуть для озвучивания" Application.EnableEvents = True End If End Sub
полностью затирает формулу в ячейке I9 (=ПСТР($I$8;НАЙТИ(".";I8)+2;10)) .
А зачем вообще удалять эту формулу из I9? Достаточно удалить значение с I8 - формула покажет "". Получилось так:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [O2]) Is Nothing Then Application.EnableEvents = False [I8,I11].ClearContents: Call удалить_ссылки Application.EnableEvents = True Exit Sub End If If Not Intersect(Target, [I8:i9]) Is Nothing And [I9].Value <> "" Then Application.EnableEvents = False Call удалить_ссылки xxx = ActiveWorkbook.Path ActiveSheet.Hyperlinks.Add Anchor:=[O9], Address:=xxx & "\" & [I9].Value & ".wav", TextToDisplay:="Кликнуть для озвучивания" ActiveSheet.Hyperlinks.Add Anchor:=[O16], Address:=xxx & "\" & [I15].Value & ".wav", TextToDisplay:="Кликнуть для озвучивания" ActiveSheet.Hyperlinks.Add Anchor:=[O19], Address:=xxx & "\" & [I18].Value & ".wav", TextToDisplay:="Кликнуть для озвучивания" Application.EnableEvents = True End If End Sub
А зачем вообще удалять эту формулу из I9? Достаточно удалить значение с I8 - формула покажет ""
В первоначальной версии затиралась формула в I9 при переключении списка в О2...В этой версии файла всё работает...Огромное спасибо за помощь... Ученики будут довольны :hands:, а Ваше имя укажу на доске почета
А зачем вообще удалять эту формулу из I9? Достаточно удалить значение с I8 - формула покажет ""
В первоначальной версии затиралась формула в I9 при переключении списка в О2...В этой версии файла всё работает...Огромное спасибо за помощь... Ученики будут довольны :hands:, а Ваше имя укажу на доске почета Taurus