Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2021, 17:43   #21
Вячеслав76
Пользователь
 
Регистрация: 30.11.2020
Сообщений: 36
По умолчанию

нет. Форма вытащена просто в эксель. я не знаю как это правильно объяснить В общем, при открытии Экселя, нажав на вкладку "главная", у нее кроме стандартных команд, появилась еще кнопка "обновить". Вот нажав ее появляется "юзерформа". Кнопка "обновить" есть всегда, когда открыт эксель.
Вячеслав76 вне форума Ответить с цитированием
Старый 29.01.2021, 00:07   #22
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Вот файлы как вы описали.
В зависимости из какого из них будет запущен код - будет соответствующий макрос запущен
Вложения
Тип файла: rar пример.rar (45.6 Кб, 3 просмотров)
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 29.01.2021, 11:23   #23
Вячеслав76
Пользователь
 
Регистрация: 30.11.2020
Сообщений: 36
По умолчанию

Супер!!! Работает. Сейчас буду подгонять под себя.. Можно два уточнения?
1) Обязательно делать двойное подтверждение? (Имя макроса..., запускаю макрос). Или если убрать один запрос, то работать не будет?
2) Можно ли тут как то вписать - выполнение последовательно 2х макросов? Например, если у меня идут друг за другом Макрос_Резервы1 и Макрос_резервы2. (при обновлении файла "Резервы")

Но все равно, ОГРОМНОЕ СПАСИБО!!!!!!!!!!)))))))))))
Вячеслав76 вне форума Ответить с цитированием
Старый 29.01.2021, 11:47   #24
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

1 можно, редактируйте код по себя как хотите
2 есть реализовано, смотрите код
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 29.01.2021, 14:52   #25
Вячеслав76
Пользователь
 
Регистрация: 30.11.2020
Сообщений: 36
По умолчанию

Спасибо за помощь. Очень благодарен.
Вячеслав76 вне форума Ответить с цитированием
Старый 03.02.2021, 14:30   #26
Вячеслав76
Пользователь
 
Регистрация: 30.11.2020
Сообщений: 36
По умолчанию

Добрый день.
Помогите еще немного, пожалуйста. Прекрасно работает Ваш макрос, все супер. Немного поправил его под себя, но никак не получается сделать кнопку "Да/отмена". Попробовал несколько вариантов, но все время вылетают ошибки. Как "vbOKOnly" заменить на "vbOKCancel" и чтобы в случае отмены, появилось диалоговое окно - "обновление отменено" . И еще. Сейчас, если я хочу закрыть диалоговое окно перед выполнением макроса (по сути сделать ту же отмену), то макрос все равно выполняется. Это можно тоже "поправить"? Сейчас это выглядит так..

Sub Обновление_Зельгрос()
Dim sFileName As String
Dim sFileNameFull As String
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemO bject")
sFileNameFull = LCase(fso.GetBaseName(ActiveWorkboo k.Name))
If Len(sFileNameFull) <= 8 Then
MsgBox "С этим файлом я не работаю!", vbOKOnly
Exit Sub
End If

sFileName = Mid(sFileNameFull, 1, Len(sFileNameFull) - 8)
' MsgBox "Полное имя открытой книги: " & vbNewLine & sFileNameFull & vbNewLine & "Имя книги без даты " & vbNewLine & sFileName
sFileName = Replace(sFileName, " ", "")
Select Case sFileName
Case "остаткиинтернетлеруа"
MsgBox "Обновить остатки Леруа (Интернет) в Зельгрос?", vbOKOnly
ОстаткиИнтернетЛеруа
Case "остаткискладлеруа"
MsgBox "Обновить остатки Леруа в Зельгрос?", vbOKOnly
ОстаткиСкладЛеруа
Case "остаткипоскладусценами"
MsgBox "Обновить остатки склада в Зельгрос?", vbOKOnly
ОстаткиПоСкладуСЦенами
Case "резервы"
MsgBox "Обновить резервы в Зельгрос?", vbOKOnly
Резервы
Case Else
'MsgBox "Будет запущен макрос НеизвестныйФайл", vbOKOnly
MsgBox "Эти данные в Зельгрос не нужны"
End Select


End Sub



Private Sub ОстаткиИнтернетЛеруа()
Call Удаление_рез_Леруа_инт
Call Удаление_рез_Леруа_инт2
Call Удаление_рез_Леруа_инт3
Call Занесение_Леруа_интер_Зельгрос
End Sub

Private Sub ОстаткиСкладЛеруа()
Call Удаление_заказа_Леруа
Call Удаление_заказа_Леруа2
Call Удаление_заказа_Леруа3
Call Занесение_Леруа_Зельгрос
End Sub

Private Sub ОстаткиПоСкладуСЦенами()
Call Перенос_остатков_Зельгрос
End Sub

Private Sub Резервы()
Call Удаление_заказа
Call Резервы_Зельгрос
Call Перенос_Резервов_Зельгрос
End Sub

'Private Sub НеизвестныйФайл()
'Range("D1") = "Демонстрация работы макроса НеизвестныйФайл"
'НеизвестныйФайл2
'НеизвестныйФайл3
'End Sub

'Private Sub НеизвестныйФайл2()
'Range("D2") = "Демонстрация работы вложеного в НеизвестныйФайл "
'End Sub
'Private Sub НеизвестныйФайл3()
'Range("D3") = "Демонстрация работы вложеного 2го в НеизвестныйФайл "
'End Sub
Вячеслав76 вне форума Ответить с цитированием
Старый 03.02.2021, 14:55   #27
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

начну с простого:
Цитата:
Как "vbOKOnly" заменить на "vbOKCancel"
вместо vbOKOnly напишите vbOKCancel
заменили))
как управлять порядком выполнения кода с помощью MsgBox?
нужно не просто выполнить MsgBox, а выполнить его как функцию:
Код:
a = MsgBox("Текст сообщения в окне", vbOKCancel, "Текст заголовка окна")
if a = vbCancel then ...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 03.02.2021, 15:40   #28
Вячеслав76
Пользователь
 
Регистрация: 30.11.2020
Сообщений: 36
По умолчанию

Изначально я пытался написать так:
If MsgBox ("Обновить остатки Леруа (Интернет) в Зельгрос?", vbYesNo)=vbYes Then
ОстаткиИнтернетЛеруа
,,,
,,,
End If
Но постоянно выскакивает ошибка... Я умею создавать кнопки, но НЕ в сложном макросе. А тут, очень сложно для меня.
Вячеслав76 вне форума Ответить с цитированием
Старый 03.02.2021, 15:48   #29
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

для меня не менее сложно, понять о какой ошибке вы говорите?
это
Код:
If MsgBox ("Обновить остатки Леруа (Интернет) в Зельгрос?", vbYesNo)=vbYes Then
корректная, работающая строка, тут негде взяться ошибке, и о чем вы - это загадка!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 03.02.2021, 16:27   #30
Вячеслав76
Пользователь
 
Регистрация: 30.11.2020
Сообщений: 36
По умолчанию

Кажется я разобрался. Я "end if "ставил в самом конце, перед "end sub".
А если вот так, то работает

If MsgBox("Обновить остатки Леруа (Интернет) в Зельгрос?", vbYesNo) = vbYes Then
'MsgBox "Обновить остатки Леруа (Интернет) в Зельгрос?", vbOKOnly
ОстаткиИнтернетЛеруа
End If
Case "остаткискладлеруа"........

Спасибо большое за совет
Вячеслав76 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запуск исполняемого файла из макроса caute Microsoft Office Word 4 06.03.2016 20:28
Снять привязку макроса к имени файла Lamo Microsoft Office Excel 6 02.08.2013 11:56
Выполнение макроса при определенном значении параметра vanandr91 Microsoft Office Excel 7 27.02.2012 23:10
Запуск макроса при открытии файла ПавелАлександрович Microsoft Office Excel 4 04.03.2011 10:07
Выполнения макроса(с подстановкой имени) при условии ячейки... MaxZoa Microsoft Office Excel 7 22.04.2008 11:08