Excel VBA & DialogBox

3 отговора 300 прегледа
#1

Excel VBA & DialogBox

Здравейте, някой от вас знае ли страница където има примери с диалогова кутия за Excel VBA? Рових се из нета, но във всички tutorials които прегледах такива примери липсват. И в книгата ми "Да напишем макроси в Ексел" пише много малко за диалоговата кутия, а пример практически не е даден.

Най-общо казано това което се опитвам да направя е диалогова кутия в която да се показва избрана информация от няколко реда (от един до пет, бройката варира) и потребителя да може да избира един от показаните записи. Не би трябвало да е нещо сложно.

И един бърз втори въпрос - в control toolbox-a не мога да намеря user forms. Защо и най-вече къде се крие?

Отговор
в отговор на HeДoДяЛKo #2

Re: Excel VBA & DialogBox

Като стартираш Excel - натискаш Alt-F11, после минаваш през меню "Insert" - "User Form", и получаваш формичка, върху която ще можеш да си наредиш визуални контроли, и да пишеш код за тях. ;о)

Успех. Следващите въпроси ги формулирай по-пълно, с примерче ако може, за да можем да помагаме повече с всеки постинг.


Щирлиц
Отговор
в отговор на Щиpлиц #3

Re: Excel VBA & DialogBox

Бре, колко лесно било. Ама аз се в началния прозорец на Ексел търсех, не във VB прозореца. Мерси!

Относно диалоговата кутия... ами да речем в определена ситуация искам стойностите от A1, B1, C1 да се покажат (примерно на три лейбълс подредени в един ред); отдолу други три лейбълс със стойностите на A3, B3, C3 - понеже този ред също изпълнява съответния критерий; отдолу още един ред с A7, B7, C7. Броят на редовете от worksheet-a които изпълняват зададения критерий ще варира (но ще бъде между едно и пет). Пред всеки ред от labels, да има radio button така че потребителя да си хареса и избере единия ред. Според мен самата програма дето прави това ще бъде доволно простичка, но просто не намерих откъде да прочета малко повече инфо за диалогови кутии за да си я напиша.

Отговор
в отговор на HeДoДяЛKo #4

Re: Excel VBA & DialogBox

Мда. User Form ще ти свърши работа. Точно там, като си създадеш една формичка, редиш върху нея нужните ти контроли, и ги именуваш хубаво, така че да нямаш чудене кой лейбъл кой беше... ;о) Т.е. даваш им свойството Name. След това кликаш два пъти върху формата, и ще ти се отвори празен джам за писане на VBA код. Там пишеш процедурата:

Private Sub UserForm_Initialize()

LabelA1.Caption = Worksheets("Sheet1").Range("A1")
LabelB1.Caption = Worksheets("Sheet1").Range("B1")
LabelC1.Caption = Worksheets("Sheet1").Range("C1")
'и т.н.
End Sub


За да зареждаш формата на екрана обаче трябва да го правиш с някакъв бутон, или нещо такова, което да изкараш върху страницата.


Щирлиц
Отговор