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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2013, 00:07   #11
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Добавил вроде всё заработало

Код:
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False: Application.DisplayAlerts = False
    Dim FName As String, ws As Worksheet
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Укажите папку для сохранения"
        .Show
        If .SelectedItems.Count = 0 Then Exit Sub Else FilePath = .SelectedItems(1) & "\"
        For Each ws In ThisWorkbook.Sheets
        FName = .SelectedItems(1) & "\Шипмент" & Range("FM6") & ".xls": ws.Copy
        ActiveWorkbook.SaveAs Filename:=FName
        ActiveWorkbook.Close SaveChanges:=False
        Next
    End With
End Sub
Только почему он сохраняет третий лист? как сделать чтобы только первый или все?
and150382 вне форума Ответить с цитированием
Старый 05.04.2013, 00:25   #12
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False: Application.DisplayAlerts = False
    Dim FName As String, ws As Worksheet
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Укажите папку для сохранения"
        .Show
        If .SelectedItems.Count = 0 Then Exit Sub Else FilePath = .SelectedItems(1) & "\"
        FName = .SelectedItems(1) & "\Шипмент" & Range("FM6") & ".xls"
        worksheets(1).Copy
        ActiveWorkbook.SaveAs Filename:=FName
        ActiveWorkbook.Close SaveChanges:=False
    End With
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 05.04.2013, 00:48   #13
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Спасибо работает. Только при открывании сохраненного листа в ячейках где стояли формулы теперь отображается имя. Подскажите как сделать чтобы данные сохранялись
and150382 вне форума Ответить с цитированием
Старый 05.04.2013, 11:00   #14
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Разобрался. В ячейках в которых появляется имя стоит формула которая преобразует число в текст( написано макросом), поэтому и появляется ошибка,т.к.файл сохраняется с расширением xls. Меняю в коде xls на xlsm - не работает. Скажите как тогда сохранить с макросами.
and150382 вне форума Ответить с цитированием
Старый 05.04.2013, 11:45   #15
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

у меня сразу два варианта:
1. сохраняйте весь файл под другим именем
2. пройдитесь по "строптивым" ячейкам и специальной вставкой скопируйте их сами на себя "только значения"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 05.04.2013, 12:37   #16
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

А нельзя сделать чтобы сохранялось с расширением xlsm
and150382 вне форума Ответить с цитированием
Старый 05.04.2013, 12:45   #17
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

как-то так:
Код:
ActiveWorkbook.SaveAs Filename:="ФайлФайлФайл", FileFormat:=xlOpenXMLWorkbookMacroEnabled
вообще, почитайте справку по Workbook.SaveAs - там все написано.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 05.04.2013, 13:15   #18
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Спасибо работает, только записывает лист ТТН, а макрос с формулой находится в модуле. Получается что макросы не сохраняются. Нужно сохранять всю книгу. Не подскажите как?
and150382 вне форума Ответить с цитированием
Старый 05.04.2013, 13:18   #19
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

закомментируйте или удалите эту строку:
worksheets(1).Copy
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 05.04.2013, 21:07   #20
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Если коментировать строку
Код:
worksheets(1).Copy
, то исходный файл остаётся пустым(без листов).
Нужно чтобы в исходном файле тоже всё осталось.
И когда открываю сохраненный файл, то данные занесённые через листбоксы почему то удаляются( то есть ячейки пустые, хотя там должны быть данные)
Помогите решить эти проблемы
Вложения
Тип файла: rar ТТН.rar (278.8 Кб, 12 просмотров)

Последний раз редактировалось and150382; 06.04.2013 в 13:12.
and150382 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
save dialog JK0 Помощь студентам 2 18.10.2010 14:54
save ben95 Общие вопросы Delphi 2 19.09.2008 14:31
DOM. save в IE badfilin JavaScript, Ajax 2 01.05.2008 11:20
Save in Game ChukCha Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 11.09.2007 21:00