Тема: Сравнить число и кратность числу

Подскажите пожалуйста пару вопросов:
1 - Есть число А и число Б. Мне надо чтобы программа проверяла, чтобы выражение А/Б давало целое натуральное число (1,2,3,4 и т.д.), а в противном случае выдавало ошибку.
2 - У меня есть текстовое поле в которе пользователь вводит число. Мне надо чтобы эти числа были не менее 50 и не более 250 (ну это не сложно) и чтобы они все были кратны 10 (а вот это не знаю как)
3 - И еще вопросик - как мне нарисовать линию, чтобы она при этом копировалась определенное количество раз с определенным шагом (программно естесвенно)
Заранее спасибо!

Re: Сравнить число и кратность числу

1,2. посмотри mod, остаток от деления.
3. Вариантов тьма: offset,(copy и move), ArrayRectangular,ArrayPolar :)

Re: Сравнить число и кратность числу

1.

if int(А/Б)=A/B Then
  .....код
Else
  Msgbox "Ошибка!"
End if

2.Проще всего вместо текстового поля использовать выпадающий список с добавленнями заранее значениями. В процедуре Private Sub UserForm_Initialize():

Dim i As Integer
ComboBox1.Style = fmStyleDropDownList
For i = 50 To 250 Step 10
  ComboBox1.AddItem i
Next i
ComboBox1.Value = 50

-и пользователь при всем желании ничего другого не введет. Свойство Style можно заранее выставить в окне свойств (вместо ComboBox1.Style = fmStyleDropDownList в коде)
Если же все таки нужен textbox, то проверять результат функцией Mod:

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
if TextBox1.Value Mod 10 <> 0 then
  Msgbox "Неверный ввод!"
  ....
End if
End Sub

3.

Sub Example_Line()
Dim lineObj As AcadLine
Dim startPoint
Dim offsetObj As Variant
Dim endPoint
Dim strPrmt As String
Dim i As Integer, N As Integer, dist As Double
N = 5: dist = 20
strPrmt = vbCr & "Укажите первую точку"
startPoint = ThisDrawing.Utility.GetPoint(Prompt:=strPrmt)
ThisDrawing.Utility.InitializeUserInput 32
endPoint = ThisDrawing.Utility.GetPoint(startPoint, "Укажите 2-ю точку")
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
For i = 1 To N
 offsetObj = lineObj.Offset(dist * i)
Next i
End Sub

4. Если б я был модератор (который раньше здесь иногда появлялся), сказал бы: "Один вопрос - одна тема!" :)

Re: Сравнить число и кратность числу

> AlexV
Ты чего это разошелся то, разогнался :)

Re: Сравнить число и кратность числу

Я в таких случаях применяю SpinButton
Рядом с textBox поставить SpinButton, со следующими свойствами:
Min - минимально допустимое значение (например, 50);
Max - максимально допустимое значение (250);
SmallChange - размер величины, на которое можно изменить значение одним щелчком (10);
Value - исходное значение, наиболее часто употребляемое значение (150).
Orientation - горизонтальное или вертикальное расположение SpinButton
Примечания:
1.    Значения Min, Max и Value должны быть целыми числами.
2.    Значение Value должно быть в пределах Min и Max
Примеры применения:
Изменение числа в TextBox на единицу, на 10, 100 и другие целые числа
Private Sub SpinButton1_Change()
    Me.txt1.text = SpinButton1.Value
End Sub
Изменение числа в TextBox на 0,1, 0,01 и другие дробные числа.
Min = 1, Max = 10, SmallChange = 1, Value = 3
Private Sub SpinButton1_Change()
    Me.txt1.text = SpinButton1.Value/10 (или 100 и т.д.)
End Sub