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

Вход

Регистрация

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

 

= Мир MS Excel/Выбор из списка со ссылкой на другой лист - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Выбор из списка со ссылкой на другой лист
roboaug Дата: Четверг, 26.01.2017, 18:12 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток, уважаемые форумчане.
Интересует вопрос, можно ли сделать выбор из списка с автоматическим созданием новых страниц и ссылкой на эти страницы.
Например, у меня есть в столбце А есть категории "собаки" и "кошки" и в столбце В их породы. Как можно сделать так, чтобы при выборе породы, автоматически создавался лист с именем ячейки А+В (например, "собаки, Бигль"), если такого листа нет, а если такой лист есть, то он не дублируется, а просто идет ссылка на него, то есть при выборе породы "Бигль" открывается лист "собаки, Бигль".
К сообщению приложен файл: 4086803.xls (31.5 Kb)
 
Ответить
СообщениеДоброго времени суток, уважаемые форумчане.
Интересует вопрос, можно ли сделать выбор из списка с автоматическим созданием новых страниц и ссылкой на эти страницы.
Например, у меня есть в столбце А есть категории "собаки" и "кошки" и в столбце В их породы. Как можно сделать так, чтобы при выборе породы, автоматически создавался лист с именем ячейки А+В (например, "собаки, Бигль"), если такого листа нет, а если такой лист есть, то он не дублируется, а просто идет ссылка на него, то есть при выборе породы "Бигль" открывается лист "собаки, Бигль".

Автор - roboaug
Дата добавления - 26.01.2017 в 18:12
krosav4ig Дата: Четверг, 26.01.2017, 19:51 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Можно посредством VBA, В модуль листа пишем
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Me.[B:B]) Is Nothing Then Exit Sub
    If IsError(Application.Match(Target, Лист2.Range( _
        Target.Offset(, -1)), 0)) Then Exit Sub
    Dim sh As Worksheet, Name As String * 31
    Name = Application.Trim(Target.Offset(, -1) & ", " & Target)
    On Error Resume Next
    With Worksheets
        .Item(Name).Activate
        If Err = 0 Then Exit Sub
        .Add(, .Item(.Count)).Name = Name
    End With
End Sub
[/vba]
К сообщению приложен файл: 8959635.xls (54.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеМожно посредством VBA, В модуль листа пишем
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Me.[B:B]) Is Nothing Then Exit Sub
    If IsError(Application.Match(Target, Лист2.Range( _
        Target.Offset(, -1)), 0)) Then Exit Sub
    Dim sh As Worksheet, Name As String * 31
    Name = Application.Trim(Target.Offset(, -1) & ", " & Target)
    On Error Resume Next
    With Worksheets
        .Item(Name).Activate
        If Err = 0 Then Exit Sub
        .Add(, .Item(.Count)).Name = Name
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 26.01.2017 в 19:51
roboaug Дата: Пятница, 27.01.2017, 16:59 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
krosav4ig, большое спасибо, очень помогло.
 
Ответить
Сообщениеkrosav4ig, большое спасибо, очень помогло.

Автор - roboaug
Дата добавления - 27.01.2017 в 16:59
  • Страница 1 из 1
  • 1
Поиск:

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