Страницы: 1
RSS
Вопрос опытным перцам про использование TreeView в Excel
 
Кто работал с TreeView, подскажите, добавляю узлы в VBA в иерархическом порядке:  
Set nodX = TreeView1.Nodes.Add(, , "R", "Root")  
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "Child 1")  
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C2", "Child 2")  
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C3", "Child 3")  
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C4", "Child 4")  
А он мне в итоге показывает все однорангово, ветви не получаетяс....  
Подскажите, что не так.... или для excel TreeView не работает!?  
СПАСИБО!
 
Посмотрите здесь: http://www.planetaexcel.ru/forum.php?thread_id=280  может чего и пригодится?
 
Да это я видел... все не  то, но спасибо за отклик
 
Юра я пришел заглянуть на "Опытных перцев" себя к таковым не отношу... Оказалось это ты видимо по долгу службы...Честно говоря обращение покоробило типа дискотека тут...
 
А вот у меня все получается, если я правильно понял, то Root - это первый уровень, Сhild1-4 ветви второго уровня. Видимо вариантом решения будет выложить на форум пример, где что-то не получается.
 
Вот мой пример, хотя узлы и обозначены как подчиненные, все ветви отображаются однорангово.... Посмотрите плз...
 
хм, почему не отображается, может версия элемента старая, попробуйте добавить в панель форм именно 6-ую версию, вот примерчик, у меня все работает.
 
ООО! Ваш работает... в чем же дело?! :-/
 
Ну вот я добавляю в Toolbox нажимаю праую кнопку там выбираю "Additional Cont  
it ro Is" и в этом списке выбираю элемент "Microsoft TreeView Control, version 6 0"... После чего в инструментах Toolbox появляется его пиктограмма, а там далее дело техники.... Что не так делаю?
 
{quote}{login=Макс}{date=17.09.2009 05:24}{thema=}{post}Ну вот я добавляю в Toolbox нажимаю праую кнопку там выбираю "Additional Cont  
it ro Is" и в этом списке выбираю элемент "Microsoft TreeView Control, version 6 0"... После чего в инструментах Toolbox появляется его пиктограмма, а там далее дело техники.... Что не так делаю?{/post}{/quote}  
 
и что, при добавлении все равно не отбражает корректно?  
у меня, кстати, ваш файл тоже некоректно работает, так что видимо какие то глюки элемента
 
Бред какой то...  
Когда создаю на вашей форме второй treeview2 то и первый созданный мной и второй созданный Вами работают отлично! Как тольо создаю в нвом файле на userform'е, то открывается с глюгом, без разветвлений... может какие то настройки книги нужно поменять?
 
ага, тоже самое и с вашим файлом, может какие настройки, влияющие на это есть, но я их не нашел(  
 
как вариант, можно позвать волшебника, который cкрывается под именем ZVI, он наверняка знает в чем проблема)))  
 
P/S и еще  есть вариант, могу предложить вариант TreeView сделанный из листобокса, по-моему процесс работы с ним гораздо удобнее (делал не я)
 
УУУ... это сложно..... Ну все равно, большое спасибо...  
Давайте звать волшебника ZVI,Pavel55 или еще кто там гуру.... отзовитесь, помогите.... :)
 
Глючит потому что на неработающем варианте отсутствует ссылка на необходимую для нормальной работы контрола библиотеку: Microsoft Windows Common controls 6.0 (SP6)  
 
Ссылку можно восстановить с помощью Tools –References – Microsoft Windows Common controls 6.0 (SP6). Если нет  списке, то воспользоваться  кнопкой Browse и выбрать файл: C:\Windows\System32\mscomct2.ocx  
 
Ссылка также автоматически устанавливается, если TreeView контрол перенести на форму из панели ToolBar.  
 
Как такое могло случиться? В работающем варианте снимите галочку с Tools –References – Microsoft Windows Common controls 6.0 (SP6) и запустите форму, получите неработающий вариант.
 
Опечатки:  
1. Если нет списке =  Если нет в списке  
2. ToolBar = ToolBox (панель элеиентов)
 
Спасибо ZVI!!! Долго мучился Вашему варианту:  
 
воспользовался кнопкой Browse и выбрать файл: C:\Windows\System32\mscomct2.ocx  
И у меня появился не Tools –References – Microsoft Windows Common controls 6.0 (SP6) а Microsoft Windows Common controls -2 6.0 (SP6) и та же ошибка осталась...    
 
Затем попробовал выбрать не mscomct2.ocx а mscomctl.ocx и появился Microsoft Windows Common controls 6.0 и все заработало...  
  Но закрались сомнения, я так понимаю, что вместо coommon control 2 я поставил 1ую версию. Возник вопрос: первая версия работает хуже (меньше возможностей), чем вторая, как Вы думаете?  
 
Еще раз спасибо!!!
 
{quote}{login=Макс}{date=18.09.2009 04:45}{thema=}{post}Спасибо ZVI!!! Долго мучился Вашему варианту:  
 
воспользовался кнопкой Browse и выбрать файл: C:\Windows\System32\mscomct2.ocx  
И у меня появился не Tools –References – Microsoft Windows Common controls 6.0 (SP6) а Microsoft Windows Common controls -2 6.0 (SP6) и та же ошибка осталась...    
 
Затем попробовал выбрать не mscomct2.ocx а mscomctl.ocx и появился Microsoft Windows Common controls 6.0 и все заработало...  
  Но закрались сомнения, я так понимаю, что вместо coommon control 2 я поставил 1ую версию. Возник вопрос: первая версия работает хуже (меньше возможностей), чем вторая, как Вы думаете?  
 
Еще раз спасибо!!!{/post}{/quote}  
Всё Вы правильно сделали, извиняюсь за еще одну мою опечатку:    
Вместо : выбрать файл: C:\Windows\System32\mscomct2.ocx  
Должно быть: выбрать файл: C:\Windows\System32\mscomct.ocx
 
В первой строке укажите корневую директорию, получится:  
 
Private Sub UserForm_Initialize()  
TreeView1.Nodes.Add , TVWROOT, "internet", "Internet"  
TreeView1.Nodes.Add "internet", tvwChild, "internet-ru", "ru"  
TreeView1.Nodes.Add "internet", tvwChild, "internet-com", "com"  
TreeView1.Nodes.Add "internet", tvwChild, "internet-net", "net"  
TreeView1.Nodes.Add "internet", tvwChild, "internet-edu", "edu"  
TreeView1.Nodes.Item("internet").Expanded = True  
TreeView1.Nodes.Add "internet-ru", tvwChild, "internet-ru-narod", "narod"  
TreeView1.Nodes.Add "internet-ru-narod", tvwChild, "internet-ru-narod-www", "www"  
TreeView1.Nodes.Add "internet-ru-narod", tvwChild, "internet-ru-narod-soobcha-vb", "soobcha-vb"  
TreeView1.Nodes.Add "internet-ru", tvwChild, "internet-ru-boom", "boom"  
TreeView1.Nodes.Add "internet-ru-boom", tvwChild, "internet-ru-boom-www", "www"  
TreeView1.Nodes.Add "internet-ru", tvwChild, "internet-ru-lgg", "lgg"  
TreeView1.Nodes.Add "internet-ru-lgg", tvwChild, "internet-ru-lgg-www", "www"  
End Sub  
 
 
И все заработает...
 
Виноват, погорячился, заработало после замены формы на Microsoft Windows Common controls 6.0 (SP6). Ваша не работает...
 
Имею вопрос по использованию TreeView  
При размещении этого элемента непосредственно на рабочем листе Excel при открытии файла происходит искожение как размеров TreeView, так и шрифтов в нем.  
При изменении размеров окна с Excel картинка восстанавливается.  
Почему такое происходит? Как лечить?  
Выставление в Sub Workbook_Open()  
свойства TreeView1.Visible = False с последующим True не помогает.  
 
Заранее спасибо, Алексей
 
{quote}{login=LeoKalinin}{date=08.10.2009 09:56}{thema=прорисовка TreeView}{post}Имею вопрос по использованию TreeView  
При размещении этого элемента непосредственно на рабочем листе Excel при открытии файла происходит искожение как размеров TreeView, так и шрифтов в нем.  
При изменении размеров окна с Excel картинка восстанавливается.  
Почему такое происходит? Как лечить?  
Выставление в Sub Workbook_Open()  
свойства TreeView1.Visible = False с последующим True не помогает.  
 
Заранее спасибо, Алексей{/post}{/quote}  
 
Попробуйте:  
TreeView1.Top = TreeView1.Top - 1  
TreeView1.Top = TreeView1.Top + 1
Страницы: 1
Наверх