Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопросы по визуальной форме 
:(
    Опции темы
Гость_Serafim
  Дата 20.12.2005, 23:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











:idea: Вот собственно моя визуальная форма и программа:

Код

Private Sub CommandButton1_Click()
n = Size()
MsgBox ("N=" & n - 1)
End Sub

Private Sub CommandButton2_Click()
m = GetTheChipest(n)
MsgBox "Номер товара в списке: " & m & ". Наименование: " & Cells(m, 1) & ". Фирма: " & Cells(m, 2) & ". Страна: " & Cells(m, 3) & ". Цена в рублях: " & Cells(m, 4) & ".", , "Самый дешевый товар"
End Sub

Private Sub CommandButton3_Click()
UserForm1.Show
End Sub

Private Sub CommandButton4_Click()
Load (fname)
End Sub

Private Sub CommandButton5_Click()
Save (fname)
End Sub



Код

Option Explicit
Public n As Integer

Sub clean()
Dim o As Integer
For o = 2 To n
Cells(o, 1) = ""
Cells(o, 2) = ""
Cells(o, 3) = ""
Cells(o, 4) = ""
Next o
For o = 1 To n
Cells(o, 5) = ""
Next o
End Sub

Public Function Size()
Dim count As Integer
count = 1
While Cells(count + 1, 1) <> ""
count = count + 1
Wend
Size = count
End Function

Public Function GetTheChipest(n As Integer) As Long
Dim i As Integer, z As Long
z = 5000000
For i = 2 To n
If Cells(i, 4) < z Then z = Cells(i, 4): GetTheChipest = i
Next i
End Function

Sub Макрос1()
Start:
Dim resp As Integer, m As Integer
resp = InputBox("1- Get size , 2- Get the chipest, 3- get price in $, 4 - Load, 5 -Save, Other- Exit")
Select Case resp
Case 1
n = Size()
MsgBox ("N=" & n - 1)
Case 2
m = GetTheChipest(n)
MsgBox "Номер товара в списке: " & m & ". Наименование: " & Cells(m, 1) & ". Фирма: " & Cells(m, 2) & ". Страна: " & Cells(m, 3) & ". Цена в рублях: " & Cells(m, 4) & ".", , "Самый дешевый товар"
Case 3
UserForm1.Show
Case 4
Load (fname)
Case 5
Save (fname)
Case Else
If MsgBox("Вы хотите програмно очистить таблицу?", vbYesNo) = vbYes Then clean
MsgBox ("GameOver!")
GoTo exitloop
End Select
GoTo Start
exitloop:
End Sub

Function fname()
fname = InputBox("Введите имя файла:")
End Function

Sub Save(fn As String)
Dim n As Integer
Close
Open fn For Output As #1
For i = 1 To Size
Write #1, Cells(i, 1), Cells(i, 2), Cells(i, 3), Cells(i, 4), Cells(i, 5)
Next i
Close 1
End

Sub Load(fn As String)
Dim n As Integer
Close
Open fn For Input As #1
i = 1
Do While Not EOF(1)
Input #1, S, m1, m2, m3, m4
Cells(i, 1) = S
Cells(i, 2) = m1
Cells(i, 3) = m2
Cells(i, 4) = m3
Cells(i, 5) = m4
i = i + 1
Loop
Close 1
End
End Sub


UserForm1:
Код

Option Explicit
Dim rn As Integer

Private Sub c1_Click()
If Not IsNumeric(text1.Text) Or text1.Text = "" Then Exit Sub
Dim kurs As Single, i As Integer
rn = Size()
kurs = Val(text1.Text)
For i = 2 To rn
Cells(i, 5) = Val(Cells(i, 4)) / kurs
Next i
Me.Hide
End Sub

Private Sub UserForm_Click()

End Sub


А вопросы в следующем:
1. Как сделать так, чтобы моя таблица была уже не в собственно в Листе1, а в окошке ListBox и все действия производимые в ходе работы с программой отображались тоже в ListBox'е?
2. Почему, если я нажимаю отменить какое-либо действие, то выскакивает ошибка?
3. Как сделать ещё в программе выход из неё с соответствующей кнопкой?

ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО!!! smile
  Вверх
Staruha
Дата 21.12.2005, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



У ListBox есть свойство RowSource(Указываешь диапазон) и ColumnCount-кол столбцов
Код

Private Sub CommandButton1_Click()
End
End Sub



--------------------
Возмездие настигнет
PM MAIL   Вверх
Гость_Serafim
Дата 22.12.2005, 16:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код

Private Sub CommandButton2_Click()
m = GetTheChipest(n)
MsgBox "Номер товара в списке: " & m & ". Наименование: " & Cells(m, 1) & ". Фирма: " & Cells(m, 2) & ". Страна: " & Cells(m, 3) & ". Цена в рублях: " & Cells(m, 4) & ".", , "Самый дешевый товар"
End Sub


У меня почему-то не работает вот эта кнопка... она по идее должна выводить товар с минимальной ценой, но программа всё время выдаёт ошибку... что делать?

Staruha

Цитата
У ListBox есть свойство RowSource(Указываешь диапазон) и ColumnCount-кол столбцов


Спасибо за полезную инфу - теперь всё работает smile
  Вверх
Staruha
Дата 23.12.2005, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Наверно он не знает ,чему равна m. n - глобально объявил?


--------------------
Возмездие настигнет
PM MAIL   Вверх
Гость_Serafim
Дата 24.12.2005, 13:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ну само собой =)
  Вверх
Staruha
Дата 24.12.2005, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Цитата
Cells(m, 4) & ".", , "Самый дешевый товар"

Вот здесь посмотри


--------------------
Возмездие настигнет
PM MAIL   Вверх
Гость_Serafim
Дата 25.12.2005, 13:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Убрал я две лишние запятые и кавычку - всё равно не пашет

Код

Cells(m, 4) & ". Самый дешевый товар"

  Вверх
Staruha
Дата 25.12.2005, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Поставь в кнопке код
MsgBox n
Т.к. запись нормально выводится ,когда пишу m=4 и посмотри ,что происходит


--------------------
Возмездие настигнет
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.