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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2015, 09:41   #1
light26
 
Регистрация: 27.03.2015
Сообщений: 7
По умолчанию Как использовать inputbox для ввода значений в ячейку

Доброго времени суток, уважаемые форумчане.
Смотрел на просторах интернета возможность применения inputbox, но конкретного примера для своего случая не нашел.
Помогите изменить код макроса так, чтобы при открытии файла запрашивался ввод месяца и этот месяц вносился в ячейку В1 при нажатии ОК, а далее выполнялся остальной код. При нажатии Отмена - должен просто открыться файл.

Вот мой код
Код:
Sub Данные()
' Данные Макрос
       ActiveSheet.Unprotect
    Range("B1").FormulaR1C1 = "=TODAY()"
    Range("B1").NumberFormat = "[$-419]mmmm yyyy;@"
    ActiveSheet.Protect
    Range("C4").Select
Dim reply As Integer
    reply = MsgBox("Месяц расчетного периода указан верно?", vbYesNo, "Запрос на продолжение")
        If reply = vbYes Then
        Application.ScreenUpdating = False
    ActiveSheet.Unprotect
    Range("G4:G11").Copy
    Range("H4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("C4:C8").Copy
    Range("B4").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("C4:C8").ClearContents
    Range("C4").Select
       ActiveSheet.Protect
    Application.ScreenUpdating = True
        ElseIf reply = vbNo Then
       MsgBox "Укажите месяц отчетного периода в формате ДД-ММ-ГГ, например, 11-10-15"
       ActiveSheet.Unprotect
        Range("B1").Locked = False
        ActiveSheet.Protect
        Range("B1").Select
        End If
        End Sub
Вложения
Тип файла: zip Комуналка пример.zip (57.6 Кб, 13 просмотров)

Последний раз редактировалось light26; 28.03.2015 в 12:22. Причина: Дописан текст
light26 вне форума Ответить с цитированием
Старый 28.03.2015, 12:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну отличный пример: https://msdn.microsoft.com/ru-ru/lib...=vs.90%29.aspx
Код:
Sub Данные()
' Данные Макрос
       ActiveSheet.Unprotect
    Range("B1").value = InputBox("", "Введите номер месяца", Month(Date()), 100, 100)
  ...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.03.2015, 12:54   #3
light26
 
Регистрация: 27.03.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну отличный пример: https://msdn.microsoft.com/ru-ru/lib...=vs.90%29.aspx
Код:
Sub Данные()
' Данные Макрос
       ActiveSheet.Unprotect
    Range("B1").value = InputBox("", "Введите номер месяца", Month(Date()), 100, 100)
  ...
Простите за нескромный вопрос: а что значит 100, 100 после Month(Date()) ? И что за кавычки ""? Это обязательный аргумент?
А страничку, на которую Вы даете ссылку, я посещал. Только мой мозг не в состоянии оценить полезность изложенной там информации, т.к. мои познания VBA очень недалеко ушли от нулевых...

Последний раз редактировалось light26; 28.03.2015 в 12:57.
light26 вне форума Ответить с цитированием
Старый 28.03.2015, 12:58   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не прощу )
Я же ссыль дал на описание, чего туда заглянуть не хочешь?
Это координаты окна на экране. Можно вообще не писать ничего кроме первого параметра, остальные необязательные.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.03.2015, 13:00   #5
light26
 
Регистрация: 27.03.2015
Сообщений: 7
По умолчанию

Спасибо. Щас буду экспериментировать

А если мне нужно только кнопку ОК оставить, то также как в msgbox написать , vbYes или в inputbox по-другому?

Последний раз редактировалось Stilet; 28.03.2015 в 13:52.
light26 вне форума Ответить с цитированием
Старый 28.03.2015, 13:26   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Никак. Создавайте форму, похожую на Inputbox, но без кнопки Cancel.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 28.03.2015, 13:42   #7
light26
 
Регистрация: 27.03.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
Никак. Создавайте форму, похожую на Inputbox, но без кнопки Cancel.
Даже не знаю стоит ли пытаться Форму можно создать везде, даже в "Эта книга"?
light26 вне форума Ответить с цитированием
Старый 28.03.2015, 13:52   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
стоит ли пытаться
Я бы не пытался, нет смысла стандарты перекраивать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.03.2015, 13:54   #9
light26
 
Регистрация: 27.03.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я бы не пытался, нет смысла стандарты перекраивать.
Я уже понял
light26 вне форума Ответить с цитированием
Старый 28.03.2015, 17:43   #10
light26
 
Регистрация: 27.03.2015
Сообщений: 7
По умолчанию

Код дописал. Спасибо за помощь
light26 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие ввода данных в ячейку tae1980 Microsoft Office Excel 15 23.05.2019 15:01
формат ввода в ячейку maxvip Microsoft Office Excel 3 25.11.2014 11:25
макрос для ввода значений массива в ячейки Olya1985 Microsoft Office Excel 7 23.01.2011 19:43
Нужен Макрос для ввода данных в перую пустую ячейку диапазона valik65 Microsoft Office Excel 4 16.12.2010 16:01
Запрет ввода информации в ячейку Гошик Microsoft Office Excel 2 19.06.2010 22:50