Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Запрос фамилии при запуске файла - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запрос фамилии при запуске файла (Макросы/Sub)
Запрос фамилии при запуске файла
Salvian55 Дата: Вторник, 12.11.2019, 08:32 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте Уважаемые гуру Excel!
Необходим макрос при первом открытии файла выходит InputBox с запросом Фамилии студента. Далее записываем данные в ячейку на скрытом листе (например User). Сохраняем файл. При втором открытии (если данные уже есть) сообщаем, что файл создан Фамилией это студента, кнопочка "Окей" и он может приступать к редактированию данных на других листах, если нет, то опять запрос Фамилии.
 
Ответить
СообщениеЗдравствуйте Уважаемые гуру Excel!
Необходим макрос при первом открытии файла выходит InputBox с запросом Фамилии студента. Далее записываем данные в ячейку на скрытом листе (например User). Сохраняем файл. При втором открытии (если данные уже есть) сообщаем, что файл создан Фамилией это студента, кнопочка "Окей" и он может приступать к редактированию данных на других листах, если нет, то опять запрос Фамилии.

Автор - Salvian55
Дата добавления - 12.11.2019 в 08:32
krosav4ig Дата: Среда, 13.11.2019, 02:21 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2211
Репутация: 919 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте [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
[/vba]Здравствуйте


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте [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
[/vba]Здравствуйте

Автор - krosav4ig
Дата добавления - 13.11.2019 в 02:21
Salvian55 Дата: Среда, 13.11.2019, 09:08 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Большое Спасибо krosav4ig - работает..
 
Ответить
СообщениеБольшое Спасибо krosav4ig - работает..

Автор - Salvian55
Дата добавления - 13.11.2019 в 09:08
Salvian55 Дата: Четверг, 14.11.2019, 11:06 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
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]
К сообщению приложен файл: 1529436.ods(3.0 Kb)


Сообщение отредактировал Salvian55 - Четверг, 14.11.2019, 11:48
 
Ответить
Сообщение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]

Автор - Salvian55
Дата добавления - 14.11.2019 в 11:06
китин Дата: Четверг, 14.11.2019, 11:30 | Сообщение № 5
Группа: Модераторы
Ранг: Экселист
Сообщений: 5968
Репутация: 927 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
Salvian55, - Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
СообщениеSalvian55, - Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)

Автор - китин
Дата добавления - 14.11.2019 в 11:30
RAN Дата: Четверг, 14.11.2019, 12:06 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5193
Репутация: 1045 ±
Замечаний: 0% ±

2010
А как сделать чтобы это работало в Libreoffice Calc

Переписать сей код с VBA на OpenBasic.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
А как сделать чтобы это работало в Libreoffice Calc

Переписать сей код с VBA на OpenBasic.

Автор - RAN
Дата добавления - 14.11.2019 в 12:06
Salvian55 Дата: Четверг, 14.11.2019, 12:22 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Помогите переписать! Знал бы и переписал! Просто у нас в универе есть классы с MS и LO!


Сообщение отредактировал Salvian55 - Четверг, 14.11.2019, 12:31
 
Ответить
СообщениеПомогите переписать! Знал бы и переписал! Просто у нас в универе есть классы с MS и LO!

Автор - Salvian55
Дата добавления - 14.11.2019 в 12:22
bmv98rus Дата: Четверг, 14.11.2019, 12:51 | Сообщение № 8
Группа: Проверенные
Ранг: Участник клуба
Сообщений: 2785
Репутация: 479 ±
Замечаний: 0% ±

Excel 2013/2016
Переписать сей код с VBA на OpenBasic.

Не переписать а убрать то что не совсем стандартно
[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]

Закоментированы сохранения и закрыте, для отладки.
К сообщению приложен файл: Copy_of_1272.xlsm(18.9 Kb)


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Четверг, 14.11.2019, 12:52
 
Ответить
Сообщение
Переписать сей код с VBA на OpenBasic.

Не переписать а убрать то что не совсем стандартно
[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
Дата добавления - 14.11.2019 в 12:51
Salvian55 Дата: Четверг, 14.11.2019, 13:30 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
СПСБ! Запрос на фамилию работает, лист не прячет. Но! Пишет в лист Sheet4 При повторном открытии нет Msg с Фамилией студента.....
 
Ответить
СообщениеСПСБ! Запрос на фамилию работает, лист не прячет. Но! Пишет в лист Sheet4 При повторном открытии нет Msg с Фамилией студента.....

Автор - Salvian55
Дата добавления - 14.11.2019 в 13:30
bmv98rus Дата: Четверг, 14.11.2019, 13:51 | Сообщение № 10
Группа: Проверенные
Ранг: Участник клуба
Сообщений: 2785
Репутация: 479 ±
Замечаний: 0% ±

Excel 2013/2016
Я собственно только подправил код, чтоб он работал независимо от того в каком приложении работает. Остальное сами там еще [A1] нужно заменить а если лист создается, то первично надо обработать ошибку.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Четверг, 14.11.2019, 14:32
 
Ответить
СообщениеЯ собственно только подправил код, чтоб он работал независимо от того в каком приложении работает. Остальное сами там еще [A1] нужно заменить а если лист создается, то первично надо обработать ошибку.

Автор - bmv98rus
Дата добавления - 14.11.2019 в 13:51
Salvian55 Дата: Четверг, 14.11.2019, 14:12 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
понятно что не скрыт... а пример чтобы работало в ods можно сварганить - втыкаю меняю - одни дебаги - заранее спасибо...??


Сообщение отредактировал Salvian55 - Четверг, 14.11.2019, 14:12
 
Ответить
Сообщениепонятно что не скрыт... а пример чтобы работало в ods можно сварганить - втыкаю меняю - одни дебаги - заранее спасибо...??

Автор - Salvian55
Дата добавления - 14.11.2019 в 14:12
bmv98rus Дата: Четверг, 14.11.2019, 14:34 | Сообщение № 12
Группа: Проверенные
Ранг: Участник клуба
Сообщений: 2785
Репутация: 479 ±
Замечаний: 0% ±

Excel 2013/2016
ODS - зачем? Libre прекрасно справится с XLSM


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеODS - зачем? Libre прекрасно справится с XLSM

Автор - bmv98rus
Дата добавления - 14.11.2019 в 14:34
Salvian55 Дата: Четверг, 14.11.2019, 15:04 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Спасибо - записывает, справляется но не выводит то что сделано в MS Offise, спрятать можно, знаю - а вот как в первом посте .. фальлик....
К сообщению приложен файл: 5051929.xlsm(17.5 Kb)
 
Ответить
СообщениеСпасибо - записывает, справляется но не выводит то что сделано в MS Offise, спрятать можно, знаю - а вот как в первом посте .. фальлик....

Автор - Salvian55
Дата добавления - 14.11.2019 в 15:04
bmv98rus Дата: Четверг, 14.11.2019, 15:25 | Сообщение № 14
Группа: Проверенные
Ранг: Участник клуба
Сообщений: 2785
Репутация: 479 ±
Замечаний: 0% ±

Excel 2013/2016
Salvian55, ну не переваривает Libre Evaluate записанный через [ ]


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеSalvian55, ну не переваривает Libre Evaluate записанный через [ ]

Автор - bmv98rus
Дата добавления - 14.11.2019 в 15:25
Salvian55 Дата: Пятница, 15.11.2019, 15:33 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Так и не получилось!!!!!
 
Ответить
СообщениеТак и не получилось!!!!!

Автор - Salvian55
Дата добавления - 15.11.2019 в 15:33
Salvian55 Дата: Понедельник, 18.11.2019, 10:38 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Увы - Нет!
 
Ответить
СообщениеУвы - Нет!

Автор - Salvian55
Дата добавления - 18.11.2019 в 10:38
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запрос фамилии при запуске файла (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2019 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!