TextBox - Forma

14 отговора 0 прегледа
#1

TextBox - Forma

ЗДР.
Може ли някой да ми каже как да стане :
Създал сyм форма а върху нея съм поставил TextBox. Kak вписаният текст в него след натискане на команден бутон да се отпечата в съответния лист, в съответната клетка ?
И как се инициализира TextBox ?
Благодаря на всеки .

Отговор
в отговор на intermaniq #2

Re: TextBox - Forma

TextBox не се инициализира. Това е прост контрол.

Предполагам, че става въпрос за Excel, щом споменаваш листове и клетки. Та също така предполагам, че си направил UserForm, и опитваш да напишеш VBA код. Ок, ако е така:

Private Sub CommandButton1_Click()

Worksheets("Sheet1").Range("A1") = TextBox1.Text
End Sub


Предполагам, че ще се оправиш после да си напишеш правилното име на страницата и адреса на клетката.

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

Re: TextBox - Forma

Благодаря ти Щирлиц
Стана !!!
Попълних няколко текстбокса,но незная ,как другия път когато извикам същата форма и като попълня текстбоксовете ,как информацията да се запише на следващият празен ред .
Текстбоксовете са егн,име,презиме,фамилия,датана записа.
Този ред от данни съм го запълнил ,но незная следващият запис да се запише на следващия свободен реед .
Благодаря 4е ми помагаш

Отговор
в отговор на intermaniq #4

Re: TextBox - Forma

М'че то друг не остана в тоя клуб. ;о)

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

Private Sub CommandButton1_Click()


'дефинира променлива за брояч
Dim Row As Long

'установява брояча на първия ред
Row = 1

Do Until Worksheets("Sheet1").Range("A" & Row) = ""
'започва да увеличава брояча, докато реда,
'който е достигнал е празен
Row = Row + 1
Loop

'записва стойността в този празен ред
Worksheets("Sheet1").Range("A" & Row) = TextBox1.Text

End Sub


Разбира се ако имаш данни, които се разполагат на колони "B", "C" и т.н. - просто дописваш със съответните неща. А пък ако началото на данните ти започва чак от 5-тия ред например - тогава горе при установяването на брояча - пишеш съответната стойност, откъде искаш да почне да търси празен ред.

Действай сега, и кажи после какво е станало.

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

Re: TextBox - Forma

Всичко стана перфектно :)
Извинявай хайде пак да питам за да се науча :)
в друг лист "данни1" в колона А съм записал различни думи .
Въпроса ми е как да извлека теи думи от съответната колона и да ги вкарам в комбокса.
Благодаря

Отговор
в отговор на intermaniq #6

Re: TextBox - Forma

Private Sub CommandButton1_Click()

'Дефиниране на променлива за брояча
Dim Row As Long
'Установяване на брояча на първия ред от данните
Row = 1
'Изчистване на стари данни в комбо-бокса
ComboBox1.Clear

'Стартиране на цикъл, който се повтаря, докато има
'данни в реда, на който е установен брояча
Do While Worksheets("Sheet1").Range("A" & Row) <> ""
'Прехвърляне на данните от таблицата в комбо-бокса
ComboBox1.AddItem (Worksheets("Sheet1").Range("A" & Row))
'Увеличаване на брояча с 1-ца
Row = Row + 1
Loop

End Sub



Ориентираш ли се поне?

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

Re: TextBox - Forma

Извинявай нещо не мога да се ориентирам в кода.
От клетка А1 до клетка А5 съм поставил 5 различни текста.
Целта ми е ,когато щракна върху комбобокса вътре в него да се визуализират данните от клетките А1:А5 и когато избера един от текстовете ,същия след като щракна команбутона да се отпечата в друга клетка на друг лист .
Благодаря ти отново :)

Отговор
в отговор на intermaniq #8

Re: TextBox - Forma

Ок, значи да се върнем малко назад в програмирането, и да се научим що са то "събития", и с какво се то ядат. ;о)

Събитието се случва, когато стане нещо с някой визуален контрол. Може и с невизуален, но до ООП (обектно ориентирано програмиране) няма да стигнем скоро... Та така, ние имаме във формата комбо-бокс, текст бокс, самата форма също е контрол... Може да имаме много контроли, и с всеки от тях да се случва нещо различно. Събитие е, когато кликнеш с мишката върху бутон. Именно това събитие ние обработвахме в предишните примери, които ти писах. Command1_Click(). Може да изберем и друго събитие Command1_MouseMove()... Т.е. дори когато минаваш с мишката върху някой контрол - се случват събития. Кода, който искаш да се изпълни - го слагай в правилното събитие, на което при настъпването му - ще се изпълни тази част от програмния код.

В предишните случаи на теб ти трябваше текстовете да се прехврърлят, когато натиснеш бутон. Но сега ти трябва още с отварянето на формата - в нея да има комбо-бокс, и в него пък - текстове. ;о) Ок, но тогава трябва още с отварянето на формата - да пълним комбо-бокса с тези тексове, за да се появят там... Събитието е UserForm_Initialize().


Private Sub UserForm_Initialize()

'Дефиниране на променлива за брояча
Dim Row As Long
'Установяване на брояча на първия ред от данните
Row = 1
'Изчистване на стари данни в комбо-бокса
ComboBox1.Clear

'Стартиране на цикъл, който се повтаря, докато има
'данни в реда, на който е установен брояча
Do While Worksheets("Sheet1").Range("A" & Row) <> ""
'Прехвърляне на данните от таблицата в комбо-бокса
ComboBox1.AddItem (Worksheets("Sheet1").Range("A" & Row))
'Увеличаване на брояча с 1-ца
Row = Row + 1
Loop

End Sub


И така, опитай по този начин, и да видим какво ще стане.

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

Re: TextBox - Forma

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

Отговор
в отговор на intermaniq #10

Re: TextBox - Forma

СТАНААААААААААААААААА УРААААААААА !!!

Отговор
в отговор на intermaniq #11

Re: TextBox - Forma

ей Щирлиц много ги разбираш нещата :)
а и не само разбираш а разбираемо обясняваш,добър педагог си :)
А сега може ли и друг въпрос?
На тези 5 различни текста съм именувал 5 листа в всеки лист от клетка А1 надолу съм попълнил с дати от 01.01.08 до края на годината
Възможно ли е слад като щракна командниябутон ,с който обработвам текстбоксовете от комбобокса избрания текст да се отпечатва на съответната дата в листа ,който отговаря на неговото име.
офффффффф май не се изразих ясно ,чак аз не си разбрах
Примерно думите са лале,минзухар,кокиче,зюмбюл
когато на 01.01.2008 г . в комбобокса избера думата лале ,то същата да се отпечата в лист лале срещу съответната дата :)
На мен лично ми зву1и много сложно

Отговор
в отговор на intermaniq #12

Re: TextBox - Forma

Съмнявам се да е сложно, но не разбрах какво трябва да стане. ;о(

Подозирам, че се опитваш да пълниш таблицата с ненужни данни. Ако това е проект за водене на дневник - то по-добре да преорганизираш нещата, за да правиш записи в поредни редове, без да прескачаш. И също така е можело да направиш работите без User Form. Комбо-бокса от Design mode може да се асоциира директно към част от някоя таблица, и да използваш неговия индекс направо за променлива, без да извършваш търсене на реда и думата. Както и да е. Опитай да обясниш малко по-просто какво ти трябва. Ако се наложи - драсни пример.

Щирлиц
Отговор
в отговор на intermaniq #13

Re: TextBox - Forma

Здр !
Сега ще се опитам да обясня по -разбираемо :)
Значи , в комбобокса думите са 5
Лале
Минзухар
Кокиче
Зюмбюл
на всяка от тези думи съм създал лист с тяхното име, пример:
Лист"Мнзухар",Лист"Лале",Лист"Кокиче",Лист"Зюмбюл"
В всеки от петте листа от клетка А1 и надолу съм попълнил с дати, примерно:
В лист "Кокиче" : в клетка А1 01.01.2008г до края на годината ,по същият начин и в лист "Минзухар" в клетка А1 съм поставил дата 01.01.2008 и така във всички листове.......
Възможно ли е думата избрана в комбобокса,приемаме ,че това е думата Кокиче ,когато цъкна върху команд бутона същата да се копира в Лист "Кокиче" срещу клетка от съвпадащата дата за деня .
Надаявам се да съм обяснил по- разбираемо.

Отговор
в отговор на intermaniq #14

Re: TextBox - Forma

Мисля, че загрявам какво ти трябва, но става малко чудно за обяснение. ;о) Пусни на лична бележка ICQ номер или Скайп, на който да ти се обадя малко по-късно.

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