Private Sub Workbook_Open()
n = Sheets.Count
For i = 1 To n
Worksheets(i).Protect Password:="xxx", UserInterfaceOnly:=True
Next
UserForm1.Show
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Worksheets("Запуск" .Visible = xlSheetVisible 'делает видимым только 1 лист, в моем случае с именем "Запуск"
n = Sheets.Count
For i = 2 To n
Worksheets(i).Visible = xlSheetVeryHidden
Next
End Sub
xxx - пароль на защиту всей книги от редактирования, если вам нужен только просмотр
Код на форме:
Private Sub CommandButton1_Click()
If TextBox1.Text = "Gosha" Then
UserForm1.Hide
MsgBox "Привет, Гоша!"
Worksheets("Гоша" .Visible = True 'есть некий лист для Гоши и только он становится видимым
Else:
If TextBox1.Text = "Lena" Then
MsgBox "Привет, Лена!"
Worksheets("Лена" .Visible = True 'есть некий лист для Лены и только он становится видимым
Else: MsgBox "Введен неверный пароль"
End If ' можно добавить сколько хочешь вариантов
End If
End Sub
Соответственно, они могут работать на разных листах, а это все будет сводиться в один, который как раз и нужен создателю файла.
Excel 2007 стал выдавать ошибку, если долго работать в файле и не сохранять, при нажатие иконки "Сохранить" выскакивает окно: приносим извинения за неудобство и т.д. и типа поставьте галочку восстановить или нет документы. Вне зависимости от моего выбора (как правило, жму не восстанавливать) у меня в папке с файлом появляется вот такой пустой файл и причем данные файлы не удаляются даже после перезагрузки. Как быть? Можно ли их удалить? И вообщем может кто сталкивался, в чем причина? Файл с макросами, если это важно.
Максим Зеленский пишет: Вариантов 2 - либо у Вас есть заранее понятный список полей в диалоговом окне для каждого листа, которые вы сами запихнете в макрос.
k61, спасибо, но не совсем понятно толк от такого диалогового окна, мне необходимо, чтобы при выборе определенного месяца, данные вводились именно в столбец этого месяца. То есть, то что вы предложили, но теперь после месяца вылазила бы форма с необходимыми для заполнения строчками и после ввода в эти ячейки чисел, они отразились именно в столбце выбранного месяца
Добрый день. Помогите, пожалуйста, хочу автоматизировать ввод данных в отчет. Есть файл с множеством аналогичных листов. Нужен макрос такой, чтобы, при переходе на лист он автоматически запускался, спрашивал какой месяц заполняем и выдавал диалоговое окно для тех данных которые необходимо ввести (ну допустим я сама укажу в этом макросе все те строки которые меня интересует; например, в приложенном файле, все строчки кроме "Итого" , и введенные данные автоматически подтягивались в нужные ячейки в нужном месяце. На каждом листе нужно ввести данные с разных строчек, т.е. грубо говоря, на каждый лист будет необходим новый макрос, но интересует так чтобы диалоговое окно на каждом листе запускалось сразу при нажатии на этот лист. И еще один момент, чтобы в диалоговом окне была кнопочка "Просмотр", позволяющая закрыть данное диалоговое окно, если сейчас нужно только просмотреть, а не вводить данные. Немного запутанно, но надеюсь суть донесла. Заранее спасибо за помощь