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

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

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

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

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

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

При всем моем уважении... Файлы называются именно так. (Во вложении скриншот экрана). При открытии любого из этих файлов и попытке запустить макрос, пишет ошибку которую Вы описали.
Вложения
Тип файла: xlsx Файлы.xlsx (103.2 Кб, 1 просмотров)
Вячеслав76 вне форума Ответить с цитированием
Старый 26.01.2021, 14:07   #12
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Вячеслав76 Посмотреть сообщение
я создал 3 файлика с именами "Слава, Петя, Дима"
Зачем?


Сравниваем 2 фрагмента, ищем отличия
Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:
 If InStr(Filename, "остатки") = 1 Then
        macroName = "МакросОстатки"
    Application.Run macroName
    
Sub МакросОстатки()
    Debug.Print 1
End Sub
Цитата:
Сообщение от Вячеслав76 Посмотреть сообщение
Код:
 If InStr(Filename, "Дима") = 1 Then
        macroName = "Sub Дима"
   Application.Run macroName

Sub Дима()
    Debug.Print 1
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 26.01.2021, 20:50   #13
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

...
If InStr(Ucase(Filename), "ДИМА") > 0 Then Дима
...


Sub Дима()
Debug.Print "Дима"
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 28.01.2021, 12:25   #14
Вячеслав76
Пользователь
 
Регистрация: 30.11.2020
Сообщений: 36
По умолчанию

Я сдаюсь. Таким тупым я не чувствовал себя со дня свадьбы Перепробовал сотни вариантов. Не работает! В итоге все что было собрал в один модуль. Да, он перестал ругаться на "Application.Run macroName", но и он ничего не делает.!!! Сами макросы я изменил на элементарные, чтобы просто понять, работает или нет. В итоге, в одном модуле мы видим вот это.. Но ничего не происходит Как будто он не видит имя файла и не запускает соответствующий макрос(((

Sub SelectSubroutines()
Dim Filename As String
Dim macroName As String

Filename = LCase(ActiveWorkbook.Name)

If InStr(Filename, "остатки") = 1 Then
macroName = "МакросОстатки"
ElseIf InStr(Filename, "деньги") = 1 Then
macroName = "МакросДеньги"
ElseIf InStr(Filename, "товар") = 1 Then
macroName = "МакросТовар"
ElseIf InStr(Filename, "клиент") = 1 Then
macroName = "МакросКлиент"
End If
Application.Run macroName

End Sub


Sub МакросОстатки()
Debug.Print 1
End Sub

Sub МакросДеньги()
Debug.Print 2
End Sub

Sub МакросТовар()
Debug.Print 3
End Sub

Sub МакросКлиент()
Debug.Print 4
End Sub


Sub Деньги()
'
' Деньги Макрос
'
' Сочетание клавиш: Ctrl+d

Range("A1").Select
ActiveCell.FormulaR1C1 = "Деньги"
Range("A2").Select
End Sub
Sub Товар()
'
' Товар Макрос
Range("A1").Select
ActiveCell.FormulaR1C1 = "Товар"
Range("A2").Select
End Sub
Sub Остатки()
'
' Остатки Макрос
'
' Сочетание клавиш: Ctrl+o
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "Остатки"
Range("A2").Select
End Sub
Sub Клиенты()
'
' Клиенты Макрос
'
' Сочетание клавиш: Ctrl+k
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "Клиенты"
Range("A2").Select
End Sub
Вячеслав76 вне форума Ответить с цитированием
Старый 28.01.2021, 12:29   #15
Вячеслав76
Пользователь
 
Регистрация: 30.11.2020
Сообщений: 36
По умолчанию

Все файлы называются с МАЛЕНЬКОЙ буквы "остатки xlsx" итд. Но если переименовать на "Остатки" (с большой буквы), то сразу выскакивает ошибка - Application.Run macroName
Вячеслав76 вне форума Ответить с цитированием
Старый 28.01.2021, 13:32   #16
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Запустите форму, посмотрите реализацию. В вас такой вариант работал?
Вложения
Тип файла: rar Книга1.rar (16.6 Кб, 3 просмотров)
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 28.01.2021, 14:31   #17
Вячеслав76
Пользователь
 
Регистрация: 30.11.2020
Сообщений: 36
По умолчанию

Нет, такой вариант не работал. Но и этот работает криво. Сейчас при открытие любого файла, даже с именем "книга1", запуская макрос выдаются случайные значения -деньги, остатки, товар итд по кругу.
Вячеслав76 вне форума Ответить с цитированием
Старый 28.01.2021, 15:48   #18
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Так, давайте зайдем с другой стороны.
Какое задание хотите реализовать?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 28.01.2021, 17:02   #19
Вячеслав76
Пользователь
 
Регистрация: 30.11.2020
Сообщений: 36
По умолчанию

Да, давайте тогда по порядку. Ежедневно получаем вот такие четыре файла по почте.

Остатки Интернет Леруа 28.01.21.xlsx
Остатки склад Леруа 28.01.21.xlsx
Остатки по складу с ценами 28.01.21.xlsx
Резервы 28.01.21.xlsx

Файлы всегда имеют такие названия, только меняется дата. Чтобы облегчить ассистентам жизнь, я сделал коллегам макросы, которые приводят эти файлы в порядок и переносят данные в нужный отчет. Сейчас это работает так: девушки запускают userform, где нарисовано 4 кнопки "обновить остатки Леруа", "Обновить резервы", "Обновить ИНТЕРНЕТ остатки Леруа" и "обновить остатки склада". В зависимости от того, какую кнопку они нажали, тот макрос и начинает выполняться. Но, хоть я и сделал окно предупреждения, которое точно спрашивает - "Вы уверены, что обновляем остатки склада",? они все равно жмут "да", открыв файл "Резервы" или что то другое. Нужна либо защита от дурака (а Вы мне уже с ней помогли) и прежде чем запуститься, макрос проверяет имя файла, либо чтобы прочитав имя файла (БЕЗ ДАТЫ) макрос понял, какой именно макрос запустить автоматически. И еще .. Макрос может быть не один. Например, при открытии файла "резервы" запускается сначала макрос1, после его выполнения запускается Макрос2. Это происходит из за тог, что иногда задачи меняются и мне проще "дописать" отдельный макрос, чем править основной. Вот мне и нужно, чтобы при открытие файла "Резервы 28.01.21.xlsx" (для примера) макрос понял, что нужно запустить макрос 1, следом макрос2 , а при открытии файла "Остатки склад Леруа 28.01.21.xlsx", макрос понял имя и запустил макрос3 и макрос4( если он есть). Вся идея, сделать одну кнопку "обновить", чтобы в зависимости от открытого файла, обновлялись данные. И еще, хорошо бы сделать "Окно предупреждения", которое бы при попытке нажать кнопку "обновить" при открытии другого файла (Книга1, sss, итд) написала бы -" с этим файлом я не работаю". Хотя это уже не обязательно
Вячеслав76 вне форума Ответить с цитированием
Старый 28.01.2021, 17:24   #20
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Девушка открывает файл "Остатки Интернет Леруа 28.01.21.xlsx" и там есть юзерформа?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 28.01.2021 в 17:27.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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