Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 721
от 04.03.2008, 15:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 286, Экспертов: 37
В номере:Вопросов: 2, Ответов: 4

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 125144: Здравствуйте! Я написал программу для перевода одних единиц скорости скачивания в другие. Скажите, пожалуйста, как мне сделать так, чтобы если я ввожу букву вместо числа (это там, где я должен ввести скорость скачивания), он у меня выдавал сообще...
Вопрос № 125217: Здравствуйте! Подскажите пожалуйста макрос Excel для выяснения знака зодиака: есть ячейки даты рождения (число, месяц, год). Спасибо. ...

Вопрос № 125.144
Здравствуйте!
Я написал программу для перевода одних единиц скорости скачивания в другие. Скажите, пожалуйста, как мне сделать так, чтобы если я ввожу букву вместо числа (это там, где я должен ввести скорость скачивания), он у меня выдавал сообщение "Что буквы не принимаются". Программа разработана на языке Visual Basic 6.0.
Код программы:
Private Sub Clear_Click()
txtParamA.Text = ""
txtparamB.Text = ""
txtparamC.Text = ""
txtparamD.Text = ""
lblX1.Caption = "Êá/ñ: "
lblX2.Caption = "Ìá/ñ: "
lbl13.Caption = "êÁèò/ñ: "
lbl14.Caption = "ìÁèò/ñ: "
End Sub
Private Sub clear_keypress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
End Sub
Private Sub command2_keypress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
End Sub
Private Sub CmdCalculate2_keypress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
End Sub
Private Sub Command134_KeyPress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
End Sub
Private Sub txtparamD_KeyPress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
If keyascii = 13 Then
Call Command134_Click
End If
End Sub
Private Sub Command134_Click()
Dim paramD As Double
Dim k1 As Double
Dim k2 As Double
Dim d14 As Double
paramD = Val(txtparamD.Text)
If paramD = 0 Then
MsgBox "Íóëü â êà÷åñòâå çíà÷åíèÿ ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
If paramD < 0 Then
MsgBox "Îòðèöàòåëüíîå ÷èñëî êàê çíà÷åíèå ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
d14 = ((paramD * 1024) * 1024) * 8
k1 = d14 / 1000
k2 = d14 / 1000000
lbl13.Caption = "êÁèò/ñ: " & Format(k1, "#0.##")
lbl14.Caption = "ìÁèò/ñ: " & Format(k2, "#0.##")
End Sub
Private Sub cmdCalculate_keypress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
End Sub
Private Sub txtparamC_KeyPress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
If keyascii = 13 Then
Call Command2_Click
End If
End Sub
Private Sub Command2_Click()
Dim paramC As Double
Dim j1 As Double
Dim j2 As Double
Dim d3 As Double
paramC = Val(txtparamC.Text)
If paramC = 0 Then
MsgBox "Íóëü â êà÷åñòâå çíà÷åíèÿ ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
If paramC < 0 Then
MsgBox "Îòðèöàòåëüíîå ÷èñëî êàê çíà÷åíèå ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
d3 = paramC * 1000000
j1 = (d3 / 8) / 1024
j2 = j1 / 1024
lblX1.Caption = "Êá/ñ: " & Format(j1, "#0.##")
lblX2.Caption = "Ìá/ñ: " & Format(j2, "#0.##")
End Sub

Private Sub txtparamB_KeyPress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
If keyascii = 13 Then
Call CmdCalculate2_Click
End If
End Sub
Private Sub CmdCalculate2_Click()
Dim paramB As Double
Dim y1 As Double
Dim y2 As Double
Dim d1 As Double
paramB = Val(txtparamB.Text)
If paramB = 0 Then
MsgBox "Íóëü â êà÷åñòâå çíà÷åíèÿ ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
If paramB < 0 Then
MsgBox "Îòðèöàòåëüíîå ÷èñëî êàê çíà÷åíèå ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
d1 = paramB * 1024
y1 = (d1 * 8) / 1000
y2 = ((d1 * 8) / 1000) / 1000
lbl13.Caption = "êÁèò/ñ: " & Format(y1, "#0.##")
lbl14.Caption = "ìÁèò/ñ: " & Format(y2, "#0.##")
End Sub

Private Sub txtParamA_KeyPress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
If keyascii = 13 Then
Call cmdCalculate_Click
End If
End Sub
Private Sub cmdCalculate_Click()
Dim paramA As Double
Dim x1 As Double
Dim x2 As Double
Dim D As Double
paramA = Val(txtParamA.Text)
If paramA = 0 Then
MsgBox "Íóëü â êà÷åñòâå çíà÷åíèÿ ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
If paramA < 0 Then
MsgBox "Îòðèöàòåëüíîå ÷èñëî êàê çíà÷åíèå ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
D = paramA * 1000
x1 = (D / 8) / 1024
x2 = (D / 8) / 1024 / 1024
lblX1.Caption = "Êá/ñ: " & Format(x1, "#0.##")
lblX2.Caption = "Ìá/ñ: " & Format(x2, "#0.##")
End Sub
Благодарю за помощь!
Отправлен: 27.02.2008, 18:16
Вопрос задал: Красильников И.П. (статус: 10-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 10)

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Красильников И.П.!
Не допустить ввод нечисловых символов поможет подобный код.

Евгений.

Приложение:

Ответ отправил: Тесленко Евгений Алексеевич (статус: Студент)
Ответ отправлен: 27.02.2008, 20:55
Оценка за ответ: 3
Комментарий оценки:
...

Отвечает: MMAX
Здравствуйте, Красильников И.П.!
ну первое есть такая функция как IsNumeric(Value), возвращает два значения True(цифры) и False (все остальное)
теперь допустим у нас есть текстовое поле Text1
у него есть событие LostFocus - потеря фокуса и GotFocus - получение фокуса
далее на это события вешаем такой код:

Private Sub Text1_LostFocus()
If IsNumeric(Text1.Text) = False Then
Text1.SetFocus '<заместо этого может быть и сообщение, но оно просто возвращает фокус обратно в текстовое поле

End If
End Sub

Private Sub Text1_GotFocus()
'эта процедура сработает тогда когда поле получит фокус
'выделение текста
Text1.SelStart = 0 ' от начала
Text1.SelLength = Len(Text1.Text) 'и до конца
'при вводе нового значения, старое стирается
End Sub

смысл, человек попав в поле, не выйдет из него до тех пор пока не введет число
согласен, не гумано... )))
Ответ отправил: MMAX (статус: 2-ой класс)
Ответ отправлен: 28.02.2008, 15:16
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо, всё получилось!

Отвечает: Черников Игорь Владимирович
Здравствуйте, Красильников И.П.!
Вот Ваше приложение
Удачи!

Приложение:

---------
От каждого по способностям, каждому по труду

Ответ отправил: Черников Игорь Владимирович (статус: 10-ый класс)
Ответ отправлен: 28.02.2008, 16:40
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Вопрос № 125.217
Здравствуйте!
Подскажите пожалуйста макрос Excel для выяснения знака зодиака:
есть ячейки даты рождения (число, месяц, год).
Спасибо.
Отправлен: 28.02.2008, 08:38
Вопрос задал: Какаблишвили Игорь Валикович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Megaloman
Здравствуйте, Какаблишвили Игорь Валикович!
вопрос № 119761 - я отвечал на похожий вопрос. Можно прекрасно обойтись без макросов.

Решение 1.

Форматируем столбец A и B как числовой с двумя десятичными знаками,
для наглядности в формате 00.00
Колонку С как текстовую.

В таблице занесем в колонках A,B,C начиная с первой строки значения (A1=01.01 и т д)

01.01 01.19 Козерог
01.20 02.18 Водолей
02.19 03.20 Рыбы
03.21 04.21 Овен
04.22 05.21 Телец
05.22 06.21 Близнецы
06.22 07.22 Рак
07.23 08.23 Лев
08.24 09.22 Дева
09.23 10.22 Весы
10.23 11.21 Скорпион
11.22 12.21 Стрелец
12.22 12.31 Козерог

Колонку E форматируем как дату, туда заносим даты, для которой определяем знак зодиака
Для определенности я начал с E1=29.07.1955

Тогда в F1 напишем формулу
=ВЫБОР(ПОИСКПОЗ(МЕСЯЦ(E1)+ДЕНЬ(E1)/100;$A$1:$A$13;1);$C$1;$C$2;$C$3;$C$4;$C$5;$C$6;$C$7;$C$8;$C$9;$C$10;$C$11;$C$12;$C$13)
и получим наименование знака зодиака для E1

Формула нормально размножается на остальные ячейки F, если даты расположены в E
Очевидно, колонка B в вычислениях не участвует и приводится как справочная.

Предупреждение! Будьте уверены, что Вы правильно ставите разделительные знаки для чисел и дат (запятые или точки). У меня настроены на точки.
Это зависит от Ваших региональных настроек.
В Win XP
Мой комп - Панель управления - Язык и регион станд - Рег параметры - настройка - числа - посмотрите, какой разделитель целой и дробной части.
Мой комп - Панель управления - Язык и регион станд - Рег параметры - настройка - дата - посмотрите, какой разделитель компонентов даты.

У меня Win XP и Office XP

Решение 2
Можно моё же решение 1 переписать, вообще ничего предварительно не надо делать.
Допустим, в A1 дата, тогда, чтобы определить знак зодиака, пишем формулу:
=ВЫБОР(ПОИСКПОЗ(МЕСЯЦ(A1)+ДЕНЬ(A1)/100;{1.01;1.20;2.19;3.21;4.22;5.22;6.22;7.23;8.24;9.23;10.23;11.22;12.22};1);"Козерог";"Водолей";"Рыбы";"Овен";"Телец";"Близнецы";"Рак";"Лев";"Дева";"Весы";"Скорпион";"Стрелец";"Козерог")

Только одна загвоздка- в разных книгах даты зодиака разные :-(

Решение 3
Если Вам принципиально важно, чтобы задача решалась макросом - пишите в форум, сделаю быстро.
---------
Нет времени на медленные танцы!
Ответ отправил: Megaloman (статус: Студент)
Ответ отправлен: 28.02.2008, 09:51
Оценка за ответ: 5


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.71 от 27.02.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное