Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Создать на панели инструментов выпадающий список? / 25 сообщений из 54, страница 1 из 3
26.06.2006, 08:01
    #33813649
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
можно или нет?

Аленочка тм
...
Рейтинг: 0 / 0
26.06.2006, 08:59
    #33813693
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Аленочка, можно.

Раскрывающиеся списки является объектами CommandBarComboBox.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Public Sub CreateComboBox()
    Dim cb As CommandBar
    Dim cmb As CommandBarComboBox
    
    Set cb = Application.CommandBars.Add( _
      Name:="Temp", _
      Temporary:=True)
    
    Set cmb = cb.Controls.Add( _
      Type:=msoControlComboBox)
    
    With cmb
        .AddItem "One",  1 
        .AddItem "Two",  2 
        .AddItem "Three",  3 
        .DropDownWidth =  100 
        .ListIndex =  1 
    End With
    
    cb.Visible = True
End Sub
...
Рейтинг: 0 / 0
26.06.2006, 09:04
    #33813699
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Урааа!! Сейчас проверю..

Аленочка тм
...
Рейтинг: 0 / 0
26.06.2006, 09:31
    #33813737
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
2 Ashton Спасибо! То что нужно! Только в список мне нужно добавить все листы книги и при выборе нужного, автоматом переходить на лист, наименование которого выбрано в ComboBox 'е...

Аленочка тм
...
Рейтинг: 0 / 0
26.06.2006, 09:44
    #33813756
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Стандартный модуль.

Код: plaintext
1.
2.
3.
4.
Public cmb As CommandBarComboBox

Public Sub ActivateWs()
    Worksheets(cmb.List(cmb.ListIndex)).Activate
End Sub

Модуль книги.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Private Sub Workbook_Open()
    Dim cb As CommandBar
    Dim ws As Worksheet

    Set cb = Application.CommandBars.Add( _
      Name:="Temp", _
      Temporary:=True)
    
    Set cmb = cb.Controls.Add( _
      Type:=msoControlComboBox)
    
    For Each ws In ThisWorkbook.Worksheets
        cmb.AddItem ws.Name
    Next ws

    With cmb
        .DropDownWidth =  100 
        .ListIndex =  1 
        .OnAction = "ActivateWs"
    End With
    
    cb.Visible = True
End Sub
...
Рейтинг: 0 / 0
26.06.2006, 10:16
    #33813852
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
не работает, у меня макросы в надстройке, а в ComboBox нужно выводить листы активной книги, а вот этот код:

Код: plaintext
1.
2.
Public Sub ActivateWs()
    Worksheets(cmb.List(cmb.ListIndex)).Activate
End Sub

выводит только список листов самой надстройки

Аленочка тм
...
Рейтинг: 0 / 0
26.06.2006, 10:18
    #33813859
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
а поняла, нужно писать:

Код: plaintext
1.
2.
For Each ws In ActiveWorkbook.Worksheets
        cmb.AddItem ws.Name
    Next ws

Аленочка тм
...
Рейтинг: 0 / 0
26.06.2006, 10:21
    #33813870
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
а ещё, листы можно выберать стандартным контекстным меню.
Код: plaintext
Application.CommandBars("Workbook tabs").ShowPopup
...
Рейтинг: 0 / 0
26.06.2006, 10:23
    #33813875
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Аленочкаа поняла, нужно писать:

Код: plaintext
1.
2.
For Each ws In ActiveWorkbook.Worksheets
        cmb.AddItem ws.Name
    Next ws

Аленочка тм

неа всё равно формируется список листов надстройки, а не список листов рабочей книги..
...
Рейтинг: 0 / 0
26.06.2006, 10:34
    #33813905
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
слушай, а тебе зачем это надо, для работы или для эксперимента? есть одна фишка под названием "навигатор", так вот она создает именно то, шо ты и говорила. список листов книги для перехода и навигации по ним. или важен эксперимент?
...
Рейтинг: 0 / 0
26.06.2006, 10:40
    #33813925
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Ivan33слушай, а тебе зачем это надо, для работы или для эксперимента? есть одна фишка под названием "навигатор", так вот она создает именно то, шо ты и говорила. список листов книги для перехода и навигации по ним. или важен эксперимент?

для работы. мне нужно чтобы пользователь не видел ярлыки листов в рабочей книги, так как все они не помещаются, гораздо проще их будет выбирать из списка...
...
Рейтинг: 0 / 0
26.06.2006, 10:45
    #33813948
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
есть еще два варианта, если этот не устраивает.
...
Рейтинг: 0 / 0
26.06.2006, 10:58
    #33813986
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
штука для ознакомления с кодом
...
Рейтинг: 0 / 0
26.06.2006, 10:58
    #33813987
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
работающая надстройка
...
Рейтинг: 0 / 0
26.06.2006, 11:06
    #33814011
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Уважаемый Ashton, ваш вариант у меня не работает...а хотелось бы..раз уж начала довести до конца...

Аленочка тм
...
Рейтинг: 0 / 0
26.06.2006, 11:54
    #33814166
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Эй, пригодилось или нет?
...
Рейтинг: 0 / 0
26.06.2006, 12:01
    #33814190
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Ivan33Эй, пригодилось или нет?

ты может объяснишь что это за файлы? мне дополнительные надстройки не нужны. у меня есть своя надстройка, которая создаёт панель инструментов и на этой панели мне нужно создать выпадающий список листов активной книги
...
Рейтинг: 0 / 0
26.06.2006, 12:03
    #33814197
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Ivan33Эй, пригодилось или нет?

думаю пригодиться, только я уже это завтра всё перелапачивать буду. сейчас уже домой убегаю. спасибо. завтра гляну.
...
Рейтинг: 0 / 0
26.06.2006, 12:41
    #33814312
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
предлагается не изобретать лесапед, а позырить то, как работает надстройка, посмотреть код, а потом сделать свое, если надо, а потом рассказать, шо получилось.
...
Рейтинг: 0 / 0
26.06.2006, 13:53
    #33814503
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Да, я тоже не люблю незавершенных дел и вопросов без ответов.

Сделал я надстройку, разместил в ней следующий код.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Public cmb As CommandBarComboBox

Public Sub ActivateWs()
    Worksheets(cmb.List(cmb.ListIndex)).Activate
End Sub

Public Sub CreateComboBox()
    Dim cb As CommandBar
    Dim ws As Worksheet

    Set cb = Application.CommandBars.Add( _
      Name:="Temp", _
      Temporary:=True)
    
    Set cmb = cb.Controls.Add( _
      Type:=msoControlComboBox)
    
    For Each ws In ActiveWorkbook.Worksheets
        cmb.AddItem ws.Name
    Next ws

    With cmb
        .DropDownWidth =  100 
        .ListIndex =  1 
        .OnAction = "ActivateWs"
    End With
    
    cb.Visible = True
End Sub

Добавил в книге ссылку на эту надстройку, все ок, в списке все листы этой книги, а не надстройки.

Попробуй еще такой вариант. В надстройке.

Код: plaintext
1.
2.
3.
4.
5.
6.
Public Sub CreateComboBox(wb As Workbook)
...
    For Each ws In wb.Worksheets
    ...
    Next ws
...
End Sub

И в книге вызывай соотвественно.

Код: plaintext
1.
2.
Private Sub Workbook_Open()
    CreateComboBox ThisWorkbook
End Sub
...
Рейтинг: 0 / 0
27.06.2006, 03:32
    #33815702
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
AshtonДа, я тоже не люблю незавершенных дел и вопросов без ответов.

Сделал я надстройку, разместил в ней следующий код.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Public cmb As CommandBarComboBox

Public Sub ActivateWs()
    Worksheets(cmb.List(cmb.ListIndex)).Activate
End Sub

Public Sub CreateComboBox()
    Dim cb As CommandBar
    Dim ws As Worksheet

    Set cb = Application.CommandBars.Add( _
      Name:="Temp", _
      Temporary:=True)
    
    Set cmb = cb.Controls.Add( _
      Type:=msoControlComboBox)
    
    For Each ws In ActiveWorkbook.Worksheets
        cmb.AddItem ws.Name
    Next ws

    With cmb
        .DropDownWidth =  100 
        .ListIndex =  1 
        .OnAction = "ActivateWs"
    End With
    
    cb.Visible = True
End Sub

Добавил в книге ссылку на эту надстройку, все ок, в списке все листы этой книги, а не надстройки.

если макрос надстройки CreateComboBox вызывать из уже открытой рабочей книги - тогда всё ОК, но если вызов этого макроса поместить в процедуру открытия надстройки, то в ComboBoxе появляется список листов НАДСТРОЙКИ!!! :

Код: plaintext
1.
2.
Private Sub Workbook_Open()
CreateComboBox
End Sub
...
Рейтинг: 0 / 0
27.06.2006, 04:07
    #33815709
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Ivan33есть еще два варианта, если этот не устраивает.

Это отличная штука, но вот абсолютно лишним является то, что для получения списка листов нужно нажать кнопку "Обновить". Для пользователья это очень неудобно.

Можно как-нибудь делать так, чтобы список листов активной книги формировался сразу при загрузке надстройки?

Пока что ни один из предложенных вариантов этого делать не может :-(
...
Рейтинг: 0 / 0
27.06.2006, 09:03
    #33815837
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Я не понял, что ты используешь событие открытие надстройки, а не книги.

Воспользуйся следующим вариантом.

В надстройке должно быть.

Class1.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public WithEvents app As Application

Private Sub app_WorkbookOpen( _
  ByVal Wb As Workbook)
    If Not Wb Is ThisWorkbook Then
        If Wb.Name <> "PERSONAL.XLS" Then
            CreateComboBox Wb
        End If
    End If
End Sub

Module1.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Public cmb As CommandBarComboBox

Public Sub ActivateWs()
    Worksheets(cmb.List(cmb.ListIndex)).Activate
End Sub

Public Sub CreateComboBox(Wb As Workbook)
    Dim cb As CommandBar
    Dim ws As Worksheet

    Set cb = Application.CommandBars.Add( _
      Name:="Temp", _
      Temporary:=True)
    
    Set cmb = cb.Controls.Add( _
      Type:=msoControlComboBox)
    
    For Each ws In Wb.Worksheets
        cmb.AddItem ws.Name
    Next ws

    With cmb
        .DropDownWidth =  100 
        .ListIndex =  1 
        .OnAction = "ActivateWs"
    End With
    
    cb.Visible = True
End Sub

ЭтаКнига.

Код: plaintext
1.
2.
3.
4.
Dim a As New Class1

Private Sub Workbook_Open()
    Set a.app = Application
End Sub
...
Рейтинг: 0 / 0
27.06.2006, 09:57
    #33815945
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
Аленочка Ivan33есть еще два варианта, если этот не устраивает.

Это отличная штука, но вот абсолютно лишним является то, что для получения списка листов нужно нажать кнопку "Обновить". Для пользователья это очень неудобно.

Можно как-нибудь делать так, чтобы список листов активной книги формировался сразу при загрузке надстройки?

Пока что ни один из предложенных вариантов этого делать не может :-(
я выложил не только одну штуку, я выложил два варианта: один как тулбокс, а другой встраивается именно в панель инструментов. посмотри внимательно. судя по твоему посту, ты взяла файл только первый Navigation, есть еще ворбук навигэйшн (файл) позырь внимательно.
...
Рейтинг: 0 / 0
27.06.2006, 10:00
    #33815953
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать на панели инструментов выпадающий список?
я выложил два файла - два разных решения:один называется NavigationToolbar.rar , второй - worbook navigation.rar
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Создать на панели инструментов выпадающий список? / 25 сообщений из 54, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]