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

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

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

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

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

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

Уважаемые программисты, ну подскажите кто знает
and150382 вне форума Ответить с цитированием
Старый 06.04.2013, 15:43   #22
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Про "чтоб не пропадало" уже говорили... Да и не пропадало там ничего - просто не работало...
Попробуйте так:

Код:
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False: Application.DisplayAlerts = False
    Dim FName As String, ws As Worksheet, a()
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Укажите папку для сохранения"
        .Show
        If .SelectedItems.Count = 0 Then Exit Sub Else FilePath = .SelectedItems(1) & "\"
        FName = .SelectedItems(1) & "\Шипмент" & Range("FM6") & ".xlsm"
        a = Worksheets(1).[a1:GI113].Value
        Worksheets(1).Copy
        With ActiveWorkbook
        .Sheets(1).[a1:GI113].Value = a
        .SaveAs Filename:=FName, FileFormat:=xlOpenXMLWorkbookMacroEnabled
        .Close SaveChanges:=False
        End With
    End With
End Sub
Только я не понял, зачем в файле хотите сохранять макрос, который уже ни к чему, да и ещё и не работает.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.04.2013 в 16:01.
Hugo121 вне форума Ответить с цитированием
Старый 06.04.2013, 18:51   #23
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Макрос вообще то не нужен. Нужны просто данные которые я забил через форму( то есть сохраняю как и чтобы данные остались в ячейках). В форме есть модуль , который преобразует числа в текст. Если сохраняю в формате xls ,то в ячейках в которых число должно преобразоватьс
я в текст- появляется имя. Вот для чего нужно сохранить с макросами.

СПАСИБО БОЛЬШОЕ!!!! ВСЁ РАБОТАЕТ

Последний раз редактировалось and150382; 06.04.2013 в 19:50.
and150382 вне форума Ответить с цитированием
Старый 06.04.2013, 19:44   #24
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Так и надо было сразу говорить, что не данные пропадают, а формулы (UDF) после копирования листа дают ошибку. И про форму можно было вообще упомянуть вскользь - она вообще роли не играет.
"Макрос опять выдаст ИМЯ" - вы так уверенно об этом говорите... Ну ну...
Есть ещё другой вариант выхода из ситуации - но для этого нужно знать весь процесс в целом. Нам это неведомо...
В общем, Вы совсем не в теме что там происходит, и где что делает какой макрос... Тупо берите и используйте. Если что-то не годится - вот конкретно это "что-то" предельно ясно и опишите.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.04.2013, 21:26   #25
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Hugo121 извините за преждевременные выводы. Я в vba новичок, пробую разобраться и изучаю vba, читаю справки. Ваш код работает, то что нужно.
and150382 вне форума Ответить с цитированием
Старый 06.04.2013, 21:54   #26
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ок.
В общем так - если бы код UDF был в надстройке - формула бы работала в таком виде в любом файле на этом компьютере (вернее на этом компьютере под этим юзером), и лист можно было бы копировать как есть. Но на другой машине уже была бы ошибка.
Так что если сама эта функциональность дальше не нужна - пользуйте код, только думаю можно сохранять как xlsx или в формате 2003 xls (измените код). Там бы ещё тогда и кнопки нужно поудалять - они ведь становятся лишними.
Если функциональность нужна всегда и всюду - тогда вероятно проще всего сохранить файл под другим именем и затем удалить в нём лишние листы. Сложнее с формой если она не нужна... Но это другой вопрос. И думаю что это всё не нужно
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.04.2013 в 21:56.
Hugo121 вне форума Ответить с цитированием
Старый 06.04.2013, 22:14   #27
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Сохранять нужно для того чтобы через некоторое время добавить данные в одну ячейку. Кнопки нужны,потому что иногда сохранение будет ненужно. В сохраненном файле кнопки уже не нужны, т.к. после занесения данных в ячейку будет выполнена печать ТТН, далее эти файлы не нужны. Файл будет работать на разных компах
and150382 вне форума Ответить с цитированием
Старый 06.04.2013, 22:32   #28
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ну тогда так - в xls и без кнопок:
Код:
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False: Application.DisplayAlerts = False
    Dim FName As String, ws As Worksheet, a(), el
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Укажите папку для сохранения"
        .Show
        If .SelectedItems.Count = 0 Then Exit Sub Else FilePath = .SelectedItems(1) & "\"
        FName = .SelectedItems(1) & "\Шипмент" & Range("FM6") & ".xls"
        a = Worksheets(1).[a1:GI113].Value
        Worksheets(1).Copy
        With ActiveWorkbook
        For Each el In .Sheets(1).Shapes: el.Delete: Next 'удаляем кнопки
        .Sheets(1).[a1:GI113].Value = a
        .SaveAs Filename:=FName, FileFormat:=xlExcel8
        .Close SaveChanges:=False
        End With
    End With
End Sub
Правда макрос там остаётся. Если сохранять в xlsx - и его не будет.

Заметил недоработку -

Масса груза (брутто) шестьсот восемьдесят девять 25689,000

двадцать пять тысяч не поместилось - есть, но не видно!
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.04.2013 в 22:37.
Hugo121 вне форума Ответить с цитированием
Старый 06.04.2013, 22:37   #29
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Спасибо большое, буду теперь разбирать по справке как это все работает.
and150382 вне форума Ответить с цитированием
Старый 06.04.2013, 22:51   #30
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

В справке про массивы кажется ничего нет...
Работает так - взяли все значения диапазона в массив (можно запомнить в переменные только нужные ячейки, но кода будет больше, хотя памяти понадобится меньше, или брать в массив только нужный диапазон поменьше), скопировали лист (создалась новая книга), удалили все кнопки, выгрузили на место все данные (затёрли всё что там есть запомненным), сохранили, закрыли.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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