Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/43: Рейтинг темы: голосов - 43, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25
1

Программно открыть книгу и форму в ней

19.04.2012, 14:16. Показов 8446. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте, токая проблема: Есть книга открываю книгу, вылезает форма типа "начать новый рабочий день?" и 2 кнопки "да" и "нет", при нажатие "да" книга сохраняется в определенную папку и открывается другая форма! Здесь всё понятно!
проблема в другом при нажатие кнопки "Нет" открывается другая книга(уже созданная в этом рабочем дне и с именем текущая дата) так вот! Потом в этой книге запускается форма а самая первая книга закрывается! И работать надо с книгой которая открылась!
У меня это не получается! Т.е. если я закрываю книгу форма на другой не запускается и наоборот Если я сначала запускаю форму не закрывается первая книга! Как быть? Подскажите?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2012, 14:16
Ответы с готовыми решениями:

Как открыть книгу (Excel) из VBA и при этом отключить запуск макросов в ней
Есть самостоятельный документ (книга Excel с запуском макроса на открытие этой книги) - нужно из...

Программно создать форму, кнопки на ней и сохранить в проекте
Если возможно, то хотелось бы иметь код для простенького примера по этому запросу

Программно открыть форму, ввести в неё текст
здравствуйте Option Explicit Dim ShellWindows As New ShellWindows Dim WithEvents WebBrowser As...

Добавление введеного пользователем слова в книгу, если его в ней нет
Доброго времени суток! Как сделать так, чтобы введенное пользователем слово добавлялось в книгу,...

33
15153 / 6426 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
19.04.2012, 14:48 2
Visual Basic
1
2
Shell "cmd /c c:\temp\Другая_книга.xls"
ThisWorkbook.Close 0
Запуск формы в другой книге сделайте автоматическим, как в этой книге.
1
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25
19.04.2012, 14:53  [ТС] 3
Цитата Сообщение от Казанский Посмотреть сообщение
Запуск формы в другой книге сделайте автоматическим, как в этой книге.
книга то одна и сначала запускается другая форма где нужно выбрать начать новый день да и нет
0
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25
19.04.2012, 15:54  [ТС] 4
Выкладываю пример
Вложения
Тип файла: rar Штрих (version 2.1.10).rar (94.2 Кб, 49 просмотров)
0
15153 / 6426 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
19.04.2012, 17:26 5
Я привел Вам пример, как сделать это:
Цитата Сообщение от Ufo_log Посмотреть сообщение
проблема в другом при нажатие кнопки "Нет" открывается другая книга(уже созданная в этом рабочем дне и с именем текущая дата) так вот! Потом в этой книге запускается форма а самая первая книга закрывается! И работать надо с книгой которая открылась!
То есть открыть другую книгу и одновременно закрыть книгу, в которой находится макрос.

Теперь Вы хотите, чтобы при открывании книги запускалась та или другая форма в зависимости от того, как эта книга была открыта - так, что ли?
То есть при открывании обычным способом - Форма 3, а при открывании из другого файла - Форма 1? Эту информацию можно передать через реестр, допустим время перед использованием Shell. В процедуре Workbook_Open() вновь открытой книги проверять время: если прошло менее 5 секунд (например), то считать, что книга открыта из другой книги.
Почитайте про SaveSetting, GetSetting.
1
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25
20.04.2012, 10:53  [ТС] 6
Ситуация такая: этот файл EXCEL "Штрих" лежит на раб столе утром его запускают и соответственно он сохраняется в папку на диске С и в нем работают и заполняют его! Потом уходят на обед всё сохраняют и выключают! Пришли с обеда опять открывают с раб стола Excel "Штрих" и выбирают не начинает новый раб день и соответственно должна открыться уже созданная сегодня екселька и запуститься там форма а "Штрих" должен быть закрыт! Вот это и не получается!((
0
210 / 96 / 6
Регистрация: 23.07.2010
Сообщений: 235
20.04.2012, 18:13 7
Так а почему в Штрихе не вести учет созданных книг, или хотя-бы путь к последней книге. Нажимаешь "Нет" и открывается нужная книга, а Штрих закрывается. Нажимаешь Да в Штрих перезаписывается путь к последней книге. Создается новая. Штрих закрывается.
1
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25
23.04.2012, 10:04  [ТС] 8
Всё так и есть! Просто нужно чтобы в открывшийся книги,если в Шрих нажать нет то открывается книга, Штрих закрывалась а форма в открывшийся книги запускалась это и не получается!
0
210 / 96 / 6
Регистрация: 23.07.2010
Сообщений: 235
23.04.2012, 10:33 9
У тебя в коде Private Sub CommandButton2_Click()

строчка
Visual Basic
1
Workbooks("k &.xls").Close
должна выглядеть
Visual Basic
1
Workbooks("k" & ".xls").Close
Добавлено через 4 минуты
Не понятно откуда взялась "Книга1" и зачем она
Visual Basic
1
Destination:=Workbooks("Книга1.xls").Sheets("Лист1").Columns("A:II")
0
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25
23.04.2012, 10:45  [ТС] 10
я хотел при нажатии кнопки открыть другую книгу(с именем текущая дата) там запустить форму а Штрих закрыть не получилась тогда решил пойти другим путем всё скопировать с книги с именем текущая дата потом удалить эту книгу и Штрих уже пере сохранить с именем текущая дата и запустить в ней форму 1 тоже не получилось(
но вот проблема так и осталась(
0
210 / 96 / 6
Регистрация: 23.07.2010
Сообщений: 235
23.04.2012, 10:58 11
Создай в книге (текущая дата) макрос показа формы

Visual Basic
1
2
3
Sub pokaz()
UserForm1.Show
End Sub
В "Штрих" добавь макрос открывающий форму в той книге

Visual Basic
1
2
3
Sub open_form()
Application.Run ("Штрих.xls!Module1.Pokaz")
End Sub
1
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25
23.04.2012, 11:37  [ТС] 12
На каком этапе открывать форму? После открытия книги текущая дата?
И может быть
Visual Basic
1
Application.Run (" книга текущая дата.xls!Module1.Pokaz")
И на каком этапе можно будет закрыть книгу штрих?
0
210 / 96 / 6
Регистрация: 23.07.2010
Сообщений: 235
23.04.2012, 12:17 13
правильно подправил.
сначала откроешь книгу "текущая дата". открытие формы можно было б и автоматическим сделать, но если хочешь её вызывать, то вызываешь после открытия. После того как всё открыл, закрываешь файл "Штрих".

Добавлено через 10 минут
У тебя ещё проблема может быть в том, что формы у тебя модальные:
В Properties формы укажи ShowModal = False. Тогда даже при открытой форме ты сможешь переходить по листам и книгам.
0
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25
23.04.2012, 12:19  [ТС] 14
Счас попробую а Про формы знаю! Это чтоб пользователь как раз и не перемещался по листам что ни чего не менял и ни куда не переходил
0
210 / 96 / 6
Регистрация: 23.07.2010
Сообщений: 235
23.04.2012, 12:27 15
если форма не закрыта, то это может и не позволять закрыть/открыть книгу.
0
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25
23.04.2012, 13:28  [ТС] 16
Не получилось((((( даже поставил ShowModal = False Штрих закрывается! А в книге текущая дата не открывается форма(
0
210 / 96 / 6
Регистрация: 23.07.2010
Сообщений: 235
23.04.2012, 13:29 17
так ты перед закрытием Штриха форму открывай
0
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25
23.04.2012, 13:34  [ТС] 18
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub CommandButton2_Click()
 
Dim oFileSystemObject As Object
Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
     If oFileSystemObject.FileExists("C:\temp\" & "Êâèòàíöèè_" & Day(Now) & "_" & Month(Now) & "_" & Year(Now) & "\" & Day(Now) & "_" & Month(Now) & "_" & Year(Now) & ".xls") = False Then
MsgBox "Â ýòîò äåíü íåáûëî ñîçäàííûõ ôàéëîâ"
    Else
Workbooks.Open ("C:\temp\" & "Êâèòàíöèè_" & Day(Now) & "_" & Month(Now) & "_" & Year(Now) & "\" & Day(Now) & "_" & Month(Now) & "_" & Year(Now) & ".xls")
Application.Run (Day(Now) & "_" & Month(Now) & "_" & Year(Now) & ".xls!Module1.Pokaz")
k = "Øòðèõ (version 2.1.10)"
Workbooks("k" & ".xls").Close
 
 
End If
end sub
0
210 / 96 / 6
Регистрация: 23.07.2010
Сообщений: 235
23.04.2012, 13:36 19
А почему
Цитата Сообщение от Ufo_log Посмотреть сообщение
".xls.xls!Module1.Pokaz"
два раза расширение
0
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25
23.04.2012, 13:37  [ТС] 20
Цитата Сообщение от Fedogor Посмотреть сообщение
два раза расширение
Исправил не помагло
0
23.04.2012, 13:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2012, 13:37
Помогаю со студенческими работами здесь

Как открыть книгу без выполнения макросов
Помогите открыть файл Excel vba, я туда вписала код: на закрытие программы

При открытии книги, программно загнать IP адрес открывшего книгу компьютера?
Как при открытии книги, программно загнать IP адрес открывшего книку компьютера (файл находится на...

Открыть несколько файлов *.xls и вернуться в первоначальную книгу
Проблема в следующем. В книге 1 - модуль с процедурами для обработки файлов. Как с этой книги...

Как открыть книгу .xls в 30 МБ, закрывался диспетчером задач.
К таблице .xls привязал модуль, в принципе прописывает формулы в листы. При пробе видно слишком...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru