Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: Владимир Попов от 01.03.2018, 16:20

Название: Ввод значения в ячейку при первом запуске
Отправлено: Владимир Попов от 01.03.2018, 16:20
Доброго дня, нужна помощь  ??? знающих людей. Суть в следующем. Отправляю файл в компании, при первом открытии файла (файл шаблон) компанией, выскакивает окно: введите название компании. Введенные данные в окно, отображаются  в ячейку B1 файла. В последующем, ячейка B1 не изменяется и при повторном открытии файла, данное окно не появляется, так как название компании уже введено ранее. Есть условие, если компания не введет название в окно при первом запуске, данные в файл не вносятся.
Название: Re: Ввод значения в ячейку при первом запуске
Отправлено: boa от 02.03.2018, 02:17
файл-пример, согласно пункту 2 правил форум, помог бы с решением вопроса
Название: Re: Ввод значения в ячейку при первом запуске
Отправлено: Владимир Попов от 02.03.2018, 10:06
Цитата: boa от 02.03.2018, 02:17
файл-пример, согласно пункту 2 правил форум, помог бы с решением вопроса

Спасибо, за активность
Название: Re: Ввод значения в ячейку при первом запуске
Отправлено: boa от 05.03.2018, 12:59
Как вариант, открывать книгу в чтении, если не введено значение "имя компании"
в модуле ThisWorkbook впишите код

Private Sub Workbook_Open()
    Dim Nazvanie$
    Nazvanie = InputBox("Введите название компании:", , Me.Sheets("Service").Range("B1"))
    If Len(Nazvanie) > 0 Then
        Me.Sheets("Service").Range("B1").Value = Nazvanie
    Else
        Me.ChangeFileAccess xlReadOnly
    End If
End Sub
Название: Re: Ввод значения в ячейку при первом запуске
Отправлено: Владимир Попов от 05.03.2018, 16:01
Не нужно бездумно копировать сообщение. Цитата - совсем другое [МОДЕРАТОР]

Не совсем работает как надо, но спасибо. Либо я что-то не то делаю, так как Введите название компании появляется постоянно при открытии файла
Название: Re: Ввод значения в ячейку при первом запуске
Отправлено: boa от 05.03.2018, 19:15
Можно добавить проверку если ячейка пустая, то выводить сообщение
if Me.Sheets("Service").Range("B1") = "" then
...
end if
Название: Re: Ввод значения в ячейку при первом запуске
Отправлено: Владимир Попов от 06.03.2018, 10:03
Спасибо за мысль  ???, отредактировал макрос, вот что получилось:
Private Sub Workbook_Open()
Dim StrName As String
If Me.Sheets("Service").Range("B1") = "" Then
Метка:    StrName = InputBox("Введите название компании")
          If StrName = "" Then
          MsgBox "Вы ничего не ввели"
GoTo Метка
End If
Sheets("Service").Range("B1") = StrName
End If
End Sub
Теперь все работает как надо
Название: Re: Ввод значения в ячейку при первом запуске
Отправлено: boa от 06.03.2018, 13:08
если без вывода сообщения "Вы ничего не ввели", то можно еще так:

Private Sub Workbook_Open()
    Do While Me.Sheets("Service").Range("B1") = ""
        Me.Sheets("Service").Range("B1") = InputBox("Введите название компании")
    Loop
End Sub
Название: Re: Ввод значения в ячейку при первом запуске
Отправлено: vikttur от 06.03.2018, 16:11
boa, Do/Loop - цикл. Здесь его применение неоправдано. Достаточно обычного условия в  If
Название: Re: Ввод значения в ячейку при первом запуске
Отправлено: boa от 06.03.2018, 17:59
vikttur, а возвращение на метку, это не цикл?
Название: Re: Ввод значения в ячейку при первом запуске
Отправлено: vikttur от 07.03.2018, 12:26
Прошу прощения, не вник в вопрос. Понял, что достаточно проверки, а нужно, чтобы значение было обязательно записано.