Иногда лучшее- враг хорошего. Как показывает практика - лучше не давать много свободы пользователям. Сегодня у него будет папка тут - завтра там а потом запутается и будет винить Вас в ошибках Правильно делаете, что стандартизируете условия
Иногда лучшее- враг хорошего. Как показывает практика - лучше не давать много свободы пользователям. Сегодня у него будет папка тут - завтра там а потом запутается и будет винить Вас в ошибках Правильно делаете, что стандартизируете условия SLAVICK
SLAVICK, Ваш вариант с ячейкой очень кстати, но есть но... Но как сделать правильнее? Ведь например есть нюансы: 1. Активный лист может распечатываться и данная ячейка будет мешать. 2. Активный лист может быть большой таблицей
Короче, надо как-то независимо от шаблонов Нельзя ли с другой независимой книги выдергивать ячейку? и положить эту книгу в ту же папку шаблоны. Такое можно устроить?
SLAVICK, Ваш вариант с ячейкой очень кстати, но есть но... Но как сделать правильнее? Ведь например есть нюансы: 1. Активный лист может распечатываться и данная ячейка будет мешать. 2. Активный лист может быть большой таблицей
Короче, надо как-то независимо от шаблонов Нельзя ли с другой независимой книги выдергивать ячейку? и положить эту книгу в ту же папку шаблоны. Такое можно устроить?den45444
Хотя RAN, уже все написал - повторю основные тезисы: [vba]
Код
Thisworkbook.Sheets(1).[j1]
[/vba] Thisworkbook - это значит книга в которой находится исполняющий макрос - в Вашем случае надстройка. Надстройка - это та же книга, но "невидимая" в списке книг, и в ней тоже может быть н-ное количество листов.
Скорее всего - это Personal - которая создается автоматом
Хотя RAN, уже все написал - повторю основные тезисы: [vba]
Код
Thisworkbook.Sheets(1).[j1]
[/vba] Thisworkbook - это значит книга в которой находится исполняющий макрос - в Вашем случае надстройка. Надстройка - это та же книга, но "невидимая" в списке книг, и в ней тоже может быть н-ное количество листов.
Как задать условие, если пользователь выбрал не ту папку?
Ну, батенька, и вопрос! Это же ваш самый большой секрет! Где, кто и что выбирает? Оно, конечно, можно и еще на пару страниц порасписаться. Всеж тяпница.
Как задать условие, если пользователь выбрал не ту папку?
Ну, батенька, и вопрос! Это же ваш самый большой секрет! Где, кто и что выбирает? Оно, конечно, можно и еще на пару страниц порасписаться. Всеж тяпница. RAN
Sub Выбор_папки_Шаблоны() Dim oShell As Object, oFolder As Object Set oShell = CreateObject("Shell.Application") If Len(Dir$(ThisWorkbook.Sheets(1).[j1] & "\" & "ФАЙЛ НЕ УДАЛЯТЬ.xlsx")) > 0 Then Exit Sub Else MsgBox "Путь к папке Шаблонов еще не указан (или папка перенесена в другое место)" Set oFolder = oShell.BrowseForFolder(0, "Укажите расположение папки ШАБЛОНЫ", 0) If oFolder Is Nothing Then ' пользователь передумал показывать папку MsgBox "Путь к папке не указан! При желании указать папку, перезапустите Эксель" Exit Sub End If ThisWorkbook.Sheets(1).[j1] = oFolder.Self.Path ' Записываем его в нужную ячейку
If Len(Dir$(ThisWorkbook.Sheets(1).[j1] & "\" & "ФАЙЛ НЕ УДАЛЯТЬ.xlsx")) > 0 Then 'Повторная проверка ThisWorkbook.Save 'Сохраняем адрес указанной папки Else MsgBox "Путь к папке указан не верно! При желании указать снова, перезапустите Эксель" End If End If End Sub
[/vba]
Всем спасибо. Задача решена.
[vba]
Код
Sub Выбор_папки_Шаблоны() Dim oShell As Object, oFolder As Object Set oShell = CreateObject("Shell.Application") If Len(Dir$(ThisWorkbook.Sheets(1).[j1] & "\" & "ФАЙЛ НЕ УДАЛЯТЬ.xlsx")) > 0 Then Exit Sub Else MsgBox "Путь к папке Шаблонов еще не указан (или папка перенесена в другое место)" Set oFolder = oShell.BrowseForFolder(0, "Укажите расположение папки ШАБЛОНЫ", 0) If oFolder Is Nothing Then ' пользователь передумал показывать папку MsgBox "Путь к папке не указан! При желании указать папку, перезапустите Эксель" Exit Sub End If ThisWorkbook.Sheets(1).[j1] = oFolder.Self.Path ' Записываем его в нужную ячейку
If Len(Dir$(ThisWorkbook.Sheets(1).[j1] & "\" & "ФАЙЛ НЕ УДАЛЯТЬ.xlsx")) > 0 Then 'Повторная проверка ThisWorkbook.Save 'Сохраняем адрес указанной папки Else MsgBox "Путь к папке указан не верно! При желании указать снова, перезапустите Эксель" End If End If End Sub