Страницы: 1
RSS
Вызов Input box по нажатию кнопки в диапазоне
 
Уважаемые! Пожалуйста, Подскажите код для кнопки
Commandbutton_click() который бы вызывал input box для ввода числа только в пересечении установленного диапазона.

т.е. Имеем диапазоны A1:A15 C1:C15 и т.д.
По нажатию кнопки в этих диапазонах input box появляется, а ВНЕ, кнопка становится "серой" (enabled = false если не ошибаюсь)
 
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:A15, C1:C15")) Is Nothing Then
        CommandButton1.Enabled = True
    Else: CommandButton1.Enabled = False
    End If
End Sub

Private Sub CommandButton1_Click()
    ActiveCell = Application.InputBox("Введите число", Type:=1)
End Sub
Про число что-то я пропустил :)
Изменено: kalbasiatka - 27.08.2016 12:11:04
 
Цитата
input box для ввода числа
Код
Application.InputBox("Введите число", Type:=1)
 
Что то удалилась часть кода после изменения сообщения удалилась
 
А зачем она вам? Осталась часть, отвечающая за состояние кнопки, как и хотели. Остальное пишите для нажатия кнопки, код выше показали.
 
Напишите пожалуйста код целиком для кнопки и для inputbox, что то неполучается
 
А откуда мне знать что должно получиться?
 
Если выбрать ячейку в выбранном диапазоне, то кнопка становится enabled=true, (после ввода числа в inputbox вставляется число в ячейку)
если выбрать ячейку вне установленного диапазона, то кнопка enabled = false,
 
Поправил код выше.
 
Все работает супер. После нажатия кнопки отмена в inputbox в ячейку вставляется значение ЛОЖЬ
А так все здорово  
 
Подскажите как сделать что бы ничего не появлялось после отмены?
Изменено: alexsee - 27.08.2016 13:41:41
 
Цитата
как сделать что бы ничего не появлялось?
Код
Private Sub CommandButton1_Click()
    ActiveCell = Application.InputBox("Введите число", Type:=1)
    If ActiveCell = False Then ActiveCell = ""
End Sub
 
Все равно выскакивает, но после перемещения курсора убирается
 
Вы в код, который вам написал kalbasiatka,
вставьте строчку
Код
If ActiveCell = False Then ActiveCell = ""
Что не так?
 
Когда нажимаешь отмену или escape, промигивает ЛОЖЬ и стирается предыдущее значение
 
Цитата
и стирается предыдущее значение
Запоминайте предыдущее значение
Код
Private Sub CommandButton1_Click()
Dim iTemp As Double
   iTemp = ActiveCell
    ActiveCell = Application.InputBox("Введите число", Type:=1)
    If ActiveCell = False Then ActiveCell = iTemp
End Sub
 
Спасибо, но нет. По нажатию отмена в inputbox трёт значение а надо что бы оставляло как было
 
Цитата
По нажатию отмена в inputbox трёт значение
У меня оставляет предыдущее значение при коде в сообщении #16
 
Получается но только теперь не даёт ввести по нажатию на ок в ячейку в которой уже есть цифры
 
Цитата
не даёт ввести по нажатию на ок
Вы бы приложили свой файл с макросом, а то мы гадаем на кофейной гуще.
У меня все заносит.
 
kalbasiatka, а зачем две процедуры, зачем менять Enabled? ))
Код
Private Sub CommandButton1_Click()
    If Not Intersect(ActiveCell, Range("A1:A15, C1:C15")) Is Nothing Then ActiveCell = Application.InputBox("Введите число", Type:=1)
End Sub



 
Отлично, но продолжает выдавать ЛОЖЬ при отмене или escape.
Я тупо код в новую книгу сейчас вставил, все равно
 
Код
Private Sub CommandButton1_Click()
    If Not Intersect(ActiveCell, Range("A1:A15, C1:C15")) Is Nothing Then
        x = Application.InputBox("Введите число", Type:=1)
        If x Then ActiveCell = x
    End If
End Sub


 
Огромное Вам спасибо! Все работает супер
Страницы: 1
Наверх