Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2013, 20:12   #1
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию Ввод данных-только целые числа

Всем Привет!!!
Господа, подскажите.
Есть ряд диапазонов
Код:
(D3:E26, А6:А26, H14:I17 и L6:M21).Offset(iCount& * 28)
для ввода данных, данные - только целые числа.
Нужно исключить любые другие знаки, буквы, точки, запятые и т. д. только целые десятичные числа.
Спасибо.

Последний раз редактировалось valerij; 19.12.2013 в 21:02.
valerij вне форума Ответить с цитированием
Старый 19.12.2013, 20:35   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Данные-Проверка-Целое число
(2003)
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 19.12.2013, 20:50   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

необходимо установить проверку данных.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 19.12.2013, 20:56   #4
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Данные-Проверка-Целое число
(2003)
А как быть с шагом, это замучаешься вводить.

Цитата:
Сообщение от IgorGO Посмотреть сообщение
необходимо установить проверку данных.
??????????
valerij вне форума Ответить с цитированием
Старый 19.12.2013, 21:11   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
А как быть с шагом, это замучаешься вводить.
Можно так наверное
Код:
Sub Макрос1()
    With Range("D3:E26, А6:А26, H14:I17, L6:M21").Validation
        .Delete
        .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:="1", Formula2:="100"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub
2003, записано макрорекордером с небольшой правкой
===
подправил макрос
а для Offset(iCount& * 28)
Цитата:
в VBA (и не только) для этой цели придуманы циклы.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 19.12.2013 в 21:32.
VictorM вне форума Ответить с цитированием
Старый 19.12.2013, 21:19   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
А как быть с шагом, это замучаешься вводить.
в VBA (и не только) для этой цели придуманы циклы.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 19.12.2013, 23:30   #7
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
2003, записано макрорекордером с небольшой правкой
Я естественно так делал....
Вот ~ как, здесь только числа и 8 штук, если < или не цифра, сбросит.
А как к диапазонам приспособить, уже ума не хватает, бо давно ....
Код:
Dim iTarget As Range, iCell As Range
    Set iTarget = Intersect(Target, [K34:K1569])
    If Not iTarget Is Nothing Then
       iTemplate$ = Application.Rept("[0-9]", 8)
       For Each iCell In iTarget
           If Not CStr(iCell.Value) Like iTemplate$ Then
           With Application
                .EnableEvents = False
                .Undo
                .EnableEvents = True
           End With: Exit For
           End If
       Next
     End If
valerij вне форума Ответить с цитированием
Старый 20.12.2013, 19:45   #8
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Мужики, так поможете с макросом?

VictorM у тебя там ошибку вываливает на:
With Range("D3:E26, А6:А26, H14:I17, L6:M21").Validation
valerij вне форума Ответить с цитированием
Старый 20.12.2013, 19:55   #9
RAN.
Форумчанин
 
Аватар для RAN.
 
Регистрация: 05.07.2011
Сообщений: 208
По умолчанию

Без доп проверок
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If CLng(Target) <> CDbl(Target) Then
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
    End If
End Sub
ps Ну и проверка диапазонов:
Код:
If Not Intersect(Target, [K34:K1569]) Is Nothing Then Exit Sub

Последний раз редактировалось RAN.; 20.12.2013 в 20:04. Причина: PS
RAN. вне форума Ответить с цитированием
Старый 20.12.2013, 20:35   #10
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

А нельзя введенные дробные округлять до целого?
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [K34:K1569]) Is Nothing Then Exit Sub
    With Application
        .EnableEvents = False
        If IsNumeric(Target) Then
            Target = Target \ 1
        Else
            .Undo
        End If
        .EnableEvents = True
    End With
End Sub
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Множества: Даны целые числа а1,.....,Аn. Вывести на печать сообщение - имеется ли в последовательности х повторяющиеся числа lialia Паскаль, Turbo Pascal, PascalABC.NET 3 24.12.2012 21:11
Даны целые числа р и q. Получить все делители числа q, взаимно простые c г. Владан Паскаль, Turbo Pascal, PascalABC.NET 2 03.12.2012 23:39
Целые числа swatsam Общие вопросы C/C++ 3 30.12.2010 16:59
Даны натуральные числа n,p, целые числа a1 , ... ,an. Наталья111 Фриланс 10 09.11.2010 20:09
Целые числа saint0101 Помощь студентам 7 02.11.2009 14:05