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

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

Подпишитесь на рассылку новых сообщений форума через службу рассылок: Subscribe.ru

Автор Тема: Ввод значения в ячейку при первом запуске  (Прочитано 436 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Владимир Попов

  • Пользователь
  • **
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 10

Доброго дня, нужна помощь  ??? знающих людей. Суть в следующем. Отправляю файл в компании, при первом открытии файла (файл шаблон) компанией, выскакивает окно: введите название компании. Введенные данные в окно, отображаются  в ячейку B1 файла. В последующем, ячейка B1 не изменяется и при повторном открытии файла, данное окно не появляется, так как название компании уже введено ранее. Есть условие, если компания не введет название в окно при первом запуске, данные в файл не вносятся.
« Последнее редактирование: 05.03.2018, 10:11:14 от Владимир Попов »
Записан

boa

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +28/-0
  • Оффлайн Оффлайн
  • Сообщений: 501
  • Доброта спасет мир...

файл-пример, согласно пункту 2 правил форум, помог бы с решением вопроса
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Владимир Попов

  • Пользователь
  • **
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 10

файл-пример, согласно пункту 2 правил форум, помог бы с решением вопроса

Спасибо, за активность
« Последнее редактирование: 05.03.2018, 10:12:09 от Владимир Попов »
Записан

boa

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +28/-0
  • Оффлайн Оффлайн
  • Сообщений: 501
  • Доброта спасет мир...

Как вариант, открывать книгу в чтении, если не введено значение "имя компании"
в модуле 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
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Владимир Попов

  • Пользователь
  • **
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 10

Не нужно бездумно копировать сообщение. Цитата - совсем другое [МОДЕРАТОР]

Не совсем работает как надо, но спасибо. Либо я что-то не то делаю, так как Введите название компании появляется постоянно при открытии файла
« Последнее редактирование: 05.03.2018, 17:00:30 от vikttur »
Записан

boa

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +28/-0
  • Оффлайн Оффлайн
  • Сообщений: 501
  • Доброта спасет мир...

Можно добавить проверку если ячейка пустая, то выводить сообщение
if Me.Sheets("Service").Range("B1") = "" then
...
end if
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Владимир Попов

  • Пользователь
  • **
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 10

Спасибо за мысль  ???, отредактировал макрос, вот что получилось:
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
Теперь все работает как надо
« Последнее редактирование: 06.03.2018, 16:08:31 от vikttur »
Записан

boa

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +28/-0
  • Оффлайн Оффлайн
  • Сообщений: 501
  • Доброта спасет мир...

если без вывода сообщения "Вы ничего не ввели", то можно еще так:
Private Sub Workbook_Open()
    Do While Me.Sheets("Service").Range("B1") = ""
        Me.Sheets("Service").Range("B1") = InputBox("Введите название компании")
    Loop
End Sub
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

vikttur

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +47/-0
  • Оффлайн Оффлайн
  • Сообщений: 965

boa, Do/Loop - цикл. Здесь его применение неоправдано. Достаточно обычного условия в  If
Записан

boa

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +28/-0
  • Оффлайн Оффлайн
  • Сообщений: 501
  • Доброта спасет мир...

vikttur, а возвращение на метку, это не цикл?
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

vikttur

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +47/-0
  • Оффлайн Оффлайн
  • Сообщений: 965

Прошу прощения, не вник в вопрос. Понял, что достаточно проверки, а нужно, чтобы значение было обязательно записано.
Записан
 



Темы без ответов

22.05.2018 11:38 Скрипт написать который допишет данные в файл 414
03.03.2018 00:00 Подсчет отработанного времени, за исключением заранее определенных перерывов 772
14.02.2018 10:11 Подготовить читабельную отчетность по платежам 724
23.01.2018 13:46 Найти вероятность повторной покупки 704
12.01.2018 23:56 Сделать отчет на Power BI (Dashboard) 946
06.09.2017 10:43 Solver VBA не решает гиперболическое уравнение, но при этом решает гармоническое 966
17.08.2017 12:15 Гиперссылка и фильтр одновременно макрос 1264
23.05.2017 11:20 Копирование данных из одной таблицы в умную таблицу по условию 2808
15.03.2017 15:45 автозамена картинок PowerPoint 1722
11.03.2017 13:43 Изменить нумерацию страниц 1939





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.166 секунд. Запросов: 117.