Доброго дня, нужна помощь ??? знающих людей. Суть в следующем. Отправляю файл в компании, при первом открытии файла (файл шаблон) компанией, выскакивает окно: введите название компании. Введенные данные в окно, отображаются в ячейку B1 файла. В последующем, ячейка B1 не изменяется и при повторном открытии файла, данное окно не появляется, так как название компании уже введено ранее. Есть условие, если компания не введет название в окно при первом запуске, данные в файл не вносятся.
файл-пример, согласно пункту 2 правил форум, помог бы с решением вопроса
Цитата: boa от 02.03.2018, 02:17
файл-пример, согласно пункту 2 правил форум, помог бы с решением вопроса
Спасибо, за активность
Как вариант, открывать книгу в чтении, если не введено значение "имя компании"
в модуле 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
Не нужно бездумно копировать сообщение. Цитата - совсем другое [МОДЕРАТОР]
Не совсем работает как надо, но спасибо. Либо я что-то не то делаю, так как Введите название компании появляется постоянно при открытии файла
Можно добавить проверку если ячейка пустая, то выводить сообщение
if Me.Sheets("Service").Range("B1") = "" then
...
end if
Спасибо за мысль ???, отредактировал макрос, вот что получилось:
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
Теперь все работает как надо
если без вывода сообщения "Вы ничего не ввели", то можно еще так:
Private Sub Workbook_Open()
Do While Me.Sheets("Service").Range("B1") = ""
Me.Sheets("Service").Range("B1") = InputBox("Введите название компании")
Loop
End Sub
boa, Do/Loop - цикл. Здесь его применение неоправдано. Достаточно обычного условия в If
vikttur, а возвращение на метку, это не цикл?
Прошу прощения, не вник в вопрос. Понял, что достаточно проверки, а нужно, чтобы значение было обязательно записано.