Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
19.04.2024, 20:38:18

Войти
Интересные и полезные статьи по работе с Excel и VBA можно найти в разделе ХИТРОСТИ
33 242 Сообщений в 5 457 Тем от 6 758 Пользователей
Последний пользователь: Сергей2662
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Cохранение книги в выбираемой директории с именем файла из ячейки
Страниц: 1 [2]  Все   Вниз
Печать
Автор Тема: Cохранение книги в выбираемой директории с именем файла из ячейки  (Прочитано 27788 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dfc
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 9


Просмотр профиля E-mail
« Ответ #15 : 22.06.2015, 16:04:55 »

Уважаемые все, кто оказались неравнодушными,
я пишу макрос для автоматического создания заявки. Мой запрос касается части этого макроса. Части с которой я не могу справиться и не знаю в какую сторону двигаться ввиду малого опыта. Знаю как сохранить книгу в определённую директорию, но присылать этот код как попытку решения стоящей передо мной задачи - бессмысленно. Поэтому мой запрос выглядел так. Очевидно, что некорректно и следовало дать дополнительные пояснения. Извиняюсь если доставил неудобства. Большое спасибо The_Prist за то, что направили. Ниже моя попытка. Буду признателен если поясните, почему при выборе на рабочем столе папки  для сохранения "111", например, книга всё-равно сохраняется на рабочий стол.

Код: (vb)
Sub ShowFolderDialog()
    Dim oFD As FileDialog
    Dim x, lf As Long
    Set oFD = Application.FileDialog(msoFileDialogFolderPicker)
    With oFD
        .Title = "Выбор папки"
        .ButtonName = "OK"
        .Filters.Clear
        .InitialFileName = "C:\Temp\"
        .InitialView = msoFileDialogViewList
        If oFD.Show = 0 Then Exit Sub
        x = .SelectedItems(1)
        ActiveWorkbook.SaveAs sFolder & Range("A1") & ".xlsx", FileFormat:=xlOpenXMLWorkbook
    End With
End Sub
Записан
Юрий М
Глобальный модератор
Ветеран
*****

Репутация: +112/-0
Офлайн Офлайн

Сообщений: 2 077



Просмотр профиля E-mail
« Ответ #16 : 22.06.2015, 16:06:00 »

Да успокойтесь Вы уже. Эту тему я, скорее всего, видел раньше Вас. Не пойму - зачем Вы даёте ссылку на неё. Нравится Вам помогать - помогайте. Если Вам по какой-то причине "неудобно" - не помогайте. Но не вмешивайтесь в действия модератора. Вот и всё. Считаете, что он неправ - напишите ему в личку, администратору...
Записан
Василий_Кориш
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 44

ЗАБАНЕН!
Просмотр профиля E-mail
« Ответ #17 : 22.06.2015, 16:09:59 »

Комментарий глобального модератора Василий_Кориш, перестаньте цитировать без надобности. Кнопка цитирования не для ответа!
Значит Джонни из этой темы может вмешиваться, а я нет? Я просто дискутирую.
Комментарий глобального модератора Не допускаются ссылки, не относящиеся к данной теме.
« Последнее редактирование: 22.06.2015, 16:14:51 от vikttur » Записан
Юрий М
Глобальный модератор
Ветеран
*****

Репутация: +112/-0
Офлайн Офлайн

Сообщений: 2 077



Просмотр профиля E-mail
« Ответ #18 : 22.06.2015, 16:12:18 »

Василий, Вам скучно? Сказано ведь - прекратили в тему дискуссию. Займитесь помощью.
Записан
Василий_Кориш
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 44

ЗАБАНЕН!
Просмотр профиля E-mail
« Ответ #19 : 22.06.2015, 16:14:01 »

Комментарий глобального модератора ДА ПЕРЕСТАНЬТЕ НАЖИМАТЬ КНОПКУ ЦИТИРОВАНИЯ!!! Она от Вас уже красная!!!
Не вижу кнопки "Имя". Как Вас выделить-то?
« Последнее редактирование: 22.06.2015, 16:15:40 от vikttur » Записан
Юрий М
Глобальный модератор
Ветеран
*****

Репутация: +112/-0
Офлайн Офлайн

Сообщений: 2 077



Просмотр профиля E-mail
« Ответ #20 : 22.06.2015, 16:15:19 »

Будете троллить - бан получите.
Записан
Василий_Кориш
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 44

ЗАБАНЕН!
Просмотр профиля E-mail
« Ответ #21 : 22.06.2015, 16:16:39 »

Не вижу кнопки "Имя". Как Вас выделить-то?
Без цитирования - не понятно, к кому я обращаюсь - Вам или ТС.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #22 : 22.06.2015, 16:19:29 »

Василий_Кориш, Вы хотя бы разделяйте понятия: просьба и требование модератора для исправления нарушений правил форума, и на те, которые правила не нарушают. По приведенной Вами ссылке требование устранить нарушение правил форума в части названия темы. И это требование должно быть устранено, иначе помощь автору темы будет скрываться или тема будет удалена. Здесь же, на этом форуме - никто ничего не запрещал. Модератор просто сказал, что с таким подходом больше в платный раздел, чем скрываться за словами вроде "помощь".
И уж тем более нет никакого смысла приводить в пример другой форум - там и правила другие.

Не надо здесь склоку образовывать и пытаться свои правила устанавливать. Вас никто ничего не заставляет. Хотите помочь - помогайте. Вам Администратор уже добро дал и все разъяснил, а Вы продолжаете чушь нести и чему-то нас научить. Раз так переживаете за автора - напишите ему уже код и радуйтесь. Никто Вас не осудить. А если помочь не можете - так и не надо из себя адвоката строить. Я по правилам Вас за флуд в теме сейчас забаню на денек другой, чтобы не заосоряли своими не относящимися к делу проблемами темы других людей.
« Последнее редактирование: 22.06.2015, 16:22:49 от The_Prist » Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #23 : 22.06.2015, 16:22:09 »

Автору
Эту строку:
x = .SelectedItems(1) 
        ActiveWorkbook.SaveAs sFolder & Range("A1") & ".xlsx", FileFormat:=xlOpenXMLWorkbook
надо дополнить. скорее всего у Вас файл не просто на рабочем столе сохраняется, а еще и в начале есть то самое "111". Так будет вернее:
Код: (vb)
x = .SelectedItems(1)
If Right(x,1) <> application.pathseparator then x = x & application.pathseparator
        ActiveWorkbook.SaveAs sFolder & Range("A1") & ".xlsx", FileFormat:=xlOpenXMLWorkbook

Напишите потом, получилось или нет.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #24 : 22.06.2015, 16:25:04 »

Значит Джонни из этой темы может вмешиваться, а я нет? Я просто дискутирую.
Идите в Курилку и там дискутируйте. И правила форума по пути перечитайте. Всю тему человеку загадили своим трепом. Ладно бы хоть что-то полезное написали - нет ведь, треп и флуд. В общем еще одно сообщение не по теме - и выпишу Вам БАН. Чуть позже подчищу эту тему от всего лишнего.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #25 : 22.06.2015, 16:31:29 »

Да уже... Бан навсегда. И на Планете.
Записан
dfc
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 9


Просмотр профиля E-mail
« Ответ #26 : 22.06.2015, 19:37:00 »

Напишите потом, получилось или нет.
В начале не было "111". С указанными Вами изменениями книга по-прежнему сохраняется на рабочий стол. Нашел другое подходящее мне решение:
Код: (vb)
Sub Save_My_Sheet()
Application.Dialogs(xlDialogSaveAs).Show Range("A1"), xlOpenXMLWorkbook
End Sub

В любом случае спасибо Вам.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #27 : 22.06.2015, 23:43:59 »

Вообще очень странно. У меня код отрабатывает как положено, если выбрать нужную папку. Без сюрпризов.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Артур
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля
« Ответ #28 : 06.12.2018, 14:45:47 »

Здравствуйте!
Помогите, пожалуйста, создать макрос по сохранению вновь созданной книги с именем файла из ячейки «А1» в директории выбираемой пользователем.

Картина такая:
- Создана новая книга.
- В ячейку «А1» внесено имя для файла.
 
Макрос:
- Запускается макрос.
- Появляется окно выбора папки для сохранения книги.
- Пользователь выбирает папку.
- Файл сохраняется с именем файла из ячейки «А1» в определённой пользователем директории в формате xlsx.

MS Excel 2010


Всем доброго времени суток!
Пожалуйста, подскажите, в чём неправильно составлен код?

Sub СохранитьЛистВФайл()
On Error Resume Next
    ' название подпапки, в которую по-умолчанию будет предложено сохранить файл
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs [B14]
    Application.DisplayAlerts = True
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs [D14]
    Application.DisplayAlerts = True
     
    ' вывод диалогового окна для запроса имени сохраняемого файла
    Filename = "c:\Users\Admin\Documents\Служебные записки на формирование цены автомобиля trade-in" & Range("a1") & ".xls"
   
    ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл
    If VarType(Filename) = vbBoolean Then Exit Sub
 
    ' копируем активный лист (при этом создаётся новая книга)
    Err.Clear: ActiveSheet.Copy: DoEvents
    If Err Then Exit Sub    ' произошла какая-то ошибка при попытке копирования листа
 
    ' убеждаемся, что активной книгой является копия листа
    If ActiveWorkbook.Worksheets.Count = 1 And ActiveWorkbook.Path = "" Then
        ' сохраняем файл под заданным именем в формате Excel 2010
        ActiveWorkbook.SaveAs Filename, xlWorkbookNormal
 
        ' закрываем сохранённый файл
        ' (удалите следующую строку, если закрывать созданный файл не требуется)
        ActiveWorkbook.Close False
    End If
End Sub

Объясняю, что я хочу, что бы у меня получилось. В ячейках B14 и D14 хранятся данные о модели автомобиля и его VIN
соответственно. Когда я буду сохранять нужный мне файл в папку "Служебные записки на формирование цены автомобиля trade-in", в поле "имя файла" должны автоматически появляться данные о модели и VIN автомобиля.
Помогите, пожалуйста, исправить код.
Записан
Страниц: 1 [2]  Все   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru