Здравствуйте Уважаемые гуру Excel! Необходим макрос при первом открытии файла выходит InputBox с запросом Фамилии студента. Далее записываем данные в ячейку на скрытом листе (например User). Сохраняем файл. При втором открытии (если данные уже есть) сообщаем, что файл создан Фамилией это студента, кнопочка "Окей" и он может приступать к редактированию данных на других листах, если нет, то опять запрос Фамилии.
Здравствуйте Уважаемые гуру Excel! Необходим макрос при первом открытии файла выходит InputBox с запросом Фамилии студента. Далее записываем данные в ячейку на скрытом листе (например User). Сохраняем файл. При втором открытии (если данные уже есть) сообщаем, что файл создан Фамилией это студента, кнопочка "Окей" и он может приступать к редактированию данных на других листах, если нет, то опять запрос Фамилии.Salvian55
Private Sub Workbook_Open() Dim SName If [type(User!A1)] <> 2 Then Do SName = Application.InputBox("Введите фамилию") If TypeName(SName) = "String" And Not IsNumeric(SName) Then Exit Do SName = False Loop While MsgBox("Повторить ввод?", 4) = 6 If SName = False Then Me.Close False Else With Me.Sheets.Add .Visible = 2: .Name = "User" .[A1] = SName: Me.Save End With End If Else MsgBox [User!A1] End If End Sub
[/vba]Здравствуйте
Здравствуйте [vba]
Код
Private Sub Workbook_Open() Dim SName If [type(User!A1)] <> 2 Then Do SName = Application.InputBox("Введите фамилию") If TypeName(SName) = "String" And Not IsNumeric(SName) Then Exit Do SName = False Loop While MsgBox("Повторить ввод?", 4) = 6 If SName = False Then Me.Close False Else With Me.Sheets.Add .Visible = 2: .Name = "User" .[A1] = SName: Me.Save End With End If Else MsgBox [User!A1] End If End Sub
krosav4ig, А как сделать чтобы это работало в Libreoffice Calc? Ругается начиная с 5-ой строки Вот макрос в LO Calc:
[vba]
Код
Rem Attribute VBA_ModuleType=VBADocumentModule Option VBASupport 1 Private Sub Workbook_Open() Dim SName If [type(User!A1)] <> 2 Then Do SName = Application.InputBox("Введите Вашу фамилию") If TypeName(SName) = "String" And Not IsNumeric(SName) Then Exit Do SName = False Loop While MsgBox("Повторить ввод?", 4) = 6 If SName = False Then Me.Close False Else With Me.Sheets.Add .Visible = 2: .Name = "User" .[A1] = SName: Me.Save End With End If Else Text = Sheets("User").Range("A1").Value MsgBox "Фамилия: " & [Text], vbOKOnly, "Внимание! Пользователь документа" End If End Sub
[/vba]
krosav4ig, А как сделать чтобы это работало в Libreoffice Calc? Ругается начиная с 5-ой строки Вот макрос в LO Calc:
[vba]
Код
Rem Attribute VBA_ModuleType=VBADocumentModule Option VBASupport 1 Private Sub Workbook_Open() Dim SName If [type(User!A1)] <> 2 Then Do SName = Application.InputBox("Введите Вашу фамилию") If TypeName(SName) = "String" And Not IsNumeric(SName) Then Exit Do SName = False Loop While MsgBox("Повторить ввод?", 4) = 6 If SName = False Then Me.Close False Else With Me.Sheets.Add .Visible = 2: .Name = "User" .[A1] = SName: Me.Save End With End If Else Text = Sheets("User").Range("A1").Value MsgBox "Фамилия: " & [Text], vbOKOnly, "Внимание! Пользователь документа" End If End Sub
Не переписать а убрать то что не совсем стандартно [vba]
Код
Rem Attribute VBA_ModuleType=VBADocumentModule Option VBASupport 1
Private Sub Workbook_Open() Dim SName If Range("User!A1") = "" Then Do SName = InputBox("Введите Вашу фамилию") If Not IsNumeric(SName) Then Exit Do SName = False Loop While MsgBox("Повторить ввод?", 4) = 6 If SName = False Then 'Me.Close False Else With Me.Sheets.Add .Visible = 2: .Name = "User" .[A1] = SName 'Me.Save End With End If Else Text = Range("User!A1").Value MsgBox "Фамилия: " & Text, vbOKOnly, "Внимание! Пользователь документа" End If End Sub
[/vba]
Закоментированы сохранения и закрыте, для отладки.
Не переписать а убрать то что не совсем стандартно [vba]
Код
Rem Attribute VBA_ModuleType=VBADocumentModule Option VBASupport 1
Private Sub Workbook_Open() Dim SName If Range("User!A1") = "" Then Do SName = InputBox("Введите Вашу фамилию") If Not IsNumeric(SName) Then Exit Do SName = False Loop While MsgBox("Повторить ввод?", 4) = 6 If SName = False Then 'Me.Close False Else With Me.Sheets.Add .Visible = 2: .Name = "User" .[A1] = SName 'Me.Save End With End If Else Text = Range("User!A1").Value MsgBox "Фамилия: " & Text, vbOKOnly, "Внимание! Пользователь документа" End If End Sub
[/vba]
Закоментированы сохранения и закрыте, для отладки.bmv98rus
Я собственно только подправил код, чтоб он работал независимо от того в каком приложении работает. Остальное сами там еще [A1] нужно заменить а если лист создается, то первично надо обработать ошибку.
Я собственно только подправил код, чтоб он работал независимо от того в каком приложении работает. Остальное сами там еще [A1] нужно заменить а если лист создается, то первично надо обработать ошибку.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Сообщение отредактировал bmv98rus - Четверг, 14.11.2019, 14:32