Требуется из большого списка с фамилиями создать выпадающий список с гиперссылками на конкретную выбранную фамилию с переходом на другой лист с этой фамилией. Очень нужно . Файл прикрепляю.
Требуется из большого списка с фамилиями создать выпадающий список с гиперссылками на конкретную выбранную фамилию с переходом на другой лист с этой фамилией. Очень нужно . Файл прикрепляю.Thefamilyman
Вообще-то я имел ввиду, что Вы выложите свой файл в формате 2003 (.xls), не у всех, кто может и желает помочь, есть 2007 и выше, они просто не могут посмотреть Ваш файл. зы. Об этом ясно сказано в правилах. ps.ps. Я Ваш файл могу посмотреть, но не умею (не люблю) писать макросы.
Quote (Thefamilyman)
Буду очень благодарен даже в xls.
Вообще-то я имел ввиду, что Вы выложите свой файл в формате 2003 (.xls), не у всех, кто может и желает помочь, есть 2007 и выше, они просто не могут посмотреть Ваш файл. зы. Об этом ясно сказано в правилах. ps.ps. Я Ваш файл могу посмотреть, но не умею (не люблю) писать макросы.Michael_S
См. файл. Список с гиперссылками создаётся каждый раз при переходе на лист INDEX, так что добавив новый лист он отобразится в списке как только Вы хотя бы один раз заглянете на лист с оглавлением.
См. файл. Список с гиперссылками создаётся каждый раз при переходе на лист INDEX, так что добавив новый лист он отобразится в списке как только Вы хотя бы один раз заглянете на лист с оглавлением.Serge_007
Серёга, ну не честно же выкладывать в формате 2007-2010... Хотел посмотреть, поинтересоваться как делается выпадающий список с гиперссылками... Или для этого используется какая-то фича, 2003-им не поддерживаемая? .................. .................. Конвертнул. Посмотрел. Повторяю: "Так не честно!" Лист со списком страниц-гиперссылками я и сам умею делать. А топик-стартер просил
Quote (Thefamilyman)
выпадающий список с гиперссылками
Серёга, ну не честно же выкладывать в формате 2007-2010... Хотел посмотреть, поинтересоваться как делается выпадающий список с гиперссылками... Или для этого используется какая-то фича, 2003-им не поддерживаемая? .................. .................. Конвертнул. Посмотрел. Повторяю: "Так не честно!" Лист со списком страниц-гиперссылками я и сам умею делать. А топик-стартер просил
Александр, два замечания по коду: 1. В макросе должно быть прописано Address:="" , а не Address:="___.xlsm" 2. Надо как-то ограничить выпадающий список списком имён листов книги.
А по интерфейсу: Вы сами пробовали выбрать список в ячейке, в которой ещё и гиперссылка прописана? Я бы сказал, что это мягко говоря не слишком "юзабилити"
Александр, два замечания по коду: 1. В макросе должно быть прописано Address:="" , а не Address:="___.xlsm" 2. Надо как-то ограничить выпадающий список списком имён листов книги.
А по интерфейсу: Вы сами пробовали выбрать список в ячейке, в которой ещё и гиперссылка прописана? Я бы сказал, что это мягко говоря не слишком "юзабилити"
Alex_ST, По п.1 согласен, недоглядел, тогда код такой [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "C1" Then a_ = Range("c1") ActiveSheet.Hyperlinks.Add Anchor:=Range("c1"), Address:=ThisWorkbook.Name, _ SubAddress:="'" & a_ & "'!A1", TextToDisplay:=a_ End If End Sub
[/vba] По п.2 - а зачем? При попытке перейти просто ругается "Неверная ссылка"
Alex_ST, По п.1 согласен, недоглядел, тогда код такой [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "C1" Then a_ = Range("c1") ActiveSheet.Hyperlinks.Add Anchor:=Range("c1"), Address:=ThisWorkbook.Name, _ SubAddress:="'" & a_ & "'!A1", TextToDisplay:=a_ End If End Sub
[/vba] По п.2 - а зачем? При попытке перейти просто ругается "Неверная ссылка"_Boroda_
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "C1" Then a_ = Range("c1") ActiveSheet.Hyperlinks.Add Anchor:=Range("c1"), Address:="", _ SubAddress:="'" & a_ & "'!A1", TextToDisplay:=a_ End If End Sub
[/vba]
Но в любом случае список проверки, сосуществующий в одной ячейке с гиперссылкой, сильно затрудняет жизнь юзеру.
_Boroda_, опять не так. Надо так:[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "C1" Then a_ = Range("c1") ActiveSheet.Hyperlinks.Add Anchor:=Range("c1"), Address:="", _ SubAddress:="'" & a_ & "'!A1", TextToDisplay:=a_ End If End Sub
[/vba]
Но в любом случае список проверки, сосуществующий в одной ячейке с гиперссылкой, сильно затрудняет жизнь юзеру. Alex_ST
Я тут на досуге поковырялся... Сделал формирование списка валидации (проверки значения) только из имеющихся в книге листов и вместо гиперссылки (что оказалось неудобным) сделал переход по дабл-клику.
Я тут на досуге поковырялся... Сделал формирование списка валидации (проверки значения) только из имеющихся в книге листов и вместо гиперссылки (что оказалось неудобным) сделал переход по дабл-клику.Alex_ST
Малость перемудрил в стандартном модуле Вполне достаточно записать так:[vba]
Код
Sub SetValidation(rCell As Range) ' формирование списка проверки данных в заданной ячейке With rCell.Validation .Delete .Add Type:=xlValidateList, _ Formula1:=Join(ListWbkNames, ",") End With End Sub Function ListWbkNames() ' формирование массива-списка листов текущей книги Dim i%, Arr() ReDim Arr(1 To Sheets.Count) For i = 1 To Sheets.Count If Sheets(i).Visible = -1 Then Arr(i) = Sheets(i).Name Next ListWbkNames = Arr End Function
[/vba] и вовсе ни к чему там использовать мои любимые словари
Малость перемудрил в стандартном модуле Вполне достаточно записать так:[vba]
Код
Sub SetValidation(rCell As Range) ' формирование списка проверки данных в заданной ячейке With rCell.Validation .Delete .Add Type:=xlValidateList, _ Formula1:=Join(ListWbkNames, ",") End With End Sub Function ListWbkNames() ' формирование массива-списка листов текущей книги Dim i%, Arr() ReDim Arr(1 To Sheets.Count) For i = 1 To Sheets.Count If Sheets(i).Visible = -1 Then Arr(i) = Sheets(i).Name Next ListWbkNames = Arr End Function
[/vba] и вовсе ни к чему там использовать мои любимые словари Alex_ST
Приветствую участников форума! Данную тему нашел по поиску. У меня тоже возникла необходимость в выпадыющем списке из гиперссылок. Цель - экономия места на экране. Только переход не на другие листы Excel, а по сети на Wordовские файлы. Из просмотренного выше получается, что это сложно или даже невозможно? И еще в дополнение вопрос, в примечание возможно вставить гиперссылку, а лучше две или три? Если да, то как
Приветствую участников форума! Данную тему нашел по поиску. У меня тоже возникла необходимость в выпадыющем списке из гиперссылок. Цель - экономия места на экране. Только переход не на другие листы Excel, а по сети на Wordовские файлы. Из просмотренного выше получается, что это сложно или даже невозможно? И еще в дополнение вопрос, в примечание возможно вставить гиперссылку, а лучше две или три? Если да, то какМур
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$10" Then On Error Resume Next Dim f As String, n As Integer f = Target.Value n = MsgBox("Открыть " & f & "?", 65, "Внимание!") If n = 1 Then If Dir(f) = "" Then MsgBox ("Ошибка открытия файла!"): Exit Sub f = Chr(34) & f & Chr(34) CreateObject("WScript.Shell").Run f End If End If End Sub
[/vba] По гиперссылкам в примечаниях здесь посмотрите
Не совсем гиперссылки, но файлы открывает: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$10" Then On Error Resume Next Dim f As String, n As Integer f = Target.Value n = MsgBox("Открыть " & f & "?", 65, "Внимание!") If n = 1 Then If Dir(f) = "" Then MsgBox ("Ошибка открытия файла!"): Exit Sub f = Chr(34) & f & Chr(34) CreateObject("WScript.Shell").Run f End If End If End Sub
[/vba] По гиперссылкам в примечаниях здесь посмотритеJhonson
Jhonson, приветствую. Еще не разбирался с кодом, возможно у меня будут вопросы по нему. Проверил как работает, вроде нормально. И большое спасибо! Можо внести изменения, чтобы как в примере?
Jhonson, приветствую. Еще не разбирался с кодом, возможно у меня будут вопросы по нему. Проверил как работает, вроде нормально. И большое спасибо! Можо внести изменения, чтобы как в примере?Мур